locale: Update profile model

- Update the size of the language field to 32 bytes.

- Rename preferred_language to just language for consistency with forms.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
This commit is contained in:
Sunil Mohan Adapa 2018-02-16 13:11:37 +05:30 committed by James Valleroy
parent 1cb7b3210a
commit 903c47bc25
No known key found for this signature in database
GPG Key ID: 77C0C75E7B650808
2 changed files with 18 additions and 12 deletions

View File

@ -10,11 +10,13 @@ from plinth.models import UserProfile
def insert_users(apps, schema_editor):
"""For each user, create their empty profiles."""
for user in User.objects.all():
UserProfile(user=user).save()
def truncate_user_profile(apps, schema_editor):
"""Delete all user profiles."""
UserProfile.objects.all().delete()
@ -28,13 +30,14 @@ class Migration(migrations.Migration):
migrations.CreateModel(
name='UserProfile',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('preferred_language', models.CharField(default=None, max_length=10, null=True)),
(
'user',
models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
),
migrations.RunPython(code=insert_users, reverse_code=truncate_user_profile),
('id', models.AutoField(auto_created=True, primary_key=True,
serialize=False, verbose_name='ID')),
('language', models.CharField(default=None, max_length=32,
null=True)),
('user', models.OneToOneField(
on_delete=django.db.models.deletion.CASCADE,
to=settings.AUTH_USER_MODEL)),
], ),
migrations.RunPython(code=insert_users,
reverse_code=truncate_user_profile),
]

View File

@ -23,6 +23,7 @@ from django.db import models
from django.contrib.auth.models import User
import json
from django.conf import settings
class KVStore(models.Model):
"""Model to store retrieve key/value configuration"""
@ -47,6 +48,8 @@ class Module(models.Model):
class UserProfile(models.Model):
"""Model that stores User details that are not related to authentication"""
user = models.OneToOneField(User, on_delete=models.CASCADE)
preferred_language = models.CharField(max_length=10, null=True, default=None)
"""Model to store user profile details that are not auth related."""
user = models.OneToOneField(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE)
language = models.CharField(max_length=32, null=True, default=None)