From 0eb6004cf8c58d2a0977dbdc748e85a0a4bc0333 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ste=CC=81phane=20Klein?= Date: Tue, 28 Jul 2015 14:32:24 +0200 Subject: [PATCH] Append database index to user table, the more important is index together email/is_active --- .../migrations/0004_auto_20150728_1228.py | 48 +++++++++++++++++++ modoboa/core/models.py | 11 +++-- 2 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 modoboa/core/migrations/0004_auto_20150728_1228.py diff --git a/modoboa/core/migrations/0004_auto_20150728_1228.py b/modoboa/core/migrations/0004_auto_20150728_1228.py new file mode 100644 index 000000000..202a23da0 --- /dev/null +++ b/modoboa/core/migrations/0004_auto_20150728_1228.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0003_user_master_user'), + ] + + operations = [ + migrations.AlterField( + model_name='user', + name='email', + field=models.EmailField(db_index=True, max_length=254, blank=True), + preserve_default=True, + ), + migrations.AlterField( + model_name='user', + name='is_active', + field=models.BooleanField(default=True, db_index=True), + preserve_default=True, + ), + migrations.AlterField( + model_name='user', + name='is_local', + field=models.BooleanField(default=True, db_index=True), + preserve_default=True, + ), + migrations.AlterField( + model_name='user', + name='is_staff', + field=models.BooleanField(default=False, db_index=True), + preserve_default=True, + ), + migrations.AlterField( + model_name='user', + name='master_user', + field=models.BooleanField(default=False, help_text='Allow this administrator to access user mailboxes', verbose_name='Allow mailboxes access'), + preserve_default=True, + ), + migrations.AlterIndexTogether( + name='user', + index_together=set([('email', 'is_active')]), + ), + ] diff --git a/modoboa/core/models.py b/modoboa/core/models.py index 2da5825fd..e407814b3 100644 --- a/modoboa/core/models.py +++ b/modoboa/core/models.py @@ -44,11 +44,11 @@ class User(PermissionsMixin): username = models.CharField(max_length=254, unique=True) first_name = models.CharField(max_length=30, blank=True) last_name = models.CharField(max_length=30, blank=True) - email = models.EmailField(max_length=254, blank=True) - is_staff = models.BooleanField(default=False) - is_active = models.BooleanField(default=True) + email = models.EmailField(max_length=254, blank=True, db_index=True) + is_staff = models.BooleanField(default=False, db_index=True) + is_active = models.BooleanField(default=True, db_index=True) date_joined = models.DateTimeField(default=timezone.now) - is_local = models.BooleanField(default=True) + is_local = models.BooleanField(default=True, db_index=True) master_user = models.BooleanField( ugettext_lazy("Allow mailboxes access"), default=False, help_text=ugettext_lazy( @@ -67,6 +67,9 @@ class User(PermissionsMixin): class Meta: ordering = ["username"] + index_together = [ + ['email', 'is_active'] + ] password_expr = re.compile(r'\{([\w\-]+)\}(.+)')