diff --git a/src/pretix/base/forms/user.py b/src/pretix/base/forms/user.py index b898a3cc4..c4bcb16f6 100644 --- a/src/pretix/base/forms/user.py +++ b/src/pretix/base/forms/user.py @@ -39,8 +39,7 @@ class UserSettingsForm(forms.ModelForm): class Meta: model = User fields = [ - 'givenname', - 'familyname', + 'fullname', 'locale', # 'timezone', 'email' diff --git a/src/pretix/base/migrations/0057_auto_20170107_1531.py b/src/pretix/base/migrations/0057_auto_20170107_1531.py new file mode 100644 index 000000000..49d709445 --- /dev/null +++ b/src/pretix/base/migrations/0057_auto_20170107_1531.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.4 on 2017-01-07 15:31 +from __future__ import unicode_literals + +import django.core.validators +from django.db import migrations, models +import pretix.base.validators + + +def merge_names(apps, schema_editor): + User = apps.get_model('pretixbase', 'User') + for u in User.objects.all(): + if u.givenname: + if u.familyname: + u.fullname = u.givenname + " " + u.familyname + else: + u.fullname = u.givenname + elif u.familyname: + u.fullname = u.familyname + u.save() + + +class Migration(migrations.Migration): + + dependencies = [ + ('pretixbase', '0056_auto_20170107_1251'), + ] + + operations = [ + migrations.AddField( + model_name='user', + name='fullname', + field=models.CharField(blank=True, max_length=255, null=True, verbose_name='Full name'), + ), + migrations.AlterField( + model_name='organizer', + name='slug', + field=models.SlugField(help_text='Should be short, only contain lowercase letters and numbers, and must be unique among your events. This is being used in addresses and bank transfer references.', validators=[django.core.validators.RegexValidator(message='The slug may only contain letters, numbers, dots and dashes.', regex='^[a-zA-Z0-9.-]+$'), pretix.base.validators.OrganizerSlugBlacklistValidator()], verbose_name='Short form'), + ), + migrations.RunPython(merge_names, migrations.RunPython.noop) + ] diff --git a/src/pretix/base/migrations/0058_auto_20170107_1533.py b/src/pretix/base/migrations/0058_auto_20170107_1533.py new file mode 100644 index 000000000..961c22b95 --- /dev/null +++ b/src/pretix/base/migrations/0058_auto_20170107_1533.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.4 on 2017-01-07 15:33 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('pretixbase', '0057_auto_20170107_1531'), + ] + + operations = [ + migrations.RemoveField( + model_name='user', + name='familyname', + ), + migrations.RemoveField( + model_name='user', + name='givenname', + ), + ] diff --git a/src/pretix/base/models/auth.py b/src/pretix/base/models/auth.py index 0ee8da1ab..c36c1d52c 100644 --- a/src/pretix/base/models/auth.py +++ b/src/pretix/base/models/auth.py @@ -43,10 +43,8 @@ class User(AbstractBaseUser, PermissionsMixin, LoggingMixin): :param email: The user's email address, used for identification. :type email: str - :param givenname: The user's given name. May be empty or null. - :type givenname: str - :param familyname: The user's given name. May be empty or null. - :type familyname: str + :param fullname: The user's full name. May be empty or null. + :type fullname: str :param is_active: Whether this user account is activated. :type is_active: bool :param is_staff: ``True`` for system operators. @@ -64,10 +62,8 @@ class User(AbstractBaseUser, PermissionsMixin, LoggingMixin): email = models.EmailField(unique=True, db_index=True, null=True, blank=True, verbose_name=_('E-mail')) - givenname = models.CharField(max_length=255, blank=True, null=True, - verbose_name=_('Given name')) - familyname = models.CharField(max_length=255, blank=True, null=True, - verbose_name=_('Family name')) + fullname = models.CharField(max_length=255, blank=True, null=True, + verbose_name=_('Full name')) is_active = models.BooleanField(default=True, verbose_name=_('Is active')) is_staff = models.BooleanField(default=False, @@ -100,14 +96,13 @@ class User(AbstractBaseUser, PermissionsMixin, LoggingMixin): """ Returns the first of the following user properties that is found to exist: - * Given name - * Family name + * Full name * Email address + + Only present for backwards compatibility """ - if self.givenname: - return self.givenname - elif self.familyname: - return self.familyname + if self.fullname: + return self.fullname else: return self.email @@ -115,20 +110,11 @@ class User(AbstractBaseUser, PermissionsMixin, LoggingMixin): """ Returns the first of the following user properties that is found to exist: - * A combination of given name and family name, depending on the locale - * Given name - * Family name - * User name + * Full name + * Email address """ - if self.givenname and not self.familyname: - return self.givenname - elif not self.givenname and self.familyname: - return self.familyname - elif self.familyname and self.givenname: - return _('%(family)s, %(given)s') % { - 'family': self.familyname, - 'given': self.givenname - } + if self.fullname: + return self.fullname else: return self.email diff --git a/src/pretix/control/templates/pretixcontrol/user/settings.html b/src/pretix/control/templates/pretixcontrol/user/settings.html index 781089e67..185ee9a0f 100644 --- a/src/pretix/control/templates/pretixcontrol/user/settings.html +++ b/src/pretix/control/templates/pretixcontrol/user/settings.html @@ -9,8 +9,7 @@ {% bootstrap_form_errors form %}