Example #1
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Genre',
            fields=[
                ('id',
                 models.UUIDField(default=uuid.uuid4,
                                  editable=False,
                                  primary_key=True,
                                  serialize=False)),
                ('name', models.CharField(max_length=200)),
            ],
        ),
        migrations.CreateModel(
            name='Movie',
            fields=[
                ('id',
                 models.UUIDField(default=uuid.uuid4,
                                  editable=False,
                                  primary_key=True,
                                  serialize=False)),
                ('title', models.CharField(max_length=200)),
                ('description', models.CharField(max_length=200)),
                ('image_url', models.CharField(max_length=200, null=True)),
                ('visit_count', models.IntegerField(default=0)),
                ('genre',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='movies.Genre')),
            ],
        ),
        migrations.CreateModel(
            name='Likes',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('status', bitfield.models.BitField((0, 1), default=None)),
                ('movie',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='movies.Movie')),
                ('user',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
    ]
Example #2
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('auth', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='UserProfile',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('password',
                 models.CharField(max_length=128, verbose_name='password')),
                ('last_login',
                 models.DateTimeField(default=django.utils.timezone.now,
                                      verbose_name='last login')),
                ('is_superuser',
                 models.BooleanField(
                     default=False,
                     help_text=
                     'Designates that this user has all permissions without explicitly assigning them.',
                     verbose_name='superuser status')),
                ('email',
                 models.EmailField(db_index=True, max_length=75, unique=True)),
                ('is_staff', models.BooleanField(default=False)),
                ('is_active', models.BooleanField(default=True)),
                ('is_bot', models.BooleanField(default=False)),
                ('date_joined',
                 models.DateTimeField(default=django.utils.timezone.now)),
                ('is_mirror_dummy', models.BooleanField(default=False)),
                ('full_name', models.CharField(max_length=100)),
                ('short_name', models.CharField(max_length=100)),
                ('pointer', models.IntegerField()),
                ('last_pointer_updater', models.CharField(max_length=64)),
                ('api_key', models.CharField(max_length=32)),
                ('enable_stream_desktop_notifications',
                 models.BooleanField(default=True)),
                ('enable_stream_sounds', models.BooleanField(default=True)),
                ('enable_desktop_notifications',
                 models.BooleanField(default=True)),
                ('enable_sounds', models.BooleanField(default=True)),
                ('enable_offline_email_notifications',
                 models.BooleanField(default=True)),
                ('enable_offline_push_notifications',
                 models.BooleanField(default=True)),
                ('enable_digest_emails', models.BooleanField(default=True)),
                ('default_desktop_notifications',
                 models.BooleanField(default=True)),
                ('last_reminder',
                 models.DateTimeField(default=django.utils.timezone.now,
                                      null=True)),
                ('rate_limits', models.CharField(default='', max_length=100)),
                ('default_all_public_streams',
                 models.BooleanField(default=False)),
                ('enter_sends', models.NullBooleanField(default=True)),
                ('autoscroll_forever', models.BooleanField(default=False)),
                ('twenty_four_hour_time', models.BooleanField(default=False)),
                ('avatar_source',
                 models.CharField(choices=[('G', 'Hosted by Gravatar'),
                                           ('U', 'Uploaded by user'),
                                           ('S', 'System generated')],
                                  default='G',
                                  max_length=1)),
                ('tutorial_status',
                 models.CharField(choices=[('W', 'Waiting'), ('S', 'Started'),
                                           ('F', 'Finished')],
                                  default='W',
                                  max_length=1)),
                ('onboarding_steps', models.TextField(default='[]')),
                ('invites_granted', models.IntegerField(default=0)),
                ('invites_used', models.IntegerField(default=0)),
                ('alert_words', models.TextField(default='[]')),
                ('muted_topics', models.TextField(default='[]')),
                ('bot_owner',
                 models.ForeignKey(
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='Client',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name',
                 models.CharField(db_index=True, max_length=30, unique=True)),
            ],
        ),
        migrations.CreateModel(
            name='DefaultStream',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
            ],
        ),
        migrations.CreateModel(
            name='Huddle',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('huddle_hash',
                 models.CharField(db_index=True, max_length=40, unique=True)),
            ],
        ),
        migrations.CreateModel(
            name='Message',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('subject', models.CharField(db_index=True, max_length=60)),
                ('content', models.TextField()),
                ('rendered_content', models.TextField(null=True)),
                ('rendered_content_version', models.IntegerField(null=True)),
                ('pub_date',
                 models.DateTimeField(db_index=True,
                                      verbose_name='date published')),
                ('last_edit_time', models.DateTimeField(null=True)),
                ('edit_history', models.TextField(null=True)),
                ('has_attachment',
                 models.BooleanField(db_index=True, default=False)),
                ('has_image', models.BooleanField(db_index=True,
                                                  default=False)),
                ('has_link', models.BooleanField(db_index=True,
                                                 default=False)),
            ],
        ),
        migrations.CreateModel(
            name='PreregistrationUser',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('email', models.EmailField(max_length=75)),
                ('invited_at', models.DateTimeField(auto_now=True)),
                ('status', models.IntegerField(default=0)),
            ],
        ),
        migrations.CreateModel(
            name='PushDeviceToken',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('kind',
                 models.PositiveSmallIntegerField(
                     choices=[(1, 'apns'), (2, 'gcm')])),
                ('token', models.CharField(max_length=4096, unique=True)),
                ('last_updated',
                 models.DateTimeField(auto_now=True,
                                      default=django.utils.timezone.now)),
                ('ios_app_id', models.TextField(null=True)),
                ('user',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='Realm',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('domain',
                 models.CharField(db_index=True, max_length=40, unique=True)),
                ('name', models.CharField(max_length=40, null=True)),
                ('restricted_to_domain', models.BooleanField(default=True)),
                ('invite_required', models.BooleanField(default=False)),
                ('invite_by_admins_only', models.BooleanField(default=False)),
                ('mandatory_topics', models.BooleanField(default=False)),
                ('show_digest_email', models.BooleanField(default=True)),
                ('name_changes_disabled', models.BooleanField(default=False)),
                ('date_created',
                 models.DateTimeField(default=django.utils.timezone.now)),
                ('deactivated', models.BooleanField(default=False)),
            ],
            options={
                'permissions': (('administer', 'Administer a realm'), ),
            },
        ),
        migrations.CreateModel(
            name='RealmAlias',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('domain',
                 models.CharField(db_index=True, max_length=80, unique=True)),
                ('realm',
                 models.ForeignKey(null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   to='zerver.Realm')),
            ],
        ),
        migrations.CreateModel(
            name='RealmEmoji',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.TextField()),
                ('img_url', models.TextField()),
                ('realm',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='zerver.Realm')),
            ],
        ),
        migrations.CreateModel(
            name='RealmFilter',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('pattern', models.TextField()),
                ('url_format_string', models.TextField()),
                ('realm',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='zerver.Realm')),
            ],
        ),
        migrations.CreateModel(
            name='Recipient',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('type_id', models.IntegerField(db_index=True)),
                ('type', models.PositiveSmallIntegerField(db_index=True)),
            ],
        ),
        migrations.CreateModel(
            name='Referral',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('email', models.EmailField(max_length=75)),
                ('timestamp', models.DateTimeField(auto_now_add=True)),
                ('user_profile',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='ScheduledJob',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('scheduled_timestamp', models.DateTimeField()),
                ('type', models.PositiveSmallIntegerField()),
                ('data', models.TextField()),
                ('filter_id', models.IntegerField(null=True)),
                ('filter_string', models.CharField(max_length=100)),
            ],
        ),
        migrations.CreateModel(
            name='Stream',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(db_index=True, max_length=60)),
                ('invite_only', models.NullBooleanField(default=False)),
                ('email_token',
                 models.CharField(
                     default=zerver.models.generate_email_token_for_stream,
                     max_length=32)),
                ('description', models.CharField(default='', max_length=1024)),
                ('date_created',
                 models.DateTimeField(default=django.utils.timezone.now)),
                ('deactivated', models.BooleanField(default=False)),
                ('realm',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='zerver.Realm')),
            ],
        ),
        migrations.CreateModel(
            name='Subscription',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('active', models.BooleanField(default=True)),
                ('in_home_view', models.NullBooleanField(default=True)),
                ('color', models.CharField(default='#c2c2c2', max_length=10)),
                ('desktop_notifications', models.BooleanField(default=True)),
                ('audible_notifications', models.BooleanField(default=True)),
                ('notifications', models.BooleanField(default=False)),
                ('recipient',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='zerver.Recipient')),
                ('user_profile',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='UserActivity',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('query', models.CharField(db_index=True, max_length=50)),
                ('count', models.IntegerField()),
                ('last_visit',
                 models.DateTimeField(verbose_name='last visit')),
                ('client',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='zerver.Client')),
                ('user_profile',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='UserActivityInterval',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('start',
                 models.DateTimeField(db_index=True,
                                      verbose_name='start time')),
                ('end',
                 models.DateTimeField(db_index=True, verbose_name='end time')),
                ('user_profile',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='UserMessage',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('flags',
                 bitfield.models.BitField([
                     'read', 'starred', 'collapsed', 'mentioned',
                     'wildcard_mentioned', 'summarize_in_home',
                     'summarize_in_stream', 'force_expand', 'force_collapse',
                     'has_alert_word', 'historical', 'is_me_message'
                 ],
                                          default=0)),
                ('message',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='zerver.Message')),
                ('user_profile',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='UserPresence',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('timestamp',
                 models.DateTimeField(verbose_name='presence changed')),
                ('status', models.PositiveSmallIntegerField(default=1)),
                ('client',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='zerver.Client')),
                ('user_profile',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.AlterUniqueTogether(
            name='userpresence',
            unique_together=set([('user_profile', 'client')]),
        ),
        migrations.AlterUniqueTogether(
            name='usermessage',
            unique_together=set([('user_profile', 'message')]),
        ),
        migrations.AlterUniqueTogether(
            name='useractivity',
            unique_together=set([('user_profile', 'client', 'query')]),
        ),
        migrations.AlterUniqueTogether(
            name='subscription',
            unique_together=set([('user_profile', 'recipient')]),
        ),
        migrations.AlterUniqueTogether(
            name='stream',
            unique_together=set([('name', 'realm')]),
        ),
        migrations.AlterUniqueTogether(
            name='recipient',
            unique_together=set([('type', 'type_id')]),
        ),
        migrations.AlterUniqueTogether(
            name='realmfilter',
            unique_together=set([('realm', 'pattern')]),
        ),
        migrations.AlterUniqueTogether(
            name='realmemoji',
            unique_together=set([('realm', 'name')]),
        ),
        migrations.AddField(
            model_name='realm',
            name='notifications_stream',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name='+',
                to='zerver.Stream'),
        ),
        migrations.AddField(
            model_name='preregistrationuser',
            name='realm',
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to='zerver.Realm'),
        ),
        migrations.AddField(
            model_name='preregistrationuser',
            name='referred_by',
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddField(
            model_name='preregistrationuser',
            name='streams',
            field=models.ManyToManyField(null=True, to='zerver.Stream'),
        ),
        migrations.AddField(
            model_name='message',
            name='recipient',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='zerver.Recipient'),
        ),
        migrations.AddField(
            model_name='message',
            name='sender',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddField(
            model_name='message',
            name='sending_client',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='zerver.Client'),
        ),
        migrations.AddField(
            model_name='defaultstream',
            name='realm',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='zerver.Realm'),
        ),
        migrations.AddField(
            model_name='defaultstream',
            name='stream',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='zerver.Stream'),
        ),
        migrations.AlterUniqueTogether(
            name='defaultstream',
            unique_together=set([('realm', 'stream')]),
        ),
        migrations.AddField(
            model_name='userprofile',
            name='default_events_register_stream',
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name='+',
                to='zerver.Stream'),
        ),
        migrations.AddField(
            model_name='userprofile',
            name='default_sending_stream',
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name='+',
                to='zerver.Stream'),
        ),
        migrations.AddField(
            model_name='userprofile',
            name='groups',
            field=models.ManyToManyField(
                blank=True,
                help_text=
                'The groups this user belongs to. A user will get all permissions granted to each of their groups.',
                related_name='user_set',
                related_query_name='user',
                to='auth.Group',
                verbose_name='groups'),
        ),
        migrations.AddField(
            model_name='userprofile',
            name='realm',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='zerver.Realm'),
        ),
        migrations.AddField(
            model_name='userprofile',
            name='user_permissions',
            field=models.ManyToManyField(
                blank=True,
                help_text='Specific permissions for this user.',
                related_name='user_set',
                related_query_name='user',
                to='auth.Permission',
                verbose_name='user permissions'),
        ),
        migrations.RunSQL(
            sql=
            '\nCREATE TEXT SEARCH DICTIONARY english_us_hunspell\n  (template = ispell, DictFile = en_us, AffFile = en_us, StopWords = zulip_english);\nCREATE TEXT SEARCH CONFIGURATION zulip.english_us_search (COPY=pg_catalog.english);\nALTER TEXT SEARCH CONFIGURATION zulip.english_us_search\n  ALTER MAPPING FOR asciiword, asciihword, hword_asciipart, word, hword, hword_part\n  WITH english_us_hunspell, english_stem;\n\nCREATE FUNCTION escape_html(text) RETURNS text IMMUTABLE LANGUAGE \'sql\' AS $$\n  SELECT replace(replace(replace(replace(replace($1, \'&\', \'&amp;\'), \'<\', \'&lt;\'),\n                                 \'>\', \'&gt;\'), \'"\', \'&quot;\'), \'\'\'\', \'&#39;\');\n$$ ;\n\nALTER TABLE zerver_message ADD COLUMN search_tsvector tsvector;\nCREATE INDEX zerver_message_search_tsvector ON zerver_message USING gin(search_tsvector);\nALTER INDEX zerver_message_search_tsvector SET (fastupdate = OFF);\n\nCREATE TABLE fts_update_log (id SERIAL PRIMARY KEY, message_id INTEGER NOT NULL);\nCREATE FUNCTION do_notify_fts_update_log() RETURNS trigger LANGUAGE plpgsql AS\n  $$ BEGIN NOTIFY fts_update_log; RETURN NEW; END $$;\nCREATE TRIGGER fts_update_log_notify AFTER INSERT ON fts_update_log\n  FOR EACH STATEMENT EXECUTE PROCEDURE do_notify_fts_update_log();\nCREATE FUNCTION append_to_fts_update_log() RETURNS trigger LANGUAGE plpgsql AS\n  $$ BEGIN INSERT INTO fts_update_log (message_id) VALUES (NEW.id); RETURN NEW; END $$;\nCREATE TRIGGER zerver_message_update_search_tsvector_async\n  BEFORE INSERT OR UPDATE OF subject, rendered_content ON zerver_message\n  FOR EACH ROW EXECUTE PROCEDURE append_to_fts_update_log();\n',
        ),
        migrations.AlterModelManagers(
            name='userprofile',
            managers=[
                ('objects', django.contrib.auth.models.UserManager()),
            ],
        ),
        migrations.AlterField(
            model_name='preregistrationuser',
            name='email',
            field=models.EmailField(max_length=254),
        ),
        migrations.AlterField(
            model_name='preregistrationuser',
            name='streams',
            field=models.ManyToManyField(to='zerver.Stream'),
        ),
        migrations.AlterField(
            model_name='pushdevicetoken',
            name='last_updated',
            field=models.DateTimeField(auto_now=True),
        ),
        migrations.AlterField(
            model_name='referral',
            name='email',
            field=models.EmailField(max_length=254),
        ),
        migrations.AlterField(
            model_name='userprofile',
            name='email',
            field=models.EmailField(db_index=True, max_length=254,
                                    unique=True),
        ),
        migrations.AlterField(
            model_name='userprofile',
            name='last_login',
            field=models.DateTimeField(blank=True,
                                       null=True,
                                       verbose_name='last login'),
        ),
        migrations.RunSQL(
            sql=
            'CREATE INDEX upper_subject_idx ON zerver_message ((upper(subject)));',
            reverse_sql='DROP INDEX upper_subject_idx;',
        ),
        migrations.RunSQL(
            sql=
            'CREATE INDEX upper_stream_name_idx ON zerver_stream ((upper(name)));',
            reverse_sql='DROP INDEX upper_stream_name_idx;',
        ),
        migrations.AddField(
            model_name='userprofile',
            name='left_side_userlist',
            field=models.BooleanField(default=False),
        ),
        migrations.AlterModelOptions(
            name='realm',
            options={
                'permissions':
                (('administer', 'Administer a realm'),
                 ('api_super_user',
                  'Can send messages as other users for mirroring'))
            },
        ),
        migrations.RunSQL(
            sql=
            'CREATE INDEX upper_userprofile_email_idx ON zerver_userprofile ((upper(email)));',
            reverse_sql='DROP INDEX upper_userprofile_email_idx;',
        ),
        migrations.AlterField(
            model_name='userprofile',
            name='is_active',
            field=models.BooleanField(db_index=True, default=True),
        ),
        migrations.AlterField(
            model_name='userprofile',
            name='is_bot',
            field=models.BooleanField(db_index=True, default=False),
        ),
        migrations.RunSQL(
            sql=
            'CREATE INDEX upper_preregistration_email_idx ON zerver_preregistrationuser ((upper(email)));',
            reverse_sql='DROP INDEX upper_preregistration_email_idx;',
        ),
        migrations.AlterField(
            model_name='userprofile',
            name='enable_stream_desktop_notifications',
            field=models.BooleanField(default=False),
        ),
        migrations.AlterField(
            model_name='userprofile',
            name='enable_stream_sounds',
            field=models.BooleanField(default=False),
        ),
        migrations.AddField(
            model_name='userprofile',
            name='is_api_super_user',
            field=models.BooleanField(db_index=True, default=False),
        ),
        migrations.AddField(
            model_name='userprofile',
            name='is_realm_admin',
            field=models.BooleanField(db_index=True, default=False),
        ),
        migrations.AlterField(
            model_name='realmemoji',
            name='img_url',
            field=models.URLField(),
        ),
        migrations.AlterField(
            model_name='realmemoji',
            name='name',
            field=models.TextField(validators=[
                django.core.validators.MinLengthValidator(1),
                django.core.validators.RegexValidator(
                    regex='^[0-9a-zA-Z.\\-_]+(?<![.\\-_])$')
            ]),
        ),
        migrations.AlterField(
            model_name='realmemoji',
            name='img_url',
            field=models.URLField(max_length=1000),
        ),
        migrations.CreateModel(
            name='Attachment',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('file_name', models.CharField(db_index=True, max_length=100)),
                ('path_id', models.TextField(db_index=True)),
                ('create_time',
                 models.DateTimeField(db_index=True,
                                      default=django.utils.timezone.now)),
                ('messages', models.ManyToManyField(to='zerver.Message')),
                ('owner',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
                ('is_realm_public', models.BooleanField(default=False)),
            ],
        ),
        migrations.AddField(
            model_name='realm',
            name='create_stream_by_admins_only',
            field=models.BooleanField(default=False),
        ),
        migrations.AddField(
            model_name='userprofile',
            name='bot_type',
            field=models.PositiveSmallIntegerField(db_index=True, null=True),
        ),
        migrations.AlterField(
            model_name='realmemoji',
            name='name',
            field=models.TextField(validators=[
                django.core.validators.MinLengthValidator(1),
                django.core.validators.RegexValidator(
                    message='Invalid characters in emoji name',
                    regex='^[0-9a-zA-Z.\\-_]+(?<![.\\-_])$')
            ]),
        ),
        migrations.AddField(
            model_name='preregistrationuser',
            name='realm_creation',
            field=models.BooleanField(default=False),
        ),
        migrations.AddField(
            model_name='attachment',
            name='realm',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to='zerver.Realm'),
        ),
        migrations.RunPython(code=migrate_existing_attachment_data, ),
        migrations.AddField(
            model_name='subscription',
            name='pin_to_top',
            field=models.BooleanField(default=False),
        ),
        migrations.AddField(
            model_name='userprofile',
            name='default_language',
            field=models.CharField(default='en', max_length=50),
        ),
        migrations.AddField(
            model_name='realm',
            name='allow_message_editing',
            field=models.BooleanField(default=True),
        ),
        migrations.AddField(
            model_name='realm',
            name='message_content_edit_limit_seconds',
            field=models.IntegerField(default=600),
        ),
        migrations.AddField(
            model_name='realm',
            name='default_language',
            field=models.CharField(default='en', max_length=50),
        ),
        migrations.AddField(
            model_name='userprofile',
            name='tos_version',
            field=models.CharField(max_length=10, null=True),
        ),
    ]
Example #3
0
class Migration(migrations.Migration):
    replaces = [('abonapp', '0001_initial'), ('abonapp', '0002_auto_20180808_1448'), ('abonapp', '0003_abon_nas'),
                ('abonapp', '0004_auto_20180918_1734'), ('abonapp', '0005_current_tariff'),
                ('abonapp', '0006_change_ip'), ('abonapp', '0007_auto_20181101_1545'),
                ('abonapp', '0008_auto_20181115_1206')]

    initial = True

    dependencies = [
        ('tariff_app', '0003_auto_20181115_1206'),
        ('gw_app', '0001_initial'),
        ('tariff_app', '0001_initial'),
        ('ip_pool', '0001_initial'),
        ('gw_app', '0002_auto_20181101_1545'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ('group_app', '0001_initial'),
        ('accounts_app', '0001_initial'),
        ('devapp', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='AbonTariff',
            fields=[
                ('id', models.AutoField(
                    auto_created=True, primary_key=True,
                    serialize=False, verbose_name='ID'
                )),
                ('tariff', models.ForeignKey(
                    on_delete=django.db.models.deletion.CASCADE,
                    related_name='linkto_tariff',
                    to='tariff_app.Tariff'
                )),
                ('time_start', models.DateTimeField(
                    blank=True, default=None, null=True
                )),
                ('deadline', models.DateTimeField(
                    blank=True, default=None, null=True
                )),
            ],
            options={
                'ordering': ('time_start',),
                'permissions': (('can_complete_service', 'finish service perm'),),
                'verbose_name': 'Abon service',
                'verbose_name_plural': 'Abon services',
                'db_table': 'abonent_tariff'
            },
        ),
        migrations.CreateModel(
            name='AbonStreet',
            fields=[
                ('id', models.AutoField(
                    auto_created=True, primary_key=True,
                    serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=64)),
                ('group', models.ForeignKey(
                    on_delete=django.db.models.deletion.CASCADE,
                    to='group_app.Group'
                )),
            ],
            options={
                'verbose_name': 'Street',
                'verbose_name_plural': 'Streets',
                'db_table': 'abon_street',
                'ordering': ('name',),
            },
        ),
        migrations.CreateModel(
            name='Abon',
            fields=[
                ('baseaccount_ptr', models.OneToOneField(
                    auto_created=True, on_delete=django.db.models.deletion.CASCADE,
                    parent_link=True, primary_key=True, serialize=False,
                    to='accounts_app.BaseAccount'
                )),
                ('current_tariff', models.OneToOneField(
                    blank=True, default=None, null=True,
                    on_delete=django.db.models.deletion.SET_NULL,
                    to='abonapp.AbonTariff'
                )),
                ('group', models.ForeignKey(
                    blank=True, null=True,
                    on_delete=django.db.models.deletion.SET_NULL,
                    to='group_app.Group', verbose_name='User group'
                )),
                ('ballance', models.FloatField(default=0.0)),
                ('ip_address', models.GenericIPAddressField(
                    blank=True, null=True,
                    verbose_name='Ip address'
                )),
                ('description', models.TextField(
                    blank=True, null=True, verbose_name='Comment'
                )),
                ('street', models.ForeignKey(
                    blank=True, null=True,
                    on_delete=django.db.models.deletion.SET_NULL,
                    to='abonapp.AbonStreet', verbose_name='Street'
                )),
                ('house', models.CharField(
                    blank=True, max_length=12,
                    null=True, verbose_name='House'
                )),
                ('device', models.ForeignKey(
                    blank=True, null=True,
                    on_delete=django.db.models.deletion.SET_NULL,
                    to='devapp.Device'
                )),
                ('dev_port', models.ForeignKey(
                    blank=True, null=True,
                    on_delete=django.db.models.deletion.SET_NULL,
                    to='devapp.Port'
                )),
                ('is_dynamic_ip', models.BooleanField(
                    default=False, verbose_name='Is dynamic ip'
                )),
                ('nas', models.ForeignKey(
                    blank=True, default=None, null=True,
                    on_delete=django.db.models.deletion.SET_NULL,
                    to='gw_app.NASModel', verbose_name='Network access server'
                )),
                ('autoconnect_service', models.BooleanField(
                    default=False, verbose_name='Automatically connect next service'
                )),
                ('last_connected_tariff', models.ForeignKey(
                    blank=True, default=None, null=True,
                    on_delete=django.db.models.deletion.SET_NULL,
                    to='tariff_app.Tariff',
                    verbose_name='Last connected service'
                )),
                ('markers', bitfield.models.BitField(
                    (('icon_donkey', 'Donkey'), ('icon_fire', 'Fire'),
                     ('icon_ok', 'Ok'), ('icon_king', 'King'),
                     ('icon_tv', 'TV'), ('icon_smile', 'Smile'),
                     ('icon_dollar', 'Dollar'), ('icon_service', 'Service'),
                     ('icon_mrk', 'Marker')), default=0
                )),
            ],
            options={
                'ordering': ('fio',),
                'permissions': (
                    ('can_buy_tariff', 'Buy service perm'),
                    ('can_add_ballance', 'fill account'),
                    ('can_ping', 'Can ping')),
                'verbose_name': 'Abon',
                'verbose_name_plural': 'Abons',
                'db_table': 'abonent',
                'unique_together': {('ip_address', 'nas')}
            },
            bases=('accounts_app.baseaccount',),
        ),
        migrations.CreateModel(
            name='AbonLog',
            fields=[
                ('id', models.AutoField(
                    auto_created=True, primary_key=True,
                    serialize=False, verbose_name='ID'
                )),
                ('abon', models.ForeignKey(
                    on_delete=django.db.models.deletion.CASCADE,
                    to='abonapp.Abon')),
                ('amount', models.FloatField(default=0.0)),
                ('author', models.ForeignKey(
                    blank=True, null=True,
                    on_delete=django.db.models.deletion.SET_NULL,
                    related_name='+', to=settings.AUTH_USER_MODEL
                )),
                ('comment', models.CharField(max_length=128)),
                ('date', models.DateTimeField(auto_now_add=True)),
            ],
            options={
                'db_table': 'abonent_log',
                'ordering': ('-date',)
            },
        ),
        migrations.CreateModel(
            name='AdditionalTelephone',
            fields=[
                ('abon', models.ForeignKey(
                    on_delete=django.db.models.deletion.CASCADE,
                    related_name='additional_telephones',
                    to='abonapp.Abon'
                )),
                ('id', models.AutoField(
                    auto_created=True, primary_key=True,
                    serialize=False, verbose_name='ID'
                )),
                ('telephone', models.CharField(
                    max_length=16, validators=[
                        django.core.validators.RegexValidator('^(\\+[7,8,9,3]\\d{10,11})?$')
                    ],
                    verbose_name='Telephone')
                 ),
                ('owner_name', models.CharField(max_length=127)),
            ],
            options={
                'verbose_name': 'Additional telephone',
                'verbose_name_plural': 'Additional telephones',
                'db_table': 'additional_telephones',
                'ordering': ('owner_name',),
            },
        ),
        migrations.CreateModel(
            name='AllPayLog',
            fields=[
                ('pay_id', models.CharField(max_length=64, primary_key=True, serialize=False)),
                ('date_action', models.DateTimeField(auto_now_add=True)),
                ('summ', models.FloatField(default=0.0)),
                ('pay_system_name', models.CharField(max_length=16)),
            ],
            options={
                'db_table': 'all_pay_log',
                'ordering': ('-date_action',),
            },
        ),
        migrations.CreateModel(
            name='AllTimePayLog',
            fields=[
                ('abon',
                 models.ForeignKey(
                     blank=True, default=None, null=True,
                     on_delete=django.db.models.deletion.SET_DEFAULT,
                     to='abonapp.Abon'
                 )),
                ('pay_id', models.CharField(
                    max_length=36, primary_key=True,
                    serialize=False, unique=True
                )),
                ('date_add', models.DateTimeField(auto_now_add=True)),
                ('summ', models.FloatField(default=0.0)),
                ('trade_point', models.CharField(
                    blank=True, default=None, max_length=20,
                    null=True, verbose_name='Trade point'
                )),
                ('receipt_num', models.BigIntegerField(default=0, verbose_name='Receipt number')),
            ],
            options={
                'db_table': 'all_time_pay_log',
                'ordering': ('-date_add',),
            },
        ),
        migrations.CreateModel(
            name='InvoiceForPayment',
            fields=[
                ('id', models.AutoField(
                    auto_created=True, primary_key=True,
                    serialize=False, verbose_name='ID'
                )),
                ('abon', models.ForeignKey(
                    on_delete=django.db.models.deletion.CASCADE,
                    to='abonapp.Abon'
                )),
                ('status', models.BooleanField(default=False)),
                ('amount', models.FloatField(default=0.0)),
                ('comment', models.CharField(max_length=128)),
                ('date_create', models.DateTimeField(auto_now_add=True)),
                ('date_pay', models.DateTimeField(blank=True, null=True)),
                ('author', models.ForeignKey(
                    blank=True, null=True,
                    on_delete=django.db.models.deletion.SET_NULL,
                    related_name='+', to=settings.AUTH_USER_MODEL
                ))
            ],
            options={
                'verbose_name': 'Debt',
                'verbose_name_plural': 'Debts',
                'db_table': 'abonent_inv_pay',
                'ordering': ('date_create',)
            },
        ),
        migrations.CreateModel(
            name='PassportInfo',
            fields=[
                ('id', models.AutoField(
                    auto_created=True, primary_key=True,
                    serialize=False, verbose_name='ID'
                )),
                ('series', models.CharField(
                    max_length=4, validators=[django.core.validators.integer_validator],
                    verbose_name='Pasport serial'
                )),
                ('number', models.CharField(
                    max_length=6, validators=[django.core.validators.integer_validator],
                    verbose_name='Pasport number'
                )),
                ('distributor', models.CharField(
                    max_length=64, verbose_name='Distributor'
                )),
                ('date_of_acceptance', models.DateField(
                    verbose_name='Date of acceptance'
                )),
                ('abon', models.OneToOneField(
                    blank=True, null=True,
                    on_delete=django.db.models.deletion.CASCADE,
                    to='abonapp.Abon'
                ))
            ],
            options={
                'ordering': ('series',),
                'verbose_name': 'Passport Info',
                'verbose_name_plural': 'Passport Info',
                'db_table': 'passport_info'
            },
        ),
        migrations.CreateModel(
            name='PeriodicPayForId',
            fields=[
                ('id', models.AutoField(
                    auto_created=True, primary_key=True,
                    serialize=False, verbose_name='ID'
                )),
                ('periodic_pay', models.ForeignKey(
                    on_delete=django.db.models.deletion.CASCADE,
                    to='tariff_app.PeriodicPay',
                    verbose_name='Periodic pay'
                )),
                ('last_pay', models.DateTimeField(
                    blank=True, null=True, verbose_name='Last pay time'
                )),
                ('next_pay', models.DateTimeField(
                    verbose_name='Next time to pay'
                )),
                ('account', models.ForeignKey(
                    on_delete=django.db.models.deletion.CASCADE,
                    to='abonapp.Abon',
                    verbose_name='Account'
                ))
            ],
            options={
                'db_table': 'periodic_pay_for_id',
                'ordering': ('last_pay',)
            },
        ),
        migrations.CreateModel(
            name='AbonRawPassword',
            fields=[
                ('account', models.OneToOneField(
                    on_delete=django.db.models.deletion.CASCADE,
                    primary_key=True, serialize=False,
                    to='abonapp.Abon'
                )),
                ('passw_text', models.CharField(max_length=64)),
            ],
            options={
                'db_table': 'abon_raw_password',
            },
        ),
    ]
Example #4
0
class Migration(migrations.Migration):

    dependencies = [
        ('faculty', '0016_shorten_indexes'),
    ]

    operations = [
        migrations.AlterField(
            model_name='careerevent',
            name='config',
            field=courselib.json_fields.JSONField(default=dict),
        ),
        migrations.AlterField(
            model_name='careerevent',
            name='event_type',
            field=models.CharField(choices=[
                ('ADMINPOS',
                 faculty.event_types.position.AdminPositionEventHandler),
                ('APPOINT',
                 faculty.event_types.career.AppointmentEventHandler),
                ('AWARD', faculty.event_types.awards.AwardEventHandler),
                ('COMMITTEE', faculty.event_types.info.CommitteeMemberHandler),
                ('EXTERN_AFF',
                 faculty.event_types.info.ExternalAffiliationHandler),
                ('EXTSERVICE',
                 faculty.event_types.info.ExternalServiceHandler),
                ('FELLOW', faculty.event_types.awards.FellowshipEventHandler),
                ('GRANTAPP',
                 faculty.event_types.awards.GrantApplicationEventHandler),
                ('NORM_TEACH',
                 faculty.event_types.teaching.NormalTeachingLoadHandler),
                ('LEAVE', faculty.event_types.career.OnLeaveEventHandler),
                ('ONE_NINE', faculty.event_types.teaching.OneInNineHandler),
                ('OTHER_NOTE', faculty.event_types.info.OtherEventHandler),
                ('LABMEMB',
                 faculty.event_types.info.ResearchMembershipHandler),
                ('SALARY', faculty.event_types.career.SalaryBaseEventHandler),
                ('STIPEND',
                 faculty.event_types.career.SalaryModificationEventHandler),
                ('SPCL_DEAL', faculty.event_types.info.SpecialDealHandler),
                ('STUDYLEAVE',
                 faculty.event_types.career.StudyLeaveEventHandler),
                ('TEACHING',
                 faculty.event_types.awards.TeachingCreditEventHandler),
                ('TENUREAPP',
                 faculty.event_types.career.TenureApplicationEventHandler),
                ('ACCRED',
                 faculty.event_types.career.AccreditationFlagEventHandler),
                ('PROMOTION',
                 faculty.event_types.career.PromotionApplicationEventHandler),
                ('SALARYREV',
                 faculty.event_types.career.SalaryReviewEventHandler),
                ('CONTRACTRV',
                 faculty.event_types.career.ContractReviewEventHandler),
                ('RESUME', faculty.event_types.info.ResumeEventHandler)
            ],
                                   max_length=10),
        ),
        migrations.AlterField(
            model_name='careerevent',
            name='flags',
            field=bitfield.models.BitField(
                ['affects_teaching', 'affects_salary'], default=0),
        ),
        migrations.AlterField(
            model_name='careerevent',
            name='person',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                related_name='career_events',
                to='coredata.Person'),
        ),
        migrations.AlterField(
            model_name='careerevent',
            name='slug',
            field=autoslug.fields.AutoSlugField(editable=False,
                                                populate_from='slug_string',
                                                unique_with=('person', )),
        ),
        migrations.AlterField(
            model_name='careerevent',
            name='status',
            field=models.CharField(choices=[('NA', 'Needs Approval'),
                                            ('A', 'Approved'),
                                            ('D', 'Deleted')],
                                   default='',
                                   max_length=2),
        ),
        migrations.AlterField(
            model_name='careerevent',
            name='unit',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Unit'),
        ),
        migrations.AlterField(
            model_name='documentattachment',
            name='career_event',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                related_name='attachments',
                to='faculty.CareerEvent'),
        ),
        migrations.AlterField(
            model_name='documentattachment',
            name='contents',
            field=models.FileField(
                max_length=500,
                storage=django.core.files.storage.FileSystemStorage(
                    base_url=None, location='submitted_files'),
                upload_to=faculty.models.attachment_upload_to),
        ),
        migrations.AlterField(
            model_name='documentattachment',
            name='created_by',
            field=models.ForeignKey(
                help_text='Document attachment created by.',
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Person'),
        ),
        migrations.AlterField(
            model_name='documentattachment',
            name='slug',
            field=autoslug.fields.AutoSlugField(
                editable=False,
                populate_from='title',
                unique_with=('career_event', )),
        ),
        migrations.AlterField(
            model_name='eventconfig',
            name='config',
            field=courselib.json_fields.JSONField(default=dict),
        ),
        migrations.AlterField(
            model_name='eventconfig',
            name='event_type',
            field=models.CharField(choices=[
                ('ADMINPOS',
                 faculty.event_types.position.AdminPositionEventHandler),
                ('APPOINT',
                 faculty.event_types.career.AppointmentEventHandler),
                ('AWARD', faculty.event_types.awards.AwardEventHandler),
                ('COMMITTEE', faculty.event_types.info.CommitteeMemberHandler),
                ('EXTERN_AFF',
                 faculty.event_types.info.ExternalAffiliationHandler),
                ('EXTSERVICE',
                 faculty.event_types.info.ExternalServiceHandler),
                ('FELLOW', faculty.event_types.awards.FellowshipEventHandler),
                ('GRANTAPP',
                 faculty.event_types.awards.GrantApplicationEventHandler),
                ('NORM_TEACH',
                 faculty.event_types.teaching.NormalTeachingLoadHandler),
                ('LEAVE', faculty.event_types.career.OnLeaveEventHandler),
                ('ONE_NINE', faculty.event_types.teaching.OneInNineHandler),
                ('OTHER_NOTE', faculty.event_types.info.OtherEventHandler),
                ('LABMEMB',
                 faculty.event_types.info.ResearchMembershipHandler),
                ('SALARY', faculty.event_types.career.SalaryBaseEventHandler),
                ('STIPEND',
                 faculty.event_types.career.SalaryModificationEventHandler),
                ('SPCL_DEAL', faculty.event_types.info.SpecialDealHandler),
                ('STUDYLEAVE',
                 faculty.event_types.career.StudyLeaveEventHandler),
                ('TEACHING',
                 faculty.event_types.awards.TeachingCreditEventHandler),
                ('TENUREAPP',
                 faculty.event_types.career.TenureApplicationEventHandler),
                ('ACCRED',
                 faculty.event_types.career.AccreditationFlagEventHandler),
                ('PROMOTION',
                 faculty.event_types.career.PromotionApplicationEventHandler),
                ('SALARYREV',
                 faculty.event_types.career.SalaryReviewEventHandler),
                ('CONTRACTRV',
                 faculty.event_types.career.ContractReviewEventHandler),
                ('RESUME', faculty.event_types.info.ResumeEventHandler)
            ],
                                   max_length=10),
        ),
        migrations.AlterField(
            model_name='eventconfig',
            name='unit',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Unit'),
        ),
        migrations.AlterField(
            model_name='facultymemberinfo',
            name='birthday',
            field=models.DateField(blank=True,
                                   null=True,
                                   verbose_name='Birthdate'),
        ),
        migrations.AlterField(
            model_name='facultymemberinfo',
            name='config',
            field=courselib.json_fields.JSONField(blank=True,
                                                  default=dict,
                                                  null=True),
        ),
        migrations.AlterField(
            model_name='facultymemberinfo',
            name='emergency_contact',
            field=models.TextField(
                blank=True, verbose_name='Emergency Contact Information'),
        ),
        migrations.AlterField(
            model_name='facultymemberinfo',
            name='office_number',
            field=models.CharField(blank=True,
                                   max_length=20,
                                   null=True,
                                   verbose_name='Office'),
        ),
        migrations.AlterField(
            model_name='facultymemberinfo',
            name='person',
            field=models.OneToOneField(
                on_delete=django.db.models.deletion.PROTECT,
                related_name='+',
                to='coredata.Person'),
        ),
        migrations.AlterField(
            model_name='facultymemberinfo',
            name='phone_number',
            field=models.CharField(blank=True,
                                   max_length=20,
                                   null=True,
                                   verbose_name='Local Phone Number'),
        ),
        migrations.AlterField(
            model_name='grant',
            name='config',
            field=courselib.json_fields.JSONField(blank=True,
                                                  default=dict,
                                                  null=True),
        ),
        migrations.AlterField(
            model_name='grant',
            name='import_key',
            field=models.CharField(
                blank=True,
                help_text="e.g. 'nserc-43517b4fd422423382baab1e916e7f63'",
                max_length=255,
                null=True),
        ),
        migrations.AlterField(
            model_name='grant',
            name='initial',
            field=models.DecimalField(decimal_places=2,
                                      max_digits=12,
                                      verbose_name='Initial balance'),
        ),
        migrations.AlterField(
            model_name='grant',
            name='label',
            field=models.CharField(
                db_index=True,
                help_text='for identification from FAST import',
                max_length=150),
        ),
        migrations.AlterField(
            model_name='grant',
            name='overhead',
            field=models.DecimalField(
                decimal_places=2,
                help_text='Annual overhead returned to Faculty budget',
                max_digits=12,
                verbose_name='Annual overhead'),
        ),
        migrations.AlterField(
            model_name='grant',
            name='owners',
            field=models.ManyToManyField(
                help_text='Who owns/controls this grant?',
                through='faculty.GrantOwner',
                to='coredata.Person'),
        ),
        migrations.AlterField(
            model_name='grant',
            name='project_code',
            field=models.CharField(
                db_index=True,
                help_text="The fund and project code, like '13-123456'",
                max_length=32),
        ),
        migrations.AlterField(
            model_name='grant',
            name='slug',
            field=autoslug.fields.AutoSlugField(editable=False,
                                                populate_from='title',
                                                unique_with=('unit', )),
        ),
        migrations.AlterField(
            model_name='grant',
            name='status',
            field=models.CharField(choices=[('A', 'Active'), ('D', 'Deleted')],
                                   default='A',
                                   max_length=2),
        ),
        migrations.AlterField(
            model_name='grant',
            name='title',
            field=models.CharField(
                help_text='Label for the grant within this system',
                max_length=64),
        ),
        migrations.AlterField(
            model_name='grant',
            name='unit',
            field=models.ForeignKey(
                help_text='Unit who owns the grant',
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Unit'),
        ),
        migrations.AlterField(
            model_name='grantbalance',
            name='actual',
            field=models.DecimalField(decimal_places=2,
                                      max_digits=12,
                                      verbose_name='YTD actual'),
        ),
        migrations.AlterField(
            model_name='grantbalance',
            name='balance',
            field=models.DecimalField(decimal_places=2,
                                      max_digits=12,
                                      verbose_name='grant balance'),
        ),
        migrations.AlterField(
            model_name='grantbalance',
            name='config',
            field=courselib.json_fields.JSONField(blank=True,
                                                  default=dict,
                                                  null=True),
        ),
        migrations.AlterField(
            model_name='grantbalance',
            name='grant',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='faculty.Grant'),
        ),
        migrations.AlterField(
            model_name='grantbalance',
            name='month',
            field=models.DecimalField(decimal_places=2,
                                      max_digits=12,
                                      verbose_name='current month'),
        ),
        migrations.AlterField(
            model_name='grantowner',
            name='config',
            field=courselib.json_fields.JSONField(blank=True,
                                                  default=dict,
                                                  null=True),
        ),
        migrations.AlterField(
            model_name='grantowner',
            name='grant',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='faculty.Grant'),
        ),
        migrations.AlterField(
            model_name='grantowner',
            name='person',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Person'),
        ),
        migrations.AlterField(
            model_name='memo',
            name='career_event',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='faculty.CareerEvent'),
        ),
        migrations.AlterField(
            model_name='memo',
            name='cc_lines',
            field=models.TextField(
                blank=True,
                help_text='Additional recipients of the memo',
                null=True,
                verbose_name='CC lines'),
        ),
        migrations.AlterField(
            model_name='memo',
            name='config',
            field=courselib.json_fields.JSONField(default=dict),
        ),
        migrations.AlterField(
            model_name='memo',
            name='created_by',
            field=models.ForeignKey(
                help_text='Letter generation requested by.',
                on_delete=django.db.models.deletion.PROTECT,
                related_name='+',
                to='coredata.Person'),
        ),
        migrations.AlterField(
            model_name='memo',
            name='from_lines',
            field=models.TextField(
                help_text=
                'Name (and title) of the sender, e.g. "John Smith, Applied Sciences, Dean"',
                verbose_name='From'),
        ),
        migrations.AlterField(
            model_name='memo',
            name='from_person',
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.PROTECT,
                related_name='+',
                to='coredata.Person'),
        ),
        migrations.AlterField(
            model_name='memo',
            name='is_letter',
            field=models.BooleanField(
                default=False,
                help_text=
                'Make it a letter with correct letterhead instead of a memo.',
                verbose_name='Make it a letter'),
        ),
        migrations.AlterField(
            model_name='memo',
            name='memo_text',
            field=models.TextField(help_text="I.e. 'Congratulations on ... '"),
        ),
        migrations.AlterField(
            model_name='memo',
            name='sent_date',
            field=models.DateField(default=datetime.date.today,
                                   help_text='The sending date of the letter'),
        ),
        migrations.AlterField(
            model_name='memo',
            name='slug',
            field=autoslug.fields.AutoSlugField(
                editable=False,
                populate_from='autoslug',
                unique_with=('career_event', )),
        ),
        migrations.AlterField(
            model_name='memo',
            name='subject',
            field=models.TextField(
                help_text=
                'The subject of the memo (lines will be formatted separately in the memo header). This will be ignored for letters'
            ),
        ),
        migrations.AlterField(
            model_name='memo',
            name='template',
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.PROTECT,
                to='faculty.MemoTemplate'),
        ),
        migrations.AlterField(
            model_name='memo',
            name='to_lines',
            field=models.TextField(blank=True,
                                   help_text='Recipient of the memo',
                                   null=True,
                                   verbose_name='Attention'),
        ),
        migrations.AlterField(
            model_name='memo',
            name='unit',
            field=models.ForeignKey(
                help_text=
                'The unit producing the memo: will determine the letterhead used for the memo.',
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Unit'),
        ),
        migrations.AlterField(
            model_name='memotemplate',
            name='created_by',
            field=models.ForeignKey(
                help_text='Memo template created by.',
                on_delete=django.db.models.deletion.PROTECT,
                related_name='+',
                to='coredata.Person'),
        ),
        migrations.AlterField(
            model_name='memotemplate',
            name='default_from',
            field=models.CharField(blank=True,
                                   help_text='The default sender of the memo',
                                   max_length=255,
                                   verbose_name='Default From'),
        ),
        migrations.AlterField(
            model_name='memotemplate',
            name='event_type',
            field=models.CharField(
                choices=[('ADMINPOS', faculty.event_types.
                          position.AdminPositionEventHandler),
                         ('APPOINT',
                          faculty.event_types.career.AppointmentEventHandler),
                         ('AWARD', faculty.event_types.awards.AwardEventHandler
                          ),
                         ('COMMITTEE',
                          faculty.event_types.info.CommitteeMemberHandler),
                         ('EXTERN_AFF',
                          faculty.event_types.info.ExternalAffiliationHandler),
                         ('EXTSERVICE',
                          faculty.event_types.info.ExternalServiceHandler),
                         ('FELLOW',
                          faculty.event_types.awards.FellowshipEventHandler),
                         ('GRANTAPP', faculty.event_types.awards.
                          GrantApplicationEventHandler),
                         ('NORM_TEACH', faculty.event_types.
                          teaching.NormalTeachingLoadHandler),
                         ('LEAVE',
                          faculty.event_types.career.OnLeaveEventHandler
                          ),
                         ('ONE_NINE',
                          faculty.event_types.teaching.OneInNineHandler),
                         ('OTHER_NOTE',
                          faculty.event_types.info.OtherEventHandler),
                         ('LABMEMB',
                          faculty.event_types.info.ResearchMembershipHandler),
                         ('SALARY',
                          faculty.event_types.career.SalaryBaseEventHandler),
                         ('STIPEND', faculty.event_types.career.
                          SalaryModificationEventHandler),
                         ('SPCL_DEAL',
                          faculty.event_types.info.SpecialDealHandler),
                         ('STUDYLEAVE',
                          faculty.event_types.career.StudyLeaveEventHandler),
                         ('TEACHING',
                          faculty.event_types.awards.TeachingCreditEventHandler
                          ),
                         ('TENUREAPP', faculty.event_types.career.
                          TenureApplicationEventHandler),
                         ('ACCRED', faculty.event_types.career.
                          AccreditationFlagEventHandler),
                         ('PROMOTION', faculty.event_types.career.
                          PromotionApplicationEventHandler),
                         ('SALARYREV',
                          faculty.event_types.career.SalaryReviewEventHandler),
                         ('CONTRACTRV',
                          faculty.event_types.career.ContractReviewEventHandler
                          ),
                         ('RESUME',
                          faculty.event_types.info.ResumeEventHandler)],
                help_text='The type of event that this memo applies to',
                max_length=10),
        ),
        migrations.AlterField(
            model_name='memotemplate',
            name='is_letter',
            field=models.BooleanField(
                default=False,
                help_text='Should this be a letter by default',
                verbose_name='Make it a letter'),
        ),
        migrations.AlterField(
            model_name='memotemplate',
            name='label',
            field=models.CharField(
                help_text=
                'The name for this template (that you select it by when using it)',
                max_length=150,
                verbose_name='Template Name'),
        ),
        migrations.AlterField(
            model_name='memotemplate',
            name='slug',
            field=autoslug.fields.AutoSlugField(editable=False,
                                                populate_from='autoslug',
                                                unique=True),
        ),
        migrations.AlterField(
            model_name='memotemplate',
            name='subject',
            field=models.CharField(
                help_text=
                'The default subject of the memo. Will be ignored for letters',
                max_length=255,
                verbose_name='Default Subject'),
        ),
        migrations.AlterField(
            model_name='memotemplate',
            name='template_text',
            field=models.TextField(
                help_text=
                "The template for the memo. It may be edited when creating each memo. (i.e. 'Congratulations {{first_name}} on ... ')"
            ),
        ),
        migrations.AlterField(
            model_name='memotemplate',
            name='unit',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Unit'),
        ),
        migrations.AlterField(
            model_name='position',
            name='degree1',
            field=models.CharField(default='', max_length=12),
        ),
        migrations.AlterField(
            model_name='position',
            name='degree2',
            field=models.CharField(default='', max_length=12),
        ),
        migrations.AlterField(
            model_name='position',
            name='degree3',
            field=models.CharField(default='', max_length=12),
        ),
        migrations.AlterField(
            model_name='position',
            name='institution1',
            field=models.CharField(default='', max_length=25),
        ),
        migrations.AlterField(
            model_name='position',
            name='institution2',
            field=models.CharField(default='', max_length=25),
        ),
        migrations.AlterField(
            model_name='position',
            name='institution3',
            field=models.CharField(default='', max_length=25),
        ),
        migrations.AlterField(
            model_name='position',
            name='location1',
            field=models.CharField(default='', max_length=23),
        ),
        migrations.AlterField(
            model_name='position',
            name='location2',
            field=models.CharField(default='', max_length=23),
        ),
        migrations.AlterField(
            model_name='position',
            name='location3',
            field=models.CharField(default='', max_length=23),
        ),
        migrations.AlterField(
            model_name='position',
            name='percentage',
            field=models.DecimalField(
                blank=True,
                decimal_places=2,
                default=100,
                help_text='Percentage of this position in the given unit',
                max_digits=5,
                null=True),
        ),
        migrations.AlterField(
            model_name='position',
            name='projected_start_date',
            field=models.DateField(default=faculty.models.timezone_today,
                                   verbose_name='Projected Start Date'),
        ),
        migrations.AlterField(
            model_name='position',
            name='rank',
            field=models.CharField(blank=True,
                                   choices=[('LLEC', 'Limited-Term Lecturer'),
                                            ('LABI', 'Laboratory Instructor'),
                                            ('LECT', 'Lecturer'),
                                            ('SLEC', 'Senior Lecturer'),
                                            ('INST', 'Instructor'),
                                            ('ASSI', 'Assistant Professor'),
                                            ('ASSO', 'Associate Professor'),
                                            ('FULL', 'Full Professor'),
                                            ('URAS',
                                             'University Research Associate'),
                                            ('ADJC', 'Adjunct Professor')],
                                   max_length=50,
                                   null=True),
        ),
        migrations.AlterField(
            model_name='position',
            name='unit',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Unit'),
        ),
        migrations.AlterField(
            model_name='position',
            name='year1',
            field=models.CharField(default='', max_length=5),
        ),
        migrations.AlterField(
            model_name='position',
            name='year2',
            field=models.CharField(default='', max_length=5),
        ),
        migrations.AlterField(
            model_name='position',
            name='year3',
            field=models.CharField(default='', max_length=5),
        ),
        migrations.AlterField(
            model_name='positiondocumentattachment',
            name='contents',
            field=models.FileField(
                max_length=500,
                storage=django.core.files.storage.FileSystemStorage(
                    base_url=None, location='submitted_files'),
                upload_to=faculty.models.position_attachment_upload_to),
        ),
        migrations.AlterField(
            model_name='positiondocumentattachment',
            name='created_by',
            field=models.ForeignKey(
                help_text='Document attachment created by.',
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Person'),
        ),
        migrations.AlterField(
            model_name='positiondocumentattachment',
            name='position',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                related_name='attachments',
                to='faculty.Position'),
        ),
        migrations.AlterField(
            model_name='positiondocumentattachment',
            name='slug',
            field=autoslug.fields.AutoSlugField(editable=False,
                                                populate_from='title',
                                                unique_with=('position', )),
        ),
        migrations.AlterField(
            model_name='tempgrant',
            name='config',
            field=courselib.json_fields.JSONField(default=dict),
        ),
        migrations.AlterField(
            model_name='tempgrant',
            name='creator',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Person'),
        ),
        migrations.AlterField(
            model_name='tempgrant',
            name='import_key',
            field=models.CharField(
                blank=True,
                help_text="e.g. 'nserc-43517b4fd422423382baab1e916e7f63'",
                max_length=255,
                null=True),
        ),
        migrations.AlterField(
            model_name='tempgrant',
            name='initial',
            field=models.DecimalField(decimal_places=2,
                                      max_digits=12,
                                      verbose_name='initial balance'),
        ),
        migrations.AlterField(
            model_name='tempgrant',
            name='label',
            field=models.CharField(
                help_text='for identification from FAST import',
                max_length=150),
        ),
        migrations.AlterField(
            model_name='tempgrant',
            name='project_code',
            field=models.CharField(
                help_text="The fund and project code, like '13-123456'",
                max_length=32),
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [("accounts", "0040_add_message_model")]

    operations = [
        migrations.AddField(
            model_name="child",
            name="gestational_age_at_birth",
            field=models.PositiveSmallIntegerField(
                choices=[
                    (None, "Not sure or prefer not to answer"),
                    (0, "Under 24 weeks"),
                    (1, "24 weeks"),
                    (2, "25 weeks"),
                    (3, "26 weeks"),
                    (4, "27 weeks"),
                    (5, "28 weeks"),
                    (6, "29 weeks"),
                    (7, "30 weeks"),
                    (8, "31 weeks"),
                    (9, "32 weeks"),
                    (10, "33 weeks"),
                    (11, "34 weeks"),
                    (12, "35 weeks"),
                    (13, "36 weeks"),
                    (14, "37 weeks"),
                    (15, "38 weeks"),
                    (16, "39 weeks"),
                    (17, "40 or more weeks"),
                ],
                default=None,
                null=True,
            ),
        ),
        migrations.RunPython(
            _forwards_migrate_ga_birth_char_field_to_int,
            reverse_code=_backwards_reverse_int_field_to_char,
        ),
        migrations.AlterField(  # manually added to enable migration reversal, see https://stackoverflow.com/a/28879030
            model_name="child",
            name="age_at_birth",
            field=models.CharField(
                max_length=25, choices=AGE_AT_BIRTH_CHOICES, default="na"
            ),
            preserve_default=False,
        ),
        migrations.RemoveField(model_name="child", name="age_at_birth"),
        migrations.AddField(
            model_name="child",
            name="existing_conditions",
            field=bitfield.models.BitField(
                (
                    ("autism_spectrum_disorder", "Autism Spectrum Disorder"),
                    ("aspergers_syndrome", "Asperger's Syndrome"),
                    ("down_syndrome", "Down Syndrome"),
                    ("williams_syndrome", "Williams Syndrome"),
                    ("stroke", "Stroke"),
                    ("blind", "Blind"),
                    ("visual_impairment", "Visual Impairment"),
                    ("deaf", "Deaf"),
                    ("hearing_impairment", "Hearing Impairment"),
                    ("dyslexia", "Dyslexia"),
                    (
                        "attention_deficit_hyperactivity_disorder",
                        "Attention Deficit/Hyperactivity Disorder",
                    ),
                    ("learning_disability", "Learning Disability"),
                    ("generalized_anxiety_disorder", "Generalized Anxiety Disorder"),
                    ("obsessive_compulsive_disorder", "Obsessive-Compulsive Disorder"),
                    ("panic_disorder", "Panic Disorder"),
                    (
                        "post_traumatic_stress_disorder",
                        "Post-Traumatic Stress Disorder",
                    ),
                    (
                        "social_phobia_social_anxiety_disorder",
                        "Social Phobia/Social Anxiety Disorder",
                    ),
                    ("depression", "Depression"),
                    ("other_mood_disorder", "Other Mood Disorder"),
                    ("allergies", "Allergies"),
                    ("fetal_alcohol_syndrome", "Fetal Alcohol Syndrome"),
                    ("epilepsy", "Epilepsy"),
                    ("diabetes", "Diabetes"),
                    (
                        "other_chronic_medical_condition",
                        "Other Chronic Medical Condition",
                    ),
                    ("other_genetic_condition", "Other Genetic Condition"),
                    (
                        "gifted_advanced_learning_needs",
                        "Gifted/Advanced learning needs",
                    ),
                    ("adopted", "Adopted"),
                    (
                        "multiple birth",
                        "Multiple Birth (twin, triplet, or higher order)",
                    ),
                    ("has_older_sibling", "Has at least one older sibling"),
                    ("has_younger_sibling", "Has at least one younger sibling"),
                ),
                default=0,
            ),
        ),
        migrations.AddField(
            model_name="child",
            name="languages_spoken",
            field=bitfield.models.BitField(
                (
                    ("cmn", "Mandarin"),
                    ("es", "Spanish"),
                    ("en", "English"),
                    ("hi", "Hindi"),
                    ("bn", "Bengali"),
                    ("pt", "Portuguese"),
                    ("ru", "Russian"),
                    ("ja", "Japanese"),
                    ("lah", "Western Punjabi"),
                    ("mr", "Marathi"),
                    ("te", "Telugu"),
                    ("wuu", "Wu"),
                    ("tr", "Turkish"),
                    ("ko", "Korean"),
                    ("fr", "French"),
                    ("de", "German"),
                    ("vi", "Vietnamese"),
                    ("ta", "Tamil"),
                    ("yue", "Yue"),
                    ("ur", "Urdu"),
                    ("jv", "Javanese"),
                    ("it", "Italian"),
                    ("egy", "Egyptian Spoken Arabic"),
                    ("gu", "Gujarati"),
                    ("pes", "Iranian Persian"),
                    ("bho", "Bhojpuri"),
                    ("nan", "Min Nan"),
                    ("hak", "Hakka"),
                    ("cjy", "Jinyu"),
                    ("ha", "Hausa"),
                    ("kn", "Kannada"),
                    ("id", "Indonesian"),
                    ("pl", "Polish"),
                    ("yo", "Yoruba"),
                    ("hsn", "Xiang Chinese"),
                    ("ml", "Malayalam"),
                    ("or", "Odia"),
                    ("mai", "Maithili"),
                    ("my", "Burmese"),
                    ("su", "Sunda"),
                    ("mor", "Moroccan Spoken Arabic"),
                    ("uk", "Ukrainian"),
                    ("ig", "Igbo"),
                    ("uzn", "Northern Uzbek"),
                    ("sd", "Sindhi"),
                    ("ro", "Romanian"),
                    ("tl", "Tagalog"),
                    ("nl", "Dutch"),
                    ("gan", "Gan"),
                    ("am", "Amharic"),
                    ("pbu", "Northern Pashto"),
                    ("mag", "Magahi"),
                    ("th", "Thai"),
                    ("skr", "Saraiki"),
                    ("km", "Khmer"),
                    ("hne", "Chhattisgarhi"),
                    ("so", "Somali"),
                    ("ms", "Malay"),
                    ("ceb", "Cebuano"),
                ),
                default=0,
            ),
        ),
    ]
Example #6
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('auth', '0009_alter_user_last_name_max_length'),
    ]

    operations = [
        migrations.CreateModel(
            name='User',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('password',
                 models.CharField(max_length=128, verbose_name='password')),
                ('last_login',
                 models.DateTimeField(blank=True,
                                      null=True,
                                      verbose_name='last login')),
                ('is_superuser',
                 models.BooleanField(
                     default=False,
                     help_text=
                     'Designates that this user has all permissions without explicitly assigning them.',
                     verbose_name='superuser status')),
                ('username',
                 models.CharField(
                     error_messages={
                         'unique': 'A user with that username already exists.'
                     },
                     help_text=
                     'Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.',
                     max_length=150,
                     unique=True,
                     validators=[
                         django.contrib.auth.validators.
                         UnicodeUsernameValidator()
                     ],
                     verbose_name='username')),
                ('first_name',
                 models.CharField(blank=True,
                                  max_length=30,
                                  verbose_name='first name')),
                ('last_name',
                 models.CharField(blank=True,
                                  max_length=150,
                                  verbose_name='last name')),
                ('email',
                 models.EmailField(blank=True,
                                   max_length=254,
                                   verbose_name='email address')),
                ('is_staff',
                 models.BooleanField(
                     default=False,
                     help_text=
                     'Designates whether the user can log into this admin site.',
                     verbose_name='staff status')),
                ('is_active',
                 models.BooleanField(
                     default=True,
                     help_text=
                     'Designates whether this user should be treated as active. Unselect this instead of deleting accounts.',
                     verbose_name='active')),
                ('date_joined',
                 models.DateTimeField(default=django.utils.timezone.now,
                                      verbose_name='date joined')),
                ('account_number',
                 models.CharField(max_length=64,
                                  verbose_name='Account Number')),
                ('phone_number',
                 models.CharField(blank=True,
                                  max_length=32,
                                  verbose_name='Phone Number')),
                ('automatic_user',
                 models.BooleanField(default=False,
                                     verbose_name='Automatically Created')),
                ('notification_preference',
                 models.CharField(choices=[('S', 'sms'), ('E', 'email')],
                                  default='S',
                                  max_length=1,
                                  verbose_name='Notification Preference')),
                ('groups',
                 models.ManyToManyField(
                     blank=True,
                     help_text=
                     'The groups this user belongs to. A user will get all permissions granted to each of their groups.',
                     related_name='user_set',
                     related_query_name='user',
                     to='auth.Group',
                     verbose_name='groups')),
                ('user_permissions',
                 models.ManyToManyField(
                     blank=True,
                     help_text='Specific permissions for this user.',
                     related_name='user_set',
                     related_query_name='user',
                     to='auth.Permission',
                     verbose_name='user permissions')),
            ],
            managers=[
                ('objects', django.contrib.auth.models.UserManager()),
            ],
        ),
        migrations.CreateModel(
            name='Clerk',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('salary',
                 models.PositiveIntegerField(default=0,
                                             verbose_name='Salary')),
                ('is_employee',
                 models.BooleanField(default=True,
                                     verbose_name='is Employee')),
                ('user',
                 models.OneToOneField(
                     on_delete=django.db.models.deletion.CASCADE,
                     to=settings.AUTH_USER_MODEL,
                     verbose_name='User')),
            ],
        ),
        migrations.CreateModel(
            name='Company',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('user',
                 models.OneToOneField(
                     on_delete=django.db.models.deletion.CASCADE,
                     to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='PaymentGroup',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=255,
                                          verbose_name='Name')),
            ],
        ),
        migrations.CreateModel(
            name='PaymentType',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=255,
                                          verbose_name='Name')),
                ('description',
                 models.TextField(blank=True, verbose_name='Description')),
                ('min_amount',
                 dollarial.fields.PriceField(default=1,
                                             null=True,
                                             verbose_name='Minimum Amount')),
                ('max_amount',
                 dollarial.fields.PriceField(default=1000000,
                                             null=True,
                                             verbose_name='Maximum Amount')),
                ('price',
                 dollarial.fields.PriceField(default=0,
                                             null=True,
                                             verbose_name='Fixed Price')),
                ('wage_percentage',
                 models.PositiveSmallIntegerField(
                     default=9,
                     validators=[
                         django.core.validators.MaxValueValidator(100)
                     ],
                     verbose_name='Wage Percentage')),
                ('currency',
                 dollarial.fields.CurrencyField(choices=[('D', '$'),
                                                         ('R', '﷼'),
                                                         ('E', '€')],
                                                default='R',
                                                max_length=1,
                                                verbose_name='Currency')),
                ('fixed_price',
                 models.BooleanField(default=True,
                                     verbose_name='Fixed Price')),
                ('is_active',
                 models.BooleanField(default=True, verbose_name='Active')),
                ('required_fields',
                 bitfield.models.BitField(('general_info', 'personal_info',
                                           'exam_info', 'university_info'),
                                          default=None)),
                ('transaction_group',
                 models.ForeignKey(blank=True,
                                   null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   to='dollarial.PaymentGroup',
                                   verbose_name='Group')),
            ],
        ),
        migrations.CreateModel(
            name='Wallet',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('credit',
                 dollarial.fields.PriceField(default=0,
                                             verbose_name='Credit')),
                ('currency',
                 dollarial.fields.CurrencyField(choices=[('D', '$'),
                                                         ('R', '﷼'),
                                                         ('E', '€')],
                                                default='R',
                                                max_length=1,
                                                verbose_name='Currency')),
                ('user',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL,
                                   verbose_name='User')),
            ],
        ),
        migrations.AlterUniqueTogether(
            name='wallet',
            unique_together={('user', 'currency')},
        ),
        migrations.AlterUniqueTogether(
            name='user',
            unique_together={('automatic_user', 'account_number')},
        ),
    ]
class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Dish',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200)),
                ('is_main', models.BooleanField(default=False)),
                ('eating_time', bitfield.models.BitField((('breakfast', 'Breakfast'), ('lunch', 'Lunch'), ('after_lunch', 'After lunch'), ('dinner', 'Dinner')), default=None)),
                ('serve_type', bitfield.models.BitField((('garnier', 'Garnier'), ('desert', 'Desert'), ('bad', 'BAD')), default=None)),
                ('proteinsNumber', models.IntegerField(default=0)),
                ('lipidsNumber', models.IntegerField(default=0)),
                ('energyValue', models.IntegerField(default=0)),
                ('cost', models.DecimalField(decimal_places=4, default=0, max_digits=100)),
            ],
            options={
                'verbose_name': 'Dish',
                'verbose_name_plural': 'Dishes',
            },
        ),
        migrations.CreateModel(
            name='FoodCategory',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200)),
            ],
            options={
                'verbose_name': 'Food category',
                'verbose_name_plural': 'Food categories',
            },
        ),
        migrations.CreateModel(
            name='FoodType',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200)),
            ],
        ),
        migrations.CreateModel(
            name='Product',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200)),
                ('proteinsNumber', models.IntegerField(default=0)),
                ('lipidsNumber', models.IntegerField(default=0)),
                ('energyValue', models.IntegerField(default=0)),
                ('cost', models.DecimalField(decimal_places=4, default=0, max_digits=100)),
            ],
        ),
        migrations.AddField(
            model_name='foodcategory',
            name='food_type',
            field=models.ManyToManyField(to='health_calc.FoodType'),
        ),
        migrations.AddField(
            model_name='dish',
            name='food_category',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='health_calc.FoodCategory'),
        ),
        migrations.AddField(
            model_name='dish',
            name='food_type',
            field=models.ManyToManyField(to='health_calc.FoodType'),
        ),
        migrations.AddField(
            model_name='dish',
            name='products',
            field=models.ManyToManyField(to='health_calc.Product'),
        ),
    ]
Example #8
0
class Migration(migrations.Migration):

    dependencies = [
        ("zerver", "0066_realm_inline_url_embed_preview"),
    ]

    operations = [
        migrations.CreateModel(
            name="ArchivedAttachment",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("file_name", models.TextField(db_index=True)),
                ("path_id", models.TextField(db_index=True)),
                ("is_realm_public", models.BooleanField(default=False)),
                (
                    "create_time",
                    models.DateTimeField(db_index=True,
                                         default=django.utils.timezone.now),
                ),
                ("size", models.IntegerField(null=True)),
                (
                    "archive_timestamp",
                    models.DateTimeField(db_index=True,
                                         default=django.utils.timezone.now),
                ),
            ],
            options={
                "abstract": False,
            },
            bases=(models.Model, ),
        ),
        migrations.CreateModel(
            name="ArchivedMessage",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("subject", models.CharField(db_index=True, max_length=60)),
                ("content", models.TextField()),
                ("rendered_content", models.TextField(null=True)),
                ("rendered_content_version", models.IntegerField(null=True)),
                ("pub_date",
                 models.DateTimeField(db_index=True,
                                      verbose_name="date published")),
                ("last_edit_time", models.DateTimeField(null=True)),
                ("edit_history", models.TextField(null=True)),
                ("has_attachment",
                 models.BooleanField(db_index=True, default=False)),
                ("has_image", models.BooleanField(db_index=True,
                                                  default=False)),
                ("has_link", models.BooleanField(db_index=True,
                                                 default=False)),
                (
                    "archive_timestamp",
                    models.DateTimeField(db_index=True,
                                         default=django.utils.timezone.now),
                ),
                (
                    "recipient",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="zerver.Recipient"),
                ),
                (
                    "sender",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to=settings.AUTH_USER_MODEL),
                ),
                (
                    "sending_client",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="zerver.Client"),
                ),
            ],
            options={
                "abstract": False,
            },
            bases=(models.Model, ),
        ),
        migrations.CreateModel(
            name="ArchivedUserMessage",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                (
                    "flags",
                    bitfield.models.BitField(
                        [
                            "read",
                            "starred",
                            "collapsed",
                            "mentioned",
                            "wildcard_mentioned",
                            "summarize_in_home",
                            "summarize_in_stream",
                            "force_expand",
                            "force_collapse",
                            "has_alert_word",
                            "historical",
                            "is_me_message",
                        ],
                        default=0,
                    ),
                ),
                (
                    "archive_timestamp",
                    models.DateTimeField(db_index=True,
                                         default=django.utils.timezone.now),
                ),
                (
                    "message",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="zerver.ArchivedMessage"),
                ),
                (
                    "user_profile",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to=settings.AUTH_USER_MODEL),
                ),
            ],
            options={
                "abstract": False,
            },
            bases=(models.Model, ),
        ),
        migrations.AddField(
            model_name="archivedattachment",
            name="messages",
            field=models.ManyToManyField(to="zerver.ArchivedMessage"),
        ),
        migrations.AddField(
            model_name="archivedattachment",
            name="owner",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddField(
            model_name="archivedattachment",
            name="realm",
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to="zerver.Realm",
            ),
        ),
        migrations.AlterUniqueTogether(
            name="archivedusermessage",
            unique_together={("user_profile", "message")},
        ),
    ]
Example #9
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Block',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200, unique=True)),
                ('release_date', models.DateField(blank=True, null=True)),
            ],
        ),
        migrations.CreateModel(
            name='Card',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('scryfall_oracle_id', models.CharField(max_length=36, unique=True)),
                ('name', models.CharField(max_length=200)),
                ('converted_mana_cost', models.FloatField()),
                ('layout', models.CharField(max_length=50)),
                ('is_reserved', models.BooleanField(default=False)),
                ('edh_rec_rank', models.IntegerField(blank=True, null=True)),
                ('is_token', models.BooleanField(default=False)),
                ('colour_identity', bitfield.models.BitField((('w', 'White'), ('u', 'Blue'), ('b', 'Black'), ('r', 'Red'), ('g', 'Green')), default=None)),
                ('colour_identity_count', models.IntegerField()),
            ],
        ),
        migrations.CreateModel(
            name='CardFace',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('side', models.CharField(blank=True, max_length=1, null=True)),
                ('name', models.CharField(max_length=200)),
                ('mana_cost', models.CharField(blank=True, max_length=50, null=True)),
                ('converted_mana_cost', models.FloatField()),
                ('colour', bitfield.models.BitField((('w', 'White'), ('u', 'Blue'), ('b', 'Black'), ('r', 'Red'), ('g', 'Green')), default=None)),
                ('colour_indicator', bitfield.models.BitField((('w', 'White'), ('u', 'Blue'), ('b', 'Black'), ('r', 'Red'), ('g', 'Green')), default=None)),
                ('colour_count', models.IntegerField()),
                ('colour_weight', models.IntegerField()),
                ('colour_sort_key', models.IntegerField()),
                ('power', models.CharField(blank=True, max_length=20, null=True)),
                ('num_power', models.FloatField(default=0)),
                ('toughness', models.CharField(blank=True, max_length=20, null=True)),
                ('num_toughness', models.FloatField(default=0)),
                ('loyalty', models.CharField(blank=True, max_length=20, null=True)),
                ('num_loyalty', models.FloatField(default=0)),
                ('type_line', models.CharField(blank=True, max_length=200, null=True)),
                ('rules_text', models.CharField(blank=True, max_length=1000, null=True)),
                ('hand_modifier', models.CharField(blank=True, max_length=10, null=True)),
                ('num_hand_modifier', models.IntegerField(default=0)),
                ('life_modifier', models.CharField(blank=True, max_length=10, null=True)),
                ('num_life_modifier', models.IntegerField(default=0)),
                ('card', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='faces', to='cards.card')),
            ],
            options={
                'ordering': ('side',),
            },
        ),
        migrations.CreateModel(
            name='CardLocalisation',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('card_name', models.CharField(max_length=200)),
                ('multiverse_id', models.IntegerField(blank=True, null=True)),
            ],
        ),
        migrations.CreateModel(
            name='CardPrice',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('date', models.DateField()),
                ('paper_value', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True)),
                ('paper_foil_value', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True)),
                ('mtgo_value', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True)),
                ('mtgo_foil_value', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True)),
            ],
        ),
        migrations.CreateModel(
            name='CardSubtype',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=50, unique=True)),
                ('automatically_created', models.BooleanField(default=False)),
            ],
        ),
        migrations.CreateModel(
            name='CardSupertype',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=50, unique=True)),
                ('automatically_created', models.BooleanField(default=False)),
            ],
        ),
        migrations.CreateModel(
            name='CardType',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=50, unique=True)),
                ('automatically_created', models.BooleanField(default=False)),
            ],
        ),
        migrations.CreateModel(
            name='Colour',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('symbol', models.CharField(max_length=1, unique=True)),
                ('name', models.CharField(max_length=15, unique=True)),
                ('display_order', models.IntegerField(unique=True)),
                ('bit_value', models.IntegerField(unique=True)),
                ('chart_colour', models.CharField(max_length=20)),
            ],
        ),
        migrations.CreateModel(
            name='Deck',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('date_created', models.DateField()),
                ('last_modified', models.DateField(auto_now=True)),
                ('name', models.CharField(max_length=200)),
                ('subtitle', models.CharField(blank=True, max_length=200, null=True)),
                ('description', models.TextField(blank=True, null=True)),
                ('format', models.CharField(choices=[('standard', 'Standard'), ('legacy', 'Legacy'), ('prerelease', 'Pre-release'), ('mtgo', 'MTGO'), ('unformat', 'Unformat'), ('unknown', 'Unknown'), ('heirloom', 'Heirloom'), ('vintage', 'Vintage'), ('edh', 'Commander / EDH'), ('archenemy', 'Archenemy'), ('planechase', 'Planechase'), ('vanguard', 'Vanguard'), ('modern', 'Modern'), ('pauper', 'Pauper'), ('noble', 'Noble'), ('casual', 'Casual'), ('hero', 'Hero'), ('quest_magic_rpg', 'Quest Magic RPGs'), ('quest_magic', 'Quest Magic'), ('block_constructed', 'Block Constructed'), ('limited', 'Limited'), ('duel_commander', 'Duel Commander'), ('tiny_leaders', 'Tiny Leaders'), ('highlander', 'Highlander'), ('magic_duels', 'Magic Duels'), ('penny_dreadful', 'Penny Dreadful'), ('frontier', 'Frontier'), ('leviathan', 'Leviathan'), ('1v1_commander', '1v1 Commander'), ('pauper_edh', 'Pauper EDH'), ('canadian_highlander', 'Canadian Highlander'), ('brawl', 'Brawl'), ('arena', 'Arena'), ('oathbreaker', 'Oathbreaker')], max_length=50)),
                ('is_prototype', models.BooleanField(default=False)),
                ('is_private', models.BooleanField(default=False)),
                ('exclude_colours', models.ManyToManyField(blank=True, related_name='exclude_from_decks', to='cards.Colour')),
                ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='decks', to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='Format',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100, unique=True)),
                ('code', models.CharField(max_length=100, unique=True)),
            ],
        ),
        migrations.CreateModel(
            name='FrameEffect',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('code', models.CharField(max_length=50)),
                ('name', models.CharField(max_length=100)),
            ],
        ),
        migrations.CreateModel(
            name='Language',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=50, unique=True)),
                ('code', models.CharField(blank=True, max_length=10, null=True)),
            ],
        ),
        migrations.CreateModel(
            name='Rarity',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('symbol', models.CharField(max_length=5, unique=True)),
                ('name', models.CharField(max_length=30, unique=True)),
                ('display_order', models.IntegerField(unique=True)),
            ],
        ),
        migrations.CreateModel(
            name='UserProps',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('unused_cards_seed', models.IntegerField(default=0)),
                ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='UserCardChange',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('date', models.DateTimeField()),
                ('difference', models.IntegerField()),
                ('card_localisation', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='user_changes', to='cards.cardlocalisation')),
                ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='card_changes', to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='Set',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('code', models.CharField(max_length=10, unique=True)),
                ('release_date', models.DateField(blank=True, null=True)),
                ('name', models.CharField(max_length=200, unique=True)),
                ('type', models.CharField(blank=True, max_length=50, null=True)),
                ('total_set_size', models.IntegerField()),
                ('base_set_size', models.IntegerField(default=0)),
                ('keyrune_code', models.CharField(max_length=50)),
                ('is_foreign_only', models.BooleanField(default=False)),
                ('is_foil_only', models.BooleanField(default=False)),
                ('is_online_only', models.BooleanField(default=False)),
                ('is_partial_preview', models.BooleanField(default=False)),
                ('magic_card_market_name', models.CharField(blank=True, max_length=200, null=True)),
                ('magic_card_market_id', models.IntegerField(blank=True, null=True)),
                ('mtgo_code', models.CharField(blank=True, max_length=10, null=True)),
                ('tcg_player_group_id', models.IntegerField(blank=True, null=True)),
                ('block', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='sets', to='cards.block')),
                ('parent_set', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='child_sets', to='cards.set')),
            ],
        ),
        migrations.CreateModel(
            name='DeckCard',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('count', models.IntegerField()),
                ('board', models.CharField(choices=[('main', 'Main'), ('side', 'Side'), ('maybe', 'Maybe'), ('acquire', 'Acquire')], default='main', max_length=20)),
                ('is_commander', models.BooleanField(default=False)),
                ('card', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='deck_cards', to='cards.card')),
                ('deck', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='cards', to='cards.deck')),
            ],
            options={
                'ordering': ['card__converted_mana_cost', 'card__name'],
            },
        ),
        migrations.CreateModel(
            name='CardTag',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200)),
                ('cards', models.ManyToManyField(related_name='tags', to='cards.Card')),
                ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='card_tags', to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='CardPrinting',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('scryfall_id', models.CharField(max_length=36, unique=True)),
                ('scryfall_illustration_id', models.CharField(blank=True, max_length=36, null=True)),
                ('number', models.CharField(blank=True, max_length=10, null=True)),
                ('numerical_number', models.IntegerField(blank=True, null=True)),
                ('border_colour', models.CharField(blank=True, max_length=10, null=True)),
                ('frame_version', models.CharField(blank=True, max_length=50, null=True)),
                ('duel_deck_side', models.CharField(blank=True, max_length=1, null=True)),
                ('is_starter', models.BooleanField()),
                ('is_timeshifted', models.BooleanField()),
                ('has_foil', models.BooleanField(default=True)),
                ('has_non_foil', models.BooleanField(default=True)),
                ('is_alternative', models.BooleanField(default=False)),
                ('is_arena', models.BooleanField(default=False)),
                ('is_mtgo', models.BooleanField(default=False)),
                ('is_online_only', models.BooleanField(default=False)),
                ('is_paper', models.BooleanField(default=True)),
                ('is_textless', models.BooleanField(default=False)),
                ('is_full_art', models.BooleanField(default=False)),
                ('is_oversized', models.BooleanField(default=False)),
                ('is_reprint', models.BooleanField(default=False)),
                ('is_promo', models.BooleanField(default=False)),
                ('is_story_spotlight', models.BooleanField(default=False)),
                ('magic_card_market_id', models.IntegerField(blank=True, null=True)),
                ('magic_card_market_meta_id', models.IntegerField(blank=True, null=True)),
                ('mtg_arena_id', models.IntegerField(blank=True, null=True)),
                ('mtgo_id', models.IntegerField(blank=True, null=True)),
                ('mtgo_foil_id', models.IntegerField(blank=True, null=True)),
                ('mtg_stocks_id', models.IntegerField(blank=True, null=True)),
                ('tcg_player_product_id', models.IntegerField(blank=True, null=True)),
                ('card', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='printings', to='cards.card')),
                ('latest_price', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='latest_printing', to='cards.cardprice')),
                ('rarity', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='printings', to='cards.rarity')),
                ('set', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='card_printings', to='cards.set')),
            ],
            options={
                'ordering': ['set__release_date', 'set__name'],
            },
        ),
        migrations.AddField(
            model_name='cardprice',
            name='card_printing',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='prices', to='cards.cardprinting'),
        ),
        migrations.AddField(
            model_name='cardlocalisation',
            name='card_printing',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='localisations', to='cards.cardprinting'),
        ),
        migrations.AddField(
            model_name='cardlocalisation',
            name='language',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='cards', to='cards.language'),
        ),
        migrations.CreateModel(
            name='CardImage',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('downloaded', models.BooleanField()),
                ('printed_language', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='image', to='cards.cardlocalisation')),
            ],
        ),
        migrations.CreateModel(
            name='CardFacePrinting',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('uuid', models.CharField(max_length=40, unique=True)),
                ('flavour_text', models.CharField(blank=True, max_length=500, null=True)),
                ('artist', models.CharField(blank=True, max_length=100, null=True)),
                ('original_text', models.CharField(blank=True, max_length=1000, null=True)),
                ('original_type', models.CharField(blank=True, max_length=200, null=True)),
                ('watermark', models.CharField(blank=True, max_length=100, null=True)),
                ('card_face', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='face_printings', to='cards.cardface')),
                ('card_printing', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='face_printings', to='cards.cardprinting')),
                ('frame_effects', models.ManyToManyField(related_name='face_printings', to='cards.FrameEffect')),
            ],
            options={
                'unique_together': {('card_face', 'card_printing')},
            },
        ),
        migrations.AddField(
            model_name='cardface',
            name='subtypes',
            field=models.ManyToManyField(blank=True, related_name='card_faces', to='cards.CardSubtype'),
        ),
        migrations.AddField(
            model_name='cardface',
            name='supertypes',
            field=models.ManyToManyField(blank=True, related_name='card_faces', to='cards.CardSupertype'),
        ),
        migrations.AddField(
            model_name='cardface',
            name='types',
            field=models.ManyToManyField(related_name='card_faces', to='cards.CardType'),
        ),
        migrations.CreateModel(
            name='UserOwnedCard',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('count', models.PositiveIntegerField()),
                ('card_localisation', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='ownerships', to='cards.cardlocalisation')),
                ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='owned_cards', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'unique_together': {('card_localisation', 'owner')},
            },
        ),
        migrations.CreateModel(
            name='CardRuling',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('date', models.DateField()),
                ('text', models.CharField(max_length=4000)),
                ('card', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='rulings', to='cards.card')),
            ],
            options={
                'unique_together': {('date', 'text', 'card')},
            },
        ),
        migrations.AlterUniqueTogether(
            name='cardprice',
            unique_together={('date', 'card_printing')},
        ),
        migrations.AlterUniqueTogether(
            name='cardlocalisation',
            unique_together={('language', 'card_printing')},
        ),
        migrations.CreateModel(
            name='CardLegality',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('restriction', models.CharField(choices=[('Legal', 'Legal'), ('Banned', 'Banned'), ('Restricted', 'Restricted')], max_length=50)),
                ('card', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='legalities', to='cards.card')),
                ('format', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='card_legalities', to='cards.format')),
            ],
            options={
                'verbose_name_plural': 'card legalities',
                'unique_together': {('card', 'format', 'restriction')},
            },
        ),
        migrations.CreateModel(
            name='CardFaceLocalisation',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('face_name', models.CharField(max_length=200)),
                ('flavour_text', models.CharField(blank=True, max_length=500, null=True)),
                ('type', models.CharField(blank=True, max_length=200, null=True)),
                ('text', models.CharField(blank=True, max_length=1000, null=True)),
                ('card_printing_face', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='localised_faces', to='cards.cardfaceprinting')),
                ('localisation', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='localised_faces', to='cards.cardlocalisation')),
            ],
            options={
                'unique_together': {('card_printing_face', 'localisation')},
            },
        ),
        migrations.AlterUniqueTogether(
            name='cardface',
            unique_together={('card', 'side')},
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('games', '0023_auto_20171104_2246'),
    ]

    operations = [
        migrations.AlterField(
            model_name='company',
            name='logo',
            field=models.ImageField(blank=True, upload_to='companies/logos'),
        ),
        migrations.AlterField(
            model_name='featured',
            name='image',
            field=models.ImageField(upload_to='featured'),
        ),
        migrations.AlterField(
            model_name='game',
            name='flags',
            field=bitfield.models.BitField(
                (('fully_libre', 'Fully libre'),
                 ('open_engine', 'Open engine only'), ('free', 'Free'),
                 ('freetoplay', 'Free-to-play'), ('pwyw', 'Pay what you want'),
                 ('demo', 'Has a demo'),
                 ('protected', 'Installer modification is restricted')),
                default=None),
        ),
        migrations.AlterField(
            model_name='game',
            name='icon',
            field=models.ImageField(blank=True, upload_to='games/icons'),
        ),
        migrations.AlterField(
            model_name='game',
            name='is_public',
            field=models.BooleanField(default=False, verbose_name='Published'),
        ),
        migrations.AlterField(
            model_name='game',
            name='title_logo',
            field=models.ImageField(blank=True, upload_to='games/banners'),
        ),
        migrations.AlterField(
            model_name='gamelink',
            name='website',
            field=models.CharField(blank=True,
                                   choices=[('wikipedia', 'Wikipedia'),
                                            ('pcgamingwiki', 'PCGamingWiki'),
                                            ('mobygames', 'MobyGames'),
                                            ('winehq', 'WineHQ AppDB'),
                                            ('lemonamiga', 'Lemon Amiga'),
                                            ('github', 'Github')],
                                   max_length=32),
        ),
        migrations.AlterField(
            model_name='installer',
            name='rating',
            field=models.CharField(
                blank=True,
                choices=
                [('platinum', 'Platinum: installs and runs flawlessly'),
                 ('gold',
                  'Gold: works flawlessly with some minor tweaking'),
                 ('silver',
                  'Silver: works excellently for "normal" use but some features may be broken'
                  ),
                 ('bronze',
                  'Bronze: works: but has some issues: even for normal use'),
                 ('garbage', 'Garbage: game is not playable')],
                max_length=24),
        ),
        migrations.AlterField(
            model_name='screenshot',
            name='image',
            field=models.ImageField(upload_to='games/screenshots'),
        ),
    ]
Example #11
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('auth', '0011_update_proxy_permissions'),
    ]

    operations = [
        migrations.CreateModel(
            name='Cargo',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('дата создания', models.DateTimeField(auto_now_add=True)),
                ('дата изменения', models.DateTimeField(auto_now=True)),
                ('plomb_id', models.CharField(default='', max_length=255, unique=True)),
                ('barcode', models.CharField(default='', max_length=255, unique=True)),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='Flight',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('дата создания', models.DateTimeField(auto_now_add=True)),
                ('дата изменения', models.DateTimeField(auto_now=True)),
                ('number', models.CharField(max_length=255)),
                ('description', models.TextField()),
            ],
            options={
                'verbose_name': 'Рейс',
                'verbose_name_plural': 'Рейсы',
            },
        ),
        migrations.CreateModel(
            name='SystemUser',
            fields=[
                ('user_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL)),
                ('flags', bitfield.models.BitField((('board_conductor', '0'), ('deliveryman', '1')), default=None)),
            ],
            options={
                'verbose_name': 'user',
                'verbose_name_plural': 'users',
                'abstract': False,
            },
            bases=('auth.user',),
            managers=[
                ('objects', django.contrib.auth.models.UserManager()),
            ],
        ),
        migrations.CreateModel(
            name='ServiceClass',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('дата создания', models.DateTimeField(auto_now_add=True)),
                ('дата изменения', models.DateTimeField(auto_now=True)),
                ('description', models.CharField(max_length=255)),
                ('fligth', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='servise_classes', to='ahck.Flight')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='Packet',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('дата создания', models.DateTimeField(auto_now_add=True)),
                ('дата изменения', models.DateTimeField(auto_now=True)),
                ('barcode', models.CharField(default='', max_length=255, unique=True)),
                ('description_in_json', models.TextField(verbose_name='json packet description')),
                ('cargo', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='packets', to='ahck.Cargo')),
            ],
            options={
                'verbose_name': 'индивидуальный комплект',
                'verbose_name_plural': 'индивидуальные комплекты',
            },
        ),
        migrations.AddField(
            model_name='cargo',
            name='serviceclass',
            field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='cargos', to='ahck.ServiceClass'),
        ),
    ]
Example #12
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ("auth", "0011_update_proxy_permissions"),
        ("groupapp", "0001_initial"),
    ]

    operations = [
        migrations.CreateModel(
            name="BaseAccount",
            fields=[
                ("id",
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name="ID")),
                ("password",
                 models.CharField(max_length=128, verbose_name="password")),
                ("last_login",
                 models.DateTimeField(blank=True,
                                      null=True,
                                      verbose_name="last login")),
                (
                    "is_superuser",
                    models.BooleanField(
                        default=False,
                        help_text=
                        "Designates that this user has all permissions without explicitly assigning them.",
                        verbose_name="superuser status",
                    ),
                ),
                (
                    "username",
                    models.CharField(
                        max_length=127,
                        unique=True,
                        validators=[
                            django.core.validators.RegexValidator(
                                "^\\w{1,127}$")
                        ],
                        verbose_name="profile username",
                    ),
                ),
                ("fio", models.CharField(max_length=256, verbose_name="fio")),
                ("birth_day",
                 models.DateField(auto_now_add=True,
                                  verbose_name="birth day")),
                ("is_active",
                 models.BooleanField(default=True, verbose_name="Is active")),
                ("is_admin", models.BooleanField(default=False)),
                (
                    "telephone",
                    models.CharField(
                        blank=True,
                        null=True,
                        default=None,
                        max_length=16,
                        validators=[
                            django.core.validators.RegexValidator(
                                "^(\\+[7893]\\d{10,11})?$")
                        ],
                        verbose_name="Telephone",
                    ),
                ),
                (
                    "groups",
                    models.ManyToManyField(
                        blank=True,
                        help_text=
                        ("The groups this user belongs to. A user will get all permissions "
                         "granted to each of their groups."),
                        related_name="user_set",
                        related_query_name="user",
                        to="auth.Group",
                        verbose_name="groups",
                    ),
                ),
                (
                    "user_permissions",
                    models.ManyToManyField(
                        blank=True,
                        help_text="Specific permissions for this user.",
                        related_name="user_set",
                        related_query_name="user",
                        to="auth.Permission",
                        verbose_name="user permissions",
                    ),
                ),
            ],
            options={
                "db_table": "base_accounts",
                "ordering": ("username", ),
            },
        ),
        migrations.CreateModel(
            name="UserProfile",
            fields=[
                (
                    "baseaccount_ptr",
                    models.OneToOneField(
                        auto_created=True,
                        on_delete=django.db.models.deletion.CASCADE,
                        parent_link=True,
                        primary_key=True,
                        serialize=False,
                        to="profiles.BaseAccount",
                    ),
                ),
                (
                    "avatar",
                    models.ImageField(blank=True,
                                      default=None,
                                      null=True,
                                      upload_to="user/avatar",
                                      verbose_name="Avatar"),
                ),
                ("email",
                 models.EmailField(blank=True, default="", max_length=254)),
                (
                    "flags",
                    bitfield.models.BitField(
                        (
                            ("notify_task", "Notification about tasks"),
                            ("notify_msg", "Notification about messages"),
                            ("notify_mon", "Notification from monitoring"),
                        ),
                        default=0,
                        verbose_name="Settings flags",
                    ),
                ),
                (
                    "responsibility_groups",
                    models.ManyToManyField(
                        blank=True,
                        to="groupapp.Group",
                        verbose_name="Responsibility groups"),
                ),
            ],
            options={
                "verbose_name": "Staff account profile",
                "verbose_name_plural": "Staff account profiles",
                "ordering": ("fio", ),
            },
            bases=("profiles.baseaccount", ),
        ),
        migrations.CreateModel(
            name="UserProfileLog",
            fields=[
                ("id",
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name="ID")),
                (
                    "do_type",
                    models.PositiveSmallIntegerField(
                        choices=[
                            (0, "Undefined"),
                            (1, "Create user"),
                            (2, "Delete user"),
                            (3, "Create device"),
                            (4, "Delete device"),
                            (5, "Create NAS"),
                            (6, "Delete NAS"),
                            (7, "Create service"),
                            (8, "Delete service"),
                        ],
                        default=0,
                        verbose_name="Action type",
                    ),
                ),
                (
                    "additional_text",
                    models.CharField(blank=True,
                                     max_length=512,
                                     null=True,
                                     verbose_name="Additional info"),
                ),
                ("action_date",
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name="Action date")),
                (
                    "account",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="profiles.UserProfile",
                        verbose_name="Author"),
                ),
            ],
            options={
                "verbose_name": "User profile log",
                "verbose_name_plural": "User profile logs",
                "ordering": ("-action_date", ),
            },
        ),
    ]
Example #13
0
class Migration(migrations.Migration):

    dependencies = [
        ('coredata', '0019_switch_to_utf8mb4_columns'),
    ]

    operations = [
        migrations.AlterField(
            model_name='combinedoffering',
            name='campus',
            field=models.CharField(choices=[
                ('BRNBY', 'Burnaby Campus'), ('SURRY', 'Surrey Campus'),
                ('VANCR', 'Harbour Centre'), ('OFFST', 'Off-campus'),
                ('GNWC', 'Great Northern Way Campus'),
                ('METRO', 'Other Locations in Vancouver')
            ],
                                   max_length=5),
        ),
        migrations.AlterField(
            model_name='combinedoffering',
            name='component',
            field=models.CharField(choices=[('LEC', 'Lecture'), ('LAB', 'Lab'),
                                            ('TUT', 'Tutorial'),
                                            ('SEM', 'Seminar'),
                                            ('SEC', 'Section'),
                                            ('PRA', 'Practicum'),
                                            ('IND', 'Individual Work'),
                                            ('INS', 'INS'),
                                            ('WKS', 'Workshop'),
                                            ('FLD', 'Field School'),
                                            ('STD', 'Studio'), ('OLC', 'OLC'),
                                            ('RQL', 'RQL'), ('RSC', 'RSC'),
                                            ('STL', 'STL'), ('CNV', 'CNV'),
                                            ('OPL', 'Open Lab'),
                                            ('EXM', 'Exam'),
                                            ('CAN', 'Cancelled')],
                                   max_length=3),
        ),
        migrations.AlterField(
            model_name='combinedoffering',
            name='config',
            field=courselib.json_fields.JSONField(default=dict),
        ),
        migrations.AlterField(
            model_name='combinedoffering',
            name='instr_mode',
            field=models.CharField(choices=[('CO', 'Co-Op'),
                                            ('DE', 'Distance Education'),
                                            ('GI', 'Graduate Internship'),
                                            ('P', 'In Person'),
                                            ('PO', 'In Person - Off Campus'),
                                            ('PR', 'Practicum')],
                                   default='P',
                                   max_length=2),
        ),
        migrations.AlterField(
            model_name='combinedoffering',
            name='owner',
            field=models.ForeignKey(
                help_text='Unit that controls this offering',
                null=True,
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Unit'),
        ),
        migrations.AlterField(
            model_name='combinedoffering',
            name='semester',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Semester'),
        ),
        migrations.AlterField(
            model_name='course',
            name='config',
            field=courselib.json_fields.JSONField(default=dict),
        ),
        migrations.AlterField(
            model_name='course',
            name='number',
            field=models.CharField(
                db_index=True,
                help_text='Course number, like "120" or "XX1".',
                max_length=4),
        ),
        migrations.AlterField(
            model_name='course',
            name='slug',
            field=autoslug.fields.AutoSlugField(editable=False,
                                                populate_from='autoslug',
                                                unique=True),
        ),
        migrations.AlterField(
            model_name='course',
            name='subject',
            field=models.CharField(
                db_index=True,
                help_text='Subject code, like "CMPT" or "FAN".',
                max_length=8),
        ),
        migrations.AlterField(
            model_name='course',
            name='title',
            field=models.CharField(help_text='The course title.',
                                   max_length=30),
        ),
        migrations.AlterField(
            model_name='courseoffering',
            name='campus',
            field=models.CharField(choices=[
                ('BRNBY', 'Burnaby Campus'), ('SURRY', 'Surrey Campus'),
                ('VANCR', 'Harbour Centre'), ('OFFST', 'Off-campus'),
                ('GNWC', 'Great Northern Way Campus'),
                ('METRO', 'Other Locations in Vancouver')
            ],
                                   db_index=True,
                                   max_length=5),
        ),
        migrations.AlterField(
            model_name='courseoffering',
            name='component',
            field=models.CharField(
                choices=[
                    ('LEC', 'Lecture'), ('LAB', 'Lab'), ('TUT', 'Tutorial'),
                    ('SEM', 'Seminar'),
                    ('SEC', 'Section'), ('PRA', 'Practicum'),
                    ('IND', 'Individual Work'), ('INS', 'INS'),
                    ('WKS', 'Workshop'), ('FLD', 'Field School'),
                    ('STD', 'Studio'), ('OLC', 'OLC'), ('RQL', 'RQL'),
                    ('RSC', 'RSC'), ('STL', 'STL'), ('CNV', 'CNV'),
                    ('OPL', 'Open Lab'), ('EXM', 'Exam'), ('CAN', 'Cancelled')
                ],
                db_index=True,
                help_text='Component of the offering, like "LEC" or "LAB"',
                max_length=3),
        ),
        migrations.AlterField(
            model_name='courseoffering',
            name='config',
            field=courselib.json_fields.JSONField(default=dict),
        ),
        migrations.AlterField(
            model_name='courseoffering',
            name='course',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Course'),
        ),
        migrations.AlterField(
            model_name='courseoffering',
            name='flags',
            field=bitfield.models.BitField(
                ['write', 'quant', 'bhum', 'bsci', 'bsoc', 'combined'],
                default=0),
        ),
        migrations.AlterField(
            model_name='courseoffering',
            name='instr_mode',
            field=models.CharField(
                choices=[('CO', 'Co-Op'), ('DE', 'Distance Education'),
                         ('GI', 'Graduate Internship'), ('P', 'In Person'),
                         ('PO', 'In Person - Off Campus'), ('PR', 'Practicum')
                         ],
                db_index=True,
                default='P',
                help_text='The instructional mode of the offering',
                max_length=2),
        ),
        migrations.AlterField(
            model_name='courseoffering',
            name='number',
            field=models.CharField(
                db_index=True,
                help_text='Course number, like "120" or "XX1"',
                max_length=4),
        ),
        migrations.AlterField(
            model_name='courseoffering',
            name='owner',
            field=models.ForeignKey(
                help_text='Unit that controls this offering',
                null=True,
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Unit'),
        ),
        migrations.AlterField(
            model_name='courseoffering',
            name='section',
            field=models.CharField(
                db_index=True,
                help_text='Section should be in the form "C100" or "D100"',
                max_length=4),
        ),
        migrations.AlterField(
            model_name='courseoffering',
            name='semester',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Semester'),
        ),
        migrations.AlterField(
            model_name='courseoffering',
            name='slug',
            field=autoslug.fields.AutoSlugField(editable=False,
                                                populate_from='autoslug',
                                                unique=True),
        ),
        migrations.AlterField(
            model_name='courseoffering',
            name='subject',
            field=models.CharField(
                db_index=True,
                help_text='Subject code, like "CMPT" or "FAN"',
                max_length=8),
        ),
        migrations.AlterField(
            model_name='courseoffering',
            name='title',
            field=models.CharField(db_index=True,
                                   help_text='The course title',
                                   max_length=30),
        ),
        migrations.AlterField(
            model_name='courseoffering',
            name='units',
            field=models.PositiveSmallIntegerField(
                help_text=
                'The number of credits received by (most?) students in the course',
                null=True),
        ),
        migrations.AlterField(
            model_name='enrolmenthistory',
            name='offering',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.CourseOffering'),
        ),
        migrations.AlterField(
            model_name='futureperson',
            name='config',
            field=courselib.json_fields.JSONField(default=dict),
        ),
        migrations.AlterField(
            model_name='holiday',
            name='date',
            field=models.DateField(db_index=True,
                                   help_text='Date of the holiday'),
        ),
        migrations.AlterField(
            model_name='holiday',
            name='description',
            field=models.CharField(
                help_text='Description of holiday, e.g. "Canada Day"',
                max_length=30),
        ),
        migrations.AlterField(
            model_name='holiday',
            name='holiday_type',
            field=models.CharField(
                choices=[('FULL', 'Classes cancelled, offices closed'),
                         ('CLAS', 'Classes cancelled, offices open'),
                         ('OPEN', 'Classes as scheduled')],
                help_text='Type of holiday: how does it affect schedules?',
                max_length=4),
        ),
        migrations.AlterField(
            model_name='holiday',
            name='semester',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Semester'),
        ),
        migrations.AlterField(
            model_name='meetingtime',
            name='end_day',
            field=models.DateField(help_text='Ending day of the meeting'),
        ),
        migrations.AlterField(
            model_name='meetingtime',
            name='end_time',
            field=models.TimeField(help_text='End time of the meeting'),
        ),
        migrations.AlterField(
            model_name='meetingtime',
            name='labtut_section',
            field=models.CharField(
                blank=True,
                help_text=
                'Section should be in the form "C101" or "D103".  None/blank for the non lab/tutorial events.',
                max_length=4,
                null=True),
        ),
        migrations.AlterField(
            model_name='meetingtime',
            name='meeting_type',
            field=models.CharField(choices=[('LEC', 'Lecture'),
                                            ('MIDT', 'Midterm Exam'),
                                            ('EXAM', 'Exam'),
                                            ('LAB', 'Lab/Tutorial')],
                                   default='LEC',
                                   max_length=4),
        ),
        migrations.AlterField(
            model_name='meetingtime',
            name='offering',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                related_name='meeting_time',
                to='coredata.CourseOffering'),
        ),
        migrations.AlterField(
            model_name='meetingtime',
            name='room',
            field=models.CharField(
                help_text='Room (or other location) for the meeting',
                max_length=20),
        ),
        migrations.AlterField(
            model_name='meetingtime',
            name='start_day',
            field=models.DateField(help_text='Starting day of the meeting'),
        ),
        migrations.AlterField(
            model_name='meetingtime',
            name='start_time',
            field=models.TimeField(help_text='Start time of the meeting'),
        ),
        migrations.AlterField(
            model_name='meetingtime',
            name='weekday',
            field=models.PositiveSmallIntegerField(
                choices=[(0, 'Monday'), (1, 'Tuesday'), (2, 'Wednesday'),
                         (3, 'Thursday'), (4, 'Friday'),
                         (5, 'Saturday'), (6, 'Sunday')],
                help_text='Day of week of the meeting'),
        ),
        migrations.AlterField(
            model_name='member',
            name='added_reason',
            field=models.CharField(choices=[('AUTO', 'Automatically added'),
                                            ('TRU', 'TRU/OU Distance Student'),
                                            ('CTA', 'CourSys-Appointed TA'),
                                            ('TAC', 'CourSys-Appointed TA'),
                                            ('TA', 'Additional TA'),
                                            ('TAIN', 'TA added by instructor'),
                                            ('INST', 'Additional Instructor'),
                                            ('UNK', 'Unknown/Other Reason')],
                                   db_index=True,
                                   max_length=4),
        ),
        migrations.AlterField(
            model_name='member',
            name='career',
            field=models.CharField(choices=[('UGRD', 'Undergraduate'),
                                            ('GRAD', 'Graduate'),
                                            ('NONS', 'Non-Student')],
                                   max_length=4),
        ),
        migrations.AlterField(
            model_name='member',
            name='config',
            field=courselib.json_fields.JSONField(default=dict),
        ),
        migrations.AlterField(
            model_name='member',
            name='credits',
            field=models.PositiveSmallIntegerField(
                default=3,
                help_text='Number of credits this course is worth.'),
        ),
        migrations.AlterField(
            model_name='member',
            name='labtut_section',
            field=models.CharField(
                blank=True,
                help_text='Section should be in the form "C101" or "D103".',
                max_length=4,
                null=True),
        ),
        migrations.AlterField(
            model_name='member',
            name='offering',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.CourseOffering'),
        ),
        migrations.AlterField(
            model_name='member',
            name='person',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                related_name='person',
                to='coredata.Person'),
        ),
        migrations.AlterField(
            model_name='member',
            name='role',
            field=models.CharField(choices=[('STUD', 'Student'), ('TA', 'TA'),
                                            ('INST', 'Instructor'),
                                            ('APPR', 'Grade Approver'),
                                            ('DROP', 'Dropped')],
                                   max_length=4),
        ),
        migrations.AlterField(
            model_name='person',
            name='config',
            field=courselib.json_fields.JSONField(default=dict),
        ),
        migrations.AlterField(
            model_name='person',
            name='emplid',
            field=models.PositiveIntegerField(
                db_index=True,
                help_text='Employee ID (i.e. student number)',
                unique=True,
                verbose_name='ID #'),
        ),
        migrations.AlterField(
            model_name='person',
            name='userid',
            field=models.CharField(
                blank=True,
                db_index=True,
                help_text=
                'SFU Unix userid (i.e. part of SFU email address before the "@").',
                max_length=8,
                null=True,
                unique=True,
                verbose_name='User ID'),
        ),
        migrations.AlterField(
            model_name='role',
            name='config',
            field=courselib.json_fields.JSONField(default=dict),
        ),
        migrations.AlterField(
            model_name='role',
            name='person',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Person'),
        ),
        migrations.AlterField(
            model_name='role',
            name='role',
            field=models.CharField(choices=[
                ('ADVS', 'Advisor'), ('FAC', 'Faculty Member'),
                ('SESS', 'Sessional Instructor'), ('COOP', 'Co-op Staff'),
                ('INST', 'Other Instructor'),
                ('SUPV', 'Additional Supervisor'),
                ('DISC', 'Discipline Case Administrator'),
                ('DICC', 'Discipline Case Filer (email CC)'),
                ('ADMN', 'Departmental Administrator'),
                ('TAAD', 'TA Administrator'),
                ('TADM', 'Teaching Administrator'),
                ('GRAD', 'Grad Student Administrator'),
                ('GRPD', 'Graduate Program Director'),
                ('FUND', 'Grad Funding Administrator'),
                ('FDCC', 'Grad Funding Reminder CC'), ('TECH', 'Tech Staff'),
                ('GPA', 'GPA conversion system admin'),
                ('OUTR', 'Outreach Administrator'),
                ('INV', 'Inventory Administrator'), ('FACR', 'Faculty Viewer'),
                ('REPV', 'Report Viewer'), ('FACA', 'Faculty Administrator'),
                ('RELA', 'Relationship Database User'),
                ('SPAC', 'Space Administrator'),
                ('SYSA', 'System Administrator'), ('NONE', 'none')
            ],
                                   max_length=4),
        ),
        migrations.AlterField(
            model_name='role',
            name='unit',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Unit'),
        ),
        migrations.AlterField(
            model_name='roleaccount',
            name='config',
            field=courselib.json_fields.JSONField(default=dict),
        ),
        migrations.AlterField(
            model_name='roleaccount',
            name='type',
            field=models.CharField(
                blank=True,
                choices=[('ADVS', 'Advisor'), ('FAC', 'Faculty Member'),
                         ('SESS', 'Sessional Instructor'),
                         ('COOP', 'Co-op Staff'), ('INST', 'Other Instructor'),
                         ('SUPV', 'Additional Supervisor'),
                         ('DISC', 'Discipline Case Administrator'),
                         ('DICC', 'Discipline Case Filer (email CC)'),
                         ('ADMN', 'Departmental Administrator'),
                         ('TAAD', 'TA Administrator'),
                         ('TADM', 'Teaching Administrator'),
                         ('GRAD', 'Grad Student Administrator'),
                         ('GRPD', 'Graduate Program Director'),
                         ('FUND', 'Grad Funding Administrator'),
                         ('FDCC', 'Grad Funding Reminder CC'),
                         ('TECH', 'Tech Staff'),
                         ('GPA', 'GPA conversion system admin'),
                         ('OUTR', 'Outreach Administrator'),
                         ('INV', 'Inventory Administrator'),
                         ('FACR', 'Faculty Viewer'), ('REPV', 'Report Viewer'),
                         ('FACA', 'Faculty Administrator'),
                         ('RELA', 'Relationship Database User'),
                         ('SPAC', 'Space Administrator'),
                         ('SYSA', 'System Administrator'), ('NONE', 'none')],
                max_length=4,
                null=True),
        ),
        migrations.AlterField(
            model_name='roleaccount',
            name='userid',
            field=models.CharField(
                db_index=True,
                help_text=
                'SFU Unix userid (i.e. part of SFU email address before the "@").',
                max_length=8,
                verbose_name='User ID'),
        ),
        migrations.AlterField(
            model_name='semester',
            name='end',
            field=models.DateField(help_text='Last day of classes.'),
        ),
        migrations.AlterField(
            model_name='semester',
            name='name',
            field=models.CharField(
                db_index=True,
                help_text='Semester name should be in the form "1097".',
                max_length=4,
                unique=True),
        ),
        migrations.AlterField(
            model_name='semester',
            name='start',
            field=models.DateField(help_text='First day of classes.'),
        ),
        migrations.AlterField(
            model_name='semesterweek',
            name='monday',
            field=models.DateField(help_text='Monday of this week.'),
        ),
        migrations.AlterField(
            model_name='semesterweek',
            name='semester',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Semester'),
        ),
        migrations.AlterField(
            model_name='semesterweek',
            name='week',
            field=models.PositiveSmallIntegerField(
                help_text='Week of the semester (typically 1-13)'),
        ),
        migrations.AlterField(
            model_name='unit',
            name='acad_org',
            field=models.CharField(blank=True,
                                   db_index=True,
                                   help_text='ACAD_ORG field from SIMS',
                                   max_length=10,
                                   null=True,
                                   unique=True),
        ),
        migrations.AlterField(
            model_name='unit',
            name='config',
            field=courselib.json_fields.JSONField(default=dict),
        ),
        migrations.AlterField(
            model_name='unit',
            name='label',
            field=models.CharField(db_index=True,
                                   help_text="The unit code, e.g. 'CMPT'.",
                                   max_length=4,
                                   unique=True),
        ),
        migrations.AlterField(
            model_name='unit',
            name='name',
            field=models.CharField(
                help_text=
                "The full name of the unit, e.g. 'School of Computing Science'.",
                max_length=60),
        ),
        migrations.AlterField(
            model_name='unit',
            name='parent',
            field=models.ForeignKey(
                blank=True,
                help_text='Next unit up in the hierarchy.',
                null=True,
                on_delete=django.db.models.deletion.PROTECT,
                to='coredata.Unit'),
        ),
        migrations.AlterField(
            model_name='unit',
            name='slug',
            field=autoslug.fields.AutoSlugField(editable=False,
                                                populate_from='autoslug',
                                                unique=True),
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('zerver', '0066_realm_inline_url_embed_preview'),
    ]

    operations = [
        migrations.CreateModel(
            name='ArchivedAttachment',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('file_name', models.TextField(db_index=True)),
                ('path_id', models.TextField(db_index=True)),
                ('is_realm_public', models.BooleanField(default=False)),
                ('create_time',
                 models.DateTimeField(db_index=True,
                                      default=django.utils.timezone.now)),
                ('size', models.IntegerField(null=True)),
                ('archive_timestamp',
                 models.DateTimeField(db_index=True,
                                      default=django.utils.timezone.now)),
            ],
            options={
                'abstract': False,
            },
            bases=(zerver.lib.str_utils.ModelReprMixin, models.Model),
        ),
        migrations.CreateModel(
            name='ArchivedMessage',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('subject', models.CharField(db_index=True, max_length=60)),
                ('content', models.TextField()),
                ('rendered_content', models.TextField(null=True)),
                ('rendered_content_version', models.IntegerField(null=True)),
                ('pub_date',
                 models.DateTimeField(db_index=True,
                                      verbose_name='date published')),
                ('last_edit_time', models.DateTimeField(null=True)),
                ('edit_history', models.TextField(null=True)),
                ('has_attachment',
                 models.BooleanField(db_index=True, default=False)),
                ('has_image', models.BooleanField(db_index=True,
                                                  default=False)),
                ('has_link', models.BooleanField(db_index=True,
                                                 default=False)),
                ('archive_timestamp',
                 models.DateTimeField(db_index=True,
                                      default=django.utils.timezone.now)),
                ('recipient',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='zerver.Recipient')),
                ('sender',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
                ('sending_client',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='zerver.Client')),
            ],
            options={
                'abstract': False,
            },
            bases=(zerver.lib.str_utils.ModelReprMixin, models.Model),
        ),
        migrations.CreateModel(
            name='ArchivedUserMessage',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('flags',
                 bitfield.models.BitField([
                     'read', 'starred', 'collapsed', 'mentioned',
                     'wildcard_mentioned', 'summarize_in_home',
                     'summarize_in_stream', 'force_expand', 'force_collapse',
                     'has_alert_word', 'historical', 'is_me_message'
                 ],
                                          default=0)),
                ('archive_timestamp',
                 models.DateTimeField(db_index=True,
                                      default=django.utils.timezone.now)),
                ('message',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='zerver.ArchivedMessage')),
                ('user_profile',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'abstract': False,
            },
            bases=(zerver.lib.str_utils.ModelReprMixin, models.Model),
        ),
        migrations.AddField(
            model_name='archivedattachment',
            name='messages',
            field=models.ManyToManyField(to='zerver.ArchivedMessage'),
        ),
        migrations.AddField(
            model_name='archivedattachment',
            name='owner',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddField(
            model_name='archivedattachment',
            name='realm',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to='zerver.Realm'),
        ),
        migrations.AlterUniqueTogether(
            name='archivedusermessage',
            unique_together=set([('user_profile', 'message')]),
        ),
    ]
Example #15
0
class Migration(migrations.Migration):
    initial = True

    dependencies = [
        ('devapp', '0001_initial'),
        ('group_app', '0001_initial'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ('accounts_app', '0001_initial'),
        ('tariff_app', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='Abon',
            fields=[
                ('baseaccount_ptr',
                 models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True,
                                      primary_key=True, serialize=False, to='accounts_app.BaseAccount')),
                ('ballance', models.FloatField(default=0.0)),
                ('ip_address', MyGenericIPAddressField(blank=True, max_length=8, null=True, protocol='ipv4')),
                ('description', models.TextField(blank=True, null=True, verbose_name='Comment')),
                ('house', models.CharField(blank=True, max_length=12, null=True, verbose_name='House')),
                ('is_dynamic_ip', models.BooleanField(default=False)),
                ('markers', bitfield.models.BitField((('icon_donkey', 'Donkey'), ('icon_fire', 'Fire'),
                                                      ('icon_ok', 'Ok'), ('icon_king', 'King'), ('icon_tv', 'TV'),
                                                      ('icon_smile', 'Smile'), ('icon_dollar', 'Dollar'),
                                                      ('icon_service', 'Service'), ('icon_mrk', 'Marker')), default=0)),
            ],
            options={
                'verbose_name': 'Abon',
                'verbose_name_plural': 'Abons',
                'db_table': 'abonent',
                'ordering': ['fio'],
                'permissions': (('can_buy_tariff', 'Buy service perm'), ('can_view_passport', 'Can view passport'),
                                ('can_add_ballance', 'fill account'), ('can_ping', 'Can ping')),
            },
            bases=('accounts_app.baseaccount',),
        ),
        migrations.CreateModel(
            name='AbonLog',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('amount', models.FloatField(default=0.0)),
                ('comment', models.CharField(max_length=128)),
                ('date', models.DateTimeField(auto_now_add=True)),
            ],
            options={
                'db_table': 'abonent_log',
                'ordering': ['-date'],
                'permissions': (('can_view_abonlog', 'Can view subscriber logs'),),
            },
        ),
        migrations.CreateModel(
            name='AbonStreet',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=64)),
                ('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='group_app.Group')),
            ],
            options={
                'verbose_name': 'Street',
                'verbose_name_plural': 'Streets',
                'db_table': 'abon_street',
                'ordering': ['name'],
            },
        ),
        migrations.CreateModel(
            name='AbonTariff',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('time_start', models.DateTimeField(blank=True, default=None, null=True)),
                ('deadline', models.DateTimeField(blank=True, default=None, null=True)),
                ('tariff', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='linkto_tariff',
                                             to='tariff_app.Tariff')),
            ],
            options={
                'verbose_name': 'Abon service',
                'verbose_name_plural': 'Abon services',
                'db_table': 'abonent_tariff',
                'ordering': ['time_start'],
                'permissions': (('can_complete_service', 'finish service perm'),),
            },
        ),
        migrations.CreateModel(
            name='AdditionalTelephone',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('telephone', models.CharField(max_length=16, validators=[
                    django.core.validators.RegexValidator('^\\+[7,8,9,3]\\d{10,11}$')], verbose_name='Telephone')),
                ('owner_name', models.CharField(max_length=127)),
            ],
            options={
                'verbose_name': 'Additional telephone',
                'verbose_name_plural': 'Additional telephones',
                'db_table': 'additional_telephones',
                'ordering': ('owner_name',),
                'permissions': (('can_view_additionaltelephones', 'Can view additional telephones'),),
            },
        ),
        migrations.CreateModel(
            name='AllPayLog',
            fields=[
                ('pay_id', models.CharField(max_length=64, primary_key=True, serialize=False)),
                ('date_action', models.DateTimeField(auto_now_add=True)),
                ('summ', models.FloatField(default=0.0)),
                ('pay_system_name', models.CharField(max_length=16)),
            ],
            options={
                'db_table': 'all_pay_log',
                'ordering': ['-date_action'],
            },
        ),
        migrations.CreateModel(
            name='AllTimePayLog',
            fields=[
                ('pay_id', models.CharField(max_length=36, primary_key=True, serialize=False, unique=True)),
                ('date_add', models.DateTimeField(auto_now_add=True)),
                ('summ', models.FloatField(default=0.0)),
                ('trade_point',
                 models.CharField(blank=True, default=None, max_length=20, null=True, verbose_name='Trade point')),
                ('receipt_num', models.BigIntegerField(default=0, verbose_name='Receipt number')),
            ],
            options={
                'db_table': 'all_time_pay_log',
                'ordering': ['-date_add'],
            },
        ),
        migrations.CreateModel(
            name='ExtraFieldsModel',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(default='no title', max_length=16)),
                ('field_type', models.CharField(
                    choices=[('int', 'Digital field'), ('str', 'Text field'), ('dbl', 'Floating field'),
                             ('ipa', 'Ip Address')], default='str', max_length=3)),
                ('data', models.CharField(blank=True, max_length=64, null=True)),
            ],
            options={
                'db_table': 'abon_extra_fields',
            },
        ),
        migrations.CreateModel(
            name='InvoiceForPayment',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('status', models.BooleanField(default=False)),
                ('amount', models.FloatField(default=0.0)),
                ('comment', models.CharField(max_length=128)),
                ('date_create', models.DateTimeField(auto_now_add=True)),
                ('date_pay', models.DateTimeField(blank=True, null=True)),
            ],
            options={
                'verbose_name': 'Debt',
                'verbose_name_plural': 'Debts',
                'db_table': 'abonent_inv_pay',
                'ordering': ('date_create',),
                'permissions': (('can_view_invoiceforpayment', 'Can view invoice for payment'),),
            },
        ),
        migrations.CreateModel(
            name='PassportInfo',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('series', models.CharField(max_length=4, validators=[
                    django.core.validators.RegexValidator(re.compile('^-?\\d+\\Z', 32), code='invalid',
                                                          message='Enter a valid integer.')])),
                ('number', models.CharField(max_length=6, validators=[
                    django.core.validators.RegexValidator(re.compile('^-?\\d+\\Z', 32), code='invalid',
                                                          message='Enter a valid integer.')])),
                ('distributor', models.CharField(max_length=64)),
                ('date_of_acceptance', models.DateField()),
            ],
            options={
                'verbose_name': 'Passport Info',
                'verbose_name_plural': 'Passport Info',
                'db_table': 'passport_info',
            },
        ),
        migrations.CreateModel(
            name='PeriodicPayForId',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('last_pay', models.DateTimeField(blank=True, null=True, verbose_name='Last pay time')),
                ('next_pay', models.DateTimeField(verbose_name='Next time to pay')),
            ],
            options={
                'db_table': 'periodic_pay_for_id',
            },
        ),
        migrations.CreateModel(
            name='AbonRawPassword',
            fields=[
                ('account',
                 models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False,
                                      to='abonapp.Abon')),
                ('passw_text', models.CharField(max_length=64)),
            ],
            options={
                'db_table': 'abon_raw_password',
            },
        ),
        migrations.AddField(
            model_name='periodicpayforid',
            name='account',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='abonapp.Abon',
                                    verbose_name='Account'),
        ),
        migrations.AddField(
            model_name='periodicpayforid',
            name='periodic_pay',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='tariff_app.PeriodicPay',
                                    verbose_name='Periodic pay'),
        ),
        migrations.AddField(
            model_name='passportinfo',
            name='abon',
            field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL,
                                       to='abonapp.Abon'),
        ),
        migrations.AddField(
            model_name='invoiceforpayment',
            name='abon',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='abonapp.Abon'),
        ),
        migrations.AddField(
            model_name='invoiceforpayment',
            name='author',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL,
                                    related_name='+', to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddField(
            model_name='alltimepaylog',
            name='abon',
            field=models.ForeignKey(blank=True, default=None, null=True,
                                    on_delete=django.db.models.deletion.SET_DEFAULT, to='abonapp.Abon'),
        ),
        migrations.AddField(
            model_name='additionaltelephone',
            name='abon',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='additional_telephones',
                                    to='abonapp.Abon'),
        ),
        migrations.AddField(
            model_name='abonlog',
            name='abon',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='abonapp.Abon'),
        ),
        migrations.AddField(
            model_name='abonlog',
            name='author',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE,
                                    related_name='+', to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddField(
            model_name='abon',
            name='current_tariff',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL,
                                    to='abonapp.AbonTariff'),
        ),
        migrations.AddField(
            model_name='abon',
            name='dev_port',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL,
                                    to='devapp.Port'),
        ),
        migrations.AddField(
            model_name='abon',
            name='device',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL,
                                    to='devapp.Device'),
        ),
        migrations.AddField(
            model_name='abon',
            name='extra_fields',
            field=models.ManyToManyField(blank=True, to='abonapp.ExtraFieldsModel'),
        ),
        migrations.AddField(
            model_name='abon',
            name='group',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL,
                                    to='group_app.Group', verbose_name='User group'),
        ),
        migrations.AddField(
            model_name='abon',
            name='street',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL,
                                    to='abonapp.AbonStreet', verbose_name='Street'),
        ),
    ]
Example #16
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency("profiles.UserProfile"),
        ("devices", "0001_initial"),
        ("groupapp", "0001_initial"),
        ("gateways", "0001_initial"),
        ("services", "0001_initial"),
        ("profiles", "0001_initial"),
    ]

    operations = [
        migrations.CreateModel(
            name="Customer",
            fields=[
                (
                    "baseaccount_ptr",
                    models.OneToOneField(
                        auto_created=True,
                        on_delete=django.db.models.deletion.CASCADE,
                        parent_link=True,
                        primary_key=True,
                        serialize=False,
                        to="profiles.BaseAccount",
                    ),
                ),
                ("balance", models.FloatField(default=0.0)),
                (
                    "ip_address",
                    models.GenericIPAddressField(blank=True,
                                                 null=True,
                                                 default=None,
                                                 verbose_name="Ip address"),
                ),
                ("description",
                 models.TextField(blank=True,
                                  null=True,
                                  default=None,
                                  verbose_name="Comment")),
                ("house",
                 models.CharField(blank=True,
                                  max_length=12,
                                  null=True,
                                  default=None,
                                  verbose_name="House")),
                ("is_dynamic_ip",
                 models.BooleanField(default=False,
                                     verbose_name="Is dynamic ip")),
                (
                    "auto_renewal_service",
                    models.BooleanField(
                        default=False,
                        verbose_name="Automatically connect next service"),
                ),
                (
                    "markers",
                    bitfield.models.BitField(
                        (
                            ("icon_donkey", "Donkey"),
                            ("icon_fire", "Fire"),
                            ("icon_ok", "Ok"),
                            ("icon_king", "King"),
                            ("icon_tv", "TV"),
                            ("icon_smile", "Smile"),
                            ("icon_dollar", "Dollar"),
                            ("icon_service", "Service"),
                            ("icon_mrk", "Marker"),
                        ),
                        default=0,
                    ),
                ),
            ],
            options={
                "verbose_name":
                "Customer",
                "verbose_name_plural":
                "Customers",
                "db_table":
                "customers",
                "ordering": ("id", ),
                "permissions": (
                    ("can_buy_service", "Buy service perm"),
                    ("can_add_balance", "fill account"),
                    ("can_ping", "Can ping"),
                ),
            },
            bases=("profiles.baseaccount", ),
        ),
        migrations.CreateModel(
            name="PeriodicPayForId",
            fields=[
                ("id",
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name="ID")),
                ("last_pay",
                 models.DateTimeField(blank=True,
                                      null=True,
                                      default=None,
                                      verbose_name="Last pay time")),
                ("next_pay",
                 models.DateTimeField(verbose_name="Next time to pay")),
                (
                    "account",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="customers.Customer",
                        verbose_name="Account"),
                ),
                (
                    "periodic_pay",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="services.PeriodicPay",
                        verbose_name="Periodic pay",
                    ),
                ),
            ],
            options={
                "db_table": "periodic_pay_for_id",
                "ordering": ("last_pay", ),
            },
        ),
        migrations.CreateModel(
            name="PassportInfo",
            fields=[
                ("id",
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name="ID")),
                (
                    "series",
                    models.CharField(
                        max_length=4,
                        validators=[
                            django.core.validators.RegexValidator(
                                re.compile("^-?\\d+\\Z"),
                                code="invalid",
                                message="Enter a valid integer.")
                        ],
                        verbose_name="Passport serial",
                    ),
                ),
                (
                    "number",
                    models.CharField(
                        max_length=6,
                        validators=[
                            django.core.validators.RegexValidator(
                                re.compile("^-?\\d+\\Z"),
                                code="invalid",
                                message="Enter a valid integer.")
                        ],
                        verbose_name="Passport number",
                    ),
                ),
                ("distributor",
                 models.CharField(max_length=64, verbose_name="Distributor")),
                ("date_of_acceptance",
                 models.DateField(verbose_name="Date of acceptance")),
                (
                    "customer",
                    models.OneToOneField(
                        blank=True,
                        null=True,
                        default=None,
                        on_delete=django.db.models.deletion.CASCADE,
                        to="customers.Customer",
                    ),
                ),
            ],
            options={
                "verbose_name": "Passport Info",
                "verbose_name_plural": "Passport Info",
                "db_table": "passport_info",
                "ordering": ("id", ),
            },
        ),
        migrations.CreateModel(
            name="InvoiceForPayment",
            fields=[
                ("id",
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name="ID")),
                ("status", models.BooleanField(default=False)),
                ("cost", models.FloatField(default=0.0)),
                ("comment", models.CharField(max_length=128)),
                ("date_create", models.DateTimeField(auto_now_add=True)),
                ("date_pay", models.DateTimeField(blank=True, null=True)),
                (
                    "author",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        default=None,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="+",
                        to="profiles.UserProfile",
                    ),
                ),
                ("customer",
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to="customers.Customer")),
            ],
            options={
                "verbose_name": "Debt",
                "verbose_name_plural": "Debts",
                "db_table": "customer_inv_pay",
                "ordering": ("id", ),
            },
        ),
        migrations.CreateModel(
            name="CustomerStreet",
            fields=[
                ("id",
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name="ID")),
                ("name", models.CharField(max_length=64)),
                ("group",
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to="groupapp.Group")),
            ],
            options={
                "verbose_name": "Street",
                "verbose_name_plural": "Streets",
                "db_table": "customer_street",
                "ordering": ("id", ),
            },
        ),
        migrations.CreateModel(
            name="CustomerService",
            fields=[
                ("id",
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name="ID")),
                ("start_time",
                 models.DateTimeField(blank=True, default=None, null=True)),
                ("deadline",
                 models.DateTimeField(blank=True, default=None, null=True)),
                (
                    "service",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="link_to_service",
                        to="services.Service",
                    ),
                ),
            ],
            options={
                "verbose_name": "Customer service",
                "verbose_name_plural": "Customer services",
                "db_table": "customer_service",
                "ordering": ("start_time", ),
                "permissions":
                (("can_complete_service", "finish service perm"), ),
            },
        ),
        migrations.CreateModel(
            name="CustomerRawPassword",
            fields=[
                ("id",
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name="ID")),
                ("passw_text",
                 encrypted_model_fields.fields.EncryptedCharField()),
                (
                    "customer",
                    models.OneToOneField(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="customers.Customer"),
                ),
            ],
            options={
                "db_table": "customer_raw_password",
            },
        ),
        migrations.CreateModel(
            name="CustomerLog",
            fields=[
                ("id",
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name="ID")),
                ("cost", models.FloatField(default=0.0)),
                ("comment", models.CharField(max_length=128)),
                ("date", models.DateTimeField(auto_now_add=True)),
                (
                    "author",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="+",
                        to="profiles.BaseAccount",
                    ),
                ),
                ("customer",
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to="customers.Customer")),
            ],
            options={
                "db_table": "customer_log",
                "ordering": ("-date", ),
            },
        ),
        migrations.AddField(
            model_name="customer",
            name="current_service",
            field=models.OneToOneField(
                blank=True,
                default=None,
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                to="customers.CustomerService",
            ),
        ),
        migrations.AddField(
            model_name="customer",
            name="dev_port",
            field=models.ForeignKey(
                blank=True,
                null=True,
                default=None,
                on_delete=django.db.models.deletion.SET_NULL,
                to="devices.Port"),
        ),
        migrations.AddField(
            model_name="customer",
            name="device",
            field=models.ForeignKey(
                blank=True,
                null=True,
                default=None,
                on_delete=django.db.models.deletion.SET_NULL,
                to="devices.Device"),
        ),
        migrations.AddField(
            model_name="customer",
            name="gateway",
            field=models.ForeignKey(
                blank=True,
                default=None,
                help_text="Network access server",
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                to="gateways.Gateway",
                verbose_name="Gateway",
            ),
        ),
        migrations.AddField(
            model_name="customer",
            name="group",
            field=models.ForeignKey(
                blank=True,
                null=True,
                default=None,
                on_delete=django.db.models.deletion.SET_NULL,
                to="groupapp.Group",
                verbose_name="Customer group",
            ),
        ),
        migrations.AddField(
            model_name="customer",
            name="last_connected_service",
            field=models.ForeignKey(
                blank=True,
                default=None,
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                to="services.Service",
                verbose_name="Last connected service",
            ),
        ),
        migrations.AddField(
            model_name="customer",
            name="street",
            field=models.ForeignKey(
                blank=True,
                null=True,
                default=None,
                on_delete=django.db.models.deletion.SET_NULL,
                to="customers.CustomerStreet",
                verbose_name="Street",
            ),
        ),
        migrations.CreateModel(
            name="AdditionalTelephone",
            fields=[
                ("id",
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name="ID")),
                (
                    "telephone",
                    models.CharField(
                        max_length=16,
                        validators=[
                            django.core.validators.RegexValidator(
                                "^(\\+[7893]\\d{10,11})?$")
                        ],
                        verbose_name="Telephone",
                    ),
                ),
                ("owner_name", models.CharField(max_length=127)),
                (
                    "customer",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="additional_telephones",
                        to="customers.Customer",
                    ),
                ),
            ],
            options={
                "verbose_name": "Additional telephone",
                "verbose_name_plural": "Additional telephones",
                "db_table": "additional_telephones",
                "ordering": ("id", ),
            },
        ),
        migrations.AlterUniqueTogether(
            name="customer",
            unique_together={("ip_address", "gateway")},
        ),
    ]
Example #17
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ("auth", "0001_initial"),
    ]

    if settings.POSTGRESQL_MISSING_DICTIONARIES:
        fts_sql = """
CREATE TEXT SEARCH CONFIGURATION zulip.english_us_search (COPY=pg_catalog.english);
"""
    else:
        fts_sql = """
CREATE TEXT SEARCH DICTIONARY english_us_hunspell
  (template = ispell, DictFile = en_us, AffFile = en_us, StopWords = zulip_english);
CREATE TEXT SEARCH CONFIGURATION zulip.english_us_search (COPY=pg_catalog.english);
ALTER TEXT SEARCH CONFIGURATION zulip.english_us_search
  ALTER MAPPING FOR asciiword, asciihword, hword_asciipart, word, hword, hword_part
  WITH english_us_hunspell, english_stem;
"""

    fts_sql += """

CREATE FUNCTION escape_html(text) RETURNS text IMMUTABLE LANGUAGE 'sql' AS $$
  SELECT replace(replace(replace(replace(replace($1, '&', '&amp;'), '<', '&lt;'),
                                 '>', '&gt;'), '"', '&quot;'), '''', '&#39;');
$$ ;

ALTER TABLE zerver_message ADD COLUMN search_tsvector tsvector;
CREATE INDEX zerver_message_search_tsvector ON zerver_message USING gin(search_tsvector);
ALTER INDEX zerver_message_search_tsvector SET (fastupdate = OFF);

CREATE TABLE fts_update_log (id SERIAL PRIMARY KEY, message_id INTEGER NOT NULL);
CREATE FUNCTION do_notify_fts_update_log() RETURNS trigger LANGUAGE plpgsql AS
  $$ BEGIN NOTIFY fts_update_log; RETURN NEW; END $$;
CREATE TRIGGER fts_update_log_notify AFTER INSERT ON fts_update_log
  FOR EACH STATEMENT EXECUTE PROCEDURE do_notify_fts_update_log();
CREATE FUNCTION append_to_fts_update_log() RETURNS trigger LANGUAGE plpgsql AS
  $$ BEGIN INSERT INTO fts_update_log (message_id) VALUES (NEW.id); RETURN NEW; END $$;
CREATE TRIGGER zerver_message_update_search_tsvector_async
  BEFORE INSERT OR UPDATE OF subject, rendered_content ON zerver_message
  FOR EACH ROW EXECUTE PROCEDURE append_to_fts_update_log();
"""
    operations = [
        migrations.CreateModel(
            name="UserProfile",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("password",
                 models.CharField(max_length=128, verbose_name="password")),
                (
                    "last_login",
                    models.DateTimeField(default=django.utils.timezone.now,
                                         verbose_name="last login"),
                ),
                (
                    "is_superuser",
                    models.BooleanField(
                        default=False,
                        help_text=
                        "Designates that this user has all permissions without explicitly assigning them.",
                        verbose_name="superuser status",
                    ),
                ),
                ("email",
                 models.EmailField(db_index=True, max_length=75, unique=True)),
                ("is_staff", models.BooleanField(default=False)),
                ("is_active", models.BooleanField(default=True)),
                ("is_bot", models.BooleanField(default=False)),
                ("date_joined",
                 models.DateTimeField(default=django.utils.timezone.now)),
                ("is_mirror_dummy", models.BooleanField(default=False)),
                ("full_name", models.CharField(max_length=100)),
                ("short_name", models.CharField(max_length=100)),
                ("pointer", models.IntegerField()),
                ("last_pointer_updater", models.CharField(max_length=64)),
                ("api_key", models.CharField(max_length=32)),
                ("enable_stream_desktop_notifications",
                 models.BooleanField(default=True)),
                ("enable_stream_sounds", models.BooleanField(default=True)),
                ("enable_desktop_notifications",
                 models.BooleanField(default=True)),
                ("enable_sounds", models.BooleanField(default=True)),
                ("enable_offline_email_notifications",
                 models.BooleanField(default=True)),
                ("enable_offline_push_notifications",
                 models.BooleanField(default=True)),
                ("enable_digest_emails", models.BooleanField(default=True)),
                ("default_desktop_notifications",
                 models.BooleanField(default=True)),
                (
                    "last_reminder",
                    models.DateTimeField(default=django.utils.timezone.now,
                                         null=True),
                ),
                ("rate_limits", models.CharField(default="", max_length=100)),
                ("default_all_public_streams",
                 models.BooleanField(default=False)),
                ("enter_sends", models.NullBooleanField(default=True)),
                ("autoscroll_forever", models.BooleanField(default=False)),
                ("twenty_four_hour_time", models.BooleanField(default=False)),
                (
                    "avatar_source",
                    models.CharField(
                        choices=[
                            ("G", "Hosted by Gravatar"),
                            ("U", "Uploaded by user"),
                            ("S", "System generated"),
                        ],
                        default="G",
                        max_length=1,
                    ),
                ),
                (
                    "tutorial_status",
                    models.CharField(
                        choices=[("W", "Waiting"), ("S", "Started"),
                                 ("F", "Finished")],
                        default="W",
                        max_length=1,
                    ),
                ),
                ("onboarding_steps", models.TextField(default="[]")),
                ("invites_granted", models.IntegerField(default=0)),
                ("invites_used", models.IntegerField(default=0)),
                ("alert_words", models.TextField(default="[]")),
                ("muted_topics", models.TextField(default="[]")),
                (
                    "bot_owner",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
            options={
                "abstract": False,
            },
        ),
        migrations.CreateModel(
            name="Client",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("name",
                 models.CharField(db_index=True, max_length=30, unique=True)),
            ],
        ),
        migrations.CreateModel(
            name="DefaultStream",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
            ],
        ),
        migrations.CreateModel(
            name="Huddle",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("huddle_hash",
                 models.CharField(db_index=True, max_length=40, unique=True)),
            ],
        ),
        migrations.CreateModel(
            name="Message",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("subject", models.CharField(db_index=True, max_length=60)),
                ("content", models.TextField()),
                ("rendered_content", models.TextField(null=True)),
                ("rendered_content_version", models.IntegerField(null=True)),
                ("pub_date",
                 models.DateTimeField(db_index=True,
                                      verbose_name="date published")),
                ("last_edit_time", models.DateTimeField(null=True)),
                ("edit_history", models.TextField(null=True)),
                ("has_attachment",
                 models.BooleanField(db_index=True, default=False)),
                ("has_image", models.BooleanField(db_index=True,
                                                  default=False)),
                ("has_link", models.BooleanField(db_index=True,
                                                 default=False)),
            ],
        ),
        migrations.CreateModel(
            name="PreregistrationUser",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("email", models.EmailField(max_length=75)),
                ("invited_at", models.DateTimeField(auto_now=True)),
                ("status", models.IntegerField(default=0)),
            ],
        ),
        migrations.CreateModel(
            name="PushDeviceToken",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("kind",
                 models.PositiveSmallIntegerField(
                     choices=[(1, "apns"), (2, "gcm")])),
                ("token", models.CharField(max_length=4096, unique=True)),
                (
                    "last_updated",
                    models.DateTimeField(auto_now=True,
                                         default=django.utils.timezone.now),
                ),
                ("ios_app_id", models.TextField(null=True)),
                (
                    "user",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to=settings.AUTH_USER_MODEL),
                ),
            ],
        ),
        migrations.CreateModel(
            name="Realm",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("domain",
                 models.CharField(db_index=True, max_length=40, unique=True)),
                ("name", models.CharField(max_length=40, null=True)),
                ("restricted_to_domain", models.BooleanField(default=True)),
                ("invite_required", models.BooleanField(default=False)),
                ("invite_by_admins_only", models.BooleanField(default=False)),
                ("mandatory_topics", models.BooleanField(default=False)),
                ("show_digest_email", models.BooleanField(default=True)),
                ("name_changes_disabled", models.BooleanField(default=False)),
                ("date_created",
                 models.DateTimeField(default=django.utils.timezone.now)),
                ("deactivated", models.BooleanField(default=False)),
            ],
            options={
                "permissions": (("administer", "Administer a realm"), ),
            },
        ),
        migrations.CreateModel(
            name="RealmAlias",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("domain",
                 models.CharField(db_index=True, max_length=80, unique=True)),
                (
                    "realm",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.CASCADE,
                        to="zerver.Realm"),
                ),
            ],
        ),
        migrations.CreateModel(
            name="RealmEmoji",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("name", models.TextField()),
                ("img_url", models.TextField()),
                (
                    "realm",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="zerver.Realm"),
                ),
            ],
        ),
        migrations.CreateModel(
            name="RealmFilter",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("pattern", models.TextField()),
                ("url_format_string", models.TextField()),
                (
                    "realm",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="zerver.Realm"),
                ),
            ],
        ),
        migrations.CreateModel(
            name="Recipient",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("type_id", models.IntegerField(db_index=True)),
                ("type", models.PositiveSmallIntegerField(db_index=True)),
            ],
        ),
        migrations.CreateModel(
            name="Referral",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("email", models.EmailField(max_length=75)),
                ("timestamp", models.DateTimeField(auto_now_add=True)),
                (
                    "user_profile",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to=settings.AUTH_USER_MODEL),
                ),
            ],
        ),
        migrations.CreateModel(
            name="ScheduledJob",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("scheduled_timestamp", models.DateTimeField()),
                ("type", models.PositiveSmallIntegerField()),
                ("data", models.TextField()),
                ("filter_id", models.IntegerField(null=True)),
                ("filter_string", models.CharField(max_length=100)),
            ],
        ),
        migrations.CreateModel(
            name="Stream",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("name", models.CharField(db_index=True, max_length=60)),
                ("invite_only", models.NullBooleanField(default=False)),
                (
                    "email_token",
                    models.CharField(default=generate_email_token_for_stream,
                                     max_length=32),
                ),
                ("description", models.CharField(default="", max_length=1024)),
                ("date_created",
                 models.DateTimeField(default=django.utils.timezone.now)),
                ("deactivated", models.BooleanField(default=False)),
                (
                    "realm",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="zerver.Realm"),
                ),
            ],
        ),
        migrations.CreateModel(
            name="Subscription",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("active", models.BooleanField(default=True)),
                ("in_home_view", models.NullBooleanField(default=True)),
                ("color", models.CharField(default="#c2c2c2", max_length=10)),
                ("desktop_notifications", models.BooleanField(default=True)),
                ("audible_notifications", models.BooleanField(default=True)),
                ("notifications", models.BooleanField(default=False)),
                (
                    "recipient",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="zerver.Recipient"),
                ),
                (
                    "user_profile",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to=settings.AUTH_USER_MODEL),
                ),
            ],
        ),
        migrations.CreateModel(
            name="UserActivity",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("query", models.CharField(db_index=True, max_length=50)),
                ("count", models.IntegerField()),
                ("last_visit",
                 models.DateTimeField(verbose_name="last visit")),
                (
                    "client",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="zerver.Client"),
                ),
                (
                    "user_profile",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to=settings.AUTH_USER_MODEL),
                ),
            ],
        ),
        migrations.CreateModel(
            name="UserActivityInterval",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("start",
                 models.DateTimeField(db_index=True,
                                      verbose_name="start time")),
                ("end",
                 models.DateTimeField(db_index=True, verbose_name="end time")),
                (
                    "user_profile",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to=settings.AUTH_USER_MODEL),
                ),
            ],
        ),
        migrations.CreateModel(
            name="UserMessage",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                (
                    "flags",
                    bitfield.models.BitField(
                        [
                            "read",
                            "starred",
                            "collapsed",
                            "mentioned",
                            "wildcard_mentioned",
                            "summarize_in_home",
                            "summarize_in_stream",
                            "force_expand",
                            "force_collapse",
                            "has_alert_word",
                            "historical",
                            "is_me_message",
                        ],
                        default=0,
                    ),
                ),
                (
                    "message",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="zerver.Message"),
                ),
                (
                    "user_profile",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to=settings.AUTH_USER_MODEL),
                ),
            ],
        ),
        migrations.CreateModel(
            name="UserPresence",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("timestamp",
                 models.DateTimeField(verbose_name="presence changed")),
                ("status", models.PositiveSmallIntegerField(default=1)),
                (
                    "client",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to="zerver.Client"),
                ),
                (
                    "user_profile",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to=settings.AUTH_USER_MODEL),
                ),
            ],
        ),
        migrations.AlterUniqueTogether(
            name="userpresence",
            unique_together={("user_profile", "client")},
        ),
        migrations.AlterUniqueTogether(
            name="usermessage",
            unique_together={("user_profile", "message")},
        ),
        migrations.AlterUniqueTogether(
            name="useractivity",
            unique_together={("user_profile", "client", "query")},
        ),
        migrations.AlterUniqueTogether(
            name="subscription",
            unique_together={("user_profile", "recipient")},
        ),
        migrations.AlterUniqueTogether(
            name="stream",
            unique_together={("name", "realm")},
        ),
        migrations.AlterUniqueTogether(
            name="recipient",
            unique_together={("type", "type_id")},
        ),
        migrations.AlterUniqueTogether(
            name="realmfilter",
            unique_together={("realm", "pattern")},
        ),
        migrations.AlterUniqueTogether(
            name="realmemoji",
            unique_together={("realm", "name")},
        ),
        migrations.AddField(
            model_name="realm",
            name="notifications_stream",
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name="+",
                to="zerver.Stream",
            ),
        ),
        migrations.AddField(
            model_name="preregistrationuser",
            name="realm",
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to="zerver.Realm"),
        ),
        migrations.AddField(
            model_name="preregistrationuser",
            name="referred_by",
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddField(
            model_name="preregistrationuser",
            name="streams",
            field=models.ManyToManyField(null=True, to="zerver.Stream"),
        ),
        migrations.AddField(
            model_name="message",
            name="recipient",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to="zerver.Recipient"),
        ),
        migrations.AddField(
            model_name="message",
            name="sender",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddField(
            model_name="message",
            name="sending_client",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to="zerver.Client"),
        ),
        migrations.AddField(
            model_name="defaultstream",
            name="realm",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to="zerver.Realm"),
        ),
        migrations.AddField(
            model_name="defaultstream",
            name="stream",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to="zerver.Stream"),
        ),
        migrations.AlterUniqueTogether(
            name="defaultstream",
            unique_together={("realm", "stream")},
        ),
        migrations.AddField(
            model_name="userprofile",
            name="default_events_register_stream",
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name="+",
                to="zerver.Stream",
            ),
        ),
        migrations.AddField(
            model_name="userprofile",
            name="default_sending_stream",
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name="+",
                to="zerver.Stream",
            ),
        ),
        migrations.AddField(
            model_name="userprofile",
            name="groups",
            field=models.ManyToManyField(
                blank=True,
                help_text=
                "The groups this user belongs to. A user will get all permissions granted to each of their groups.",
                related_name="user_set",
                related_query_name="user",
                to="auth.Group",
                verbose_name="groups",
            ),
        ),
        migrations.AddField(
            model_name="userprofile",
            name="realm",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to="zerver.Realm"),
        ),
        migrations.AddField(
            model_name="userprofile",
            name="user_permissions",
            field=models.ManyToManyField(
                blank=True,
                help_text="Specific permissions for this user.",
                related_name="user_set",
                related_query_name="user",
                to="auth.Permission",
                verbose_name="user permissions",
            ),
        ),
        migrations.RunSQL(sql=fts_sql, ),
        migrations.AlterModelManagers(
            name="userprofile",
            managers=[
                ("objects", django.contrib.auth.models.UserManager()),
            ],
        ),
        migrations.AlterField(
            model_name="preregistrationuser",
            name="email",
            field=models.EmailField(max_length=254),
        ),
        migrations.AlterField(
            model_name="preregistrationuser",
            name="streams",
            field=models.ManyToManyField(to="zerver.Stream"),
        ),
        migrations.AlterField(
            model_name="pushdevicetoken",
            name="last_updated",
            field=models.DateTimeField(auto_now=True),
        ),
        migrations.AlterField(
            model_name="referral",
            name="email",
            field=models.EmailField(max_length=254),
        ),
        migrations.AlterField(
            model_name="userprofile",
            name="email",
            field=models.EmailField(db_index=True, max_length=254,
                                    unique=True),
        ),
        migrations.AlterField(
            model_name="userprofile",
            name="last_login",
            field=models.DateTimeField(blank=True,
                                       null=True,
                                       verbose_name="last login"),
        ),
        migrations.RunSQL(
            sql=
            "CREATE INDEX upper_subject_idx ON zerver_message ((upper(subject)));",
            reverse_sql="DROP INDEX upper_subject_idx;",
        ),
        migrations.RunSQL(
            sql=
            "CREATE INDEX upper_stream_name_idx ON zerver_stream ((upper(name)));",
            reverse_sql="DROP INDEX upper_stream_name_idx;",
        ),
        migrations.AddField(
            model_name="userprofile",
            name="left_side_userlist",
            field=models.BooleanField(default=False),
        ),
        migrations.AlterModelOptions(
            name="realm",
            options={
                "permissions": (
                    ("administer", "Administer a realm"),
                    ("api_super_user",
                     "Can send messages as other users for mirroring"),
                )
            },
        ),
        migrations.RunSQL(
            sql=
            "CREATE INDEX upper_userprofile_email_idx ON zerver_userprofile ((upper(email)));",
            reverse_sql="DROP INDEX upper_userprofile_email_idx;",
        ),
        migrations.AlterField(
            model_name="userprofile",
            name="is_active",
            field=models.BooleanField(db_index=True, default=True),
        ),
        migrations.AlterField(
            model_name="userprofile",
            name="is_bot",
            field=models.BooleanField(db_index=True, default=False),
        ),
        migrations.RunSQL(
            sql=
            "CREATE INDEX upper_preregistration_email_idx ON zerver_preregistrationuser ((upper(email)));",
            reverse_sql="DROP INDEX upper_preregistration_email_idx;",
        ),
        migrations.AlterField(
            model_name="userprofile",
            name="enable_stream_desktop_notifications",
            field=models.BooleanField(default=False),
        ),
        migrations.AlterField(
            model_name="userprofile",
            name="enable_stream_sounds",
            field=models.BooleanField(default=False),
        ),
        migrations.AddField(
            model_name="userprofile",
            name="is_api_super_user",
            field=models.BooleanField(db_index=True, default=False),
        ),
        migrations.AddField(
            model_name="userprofile",
            name="is_realm_admin",
            field=models.BooleanField(db_index=True, default=False),
        ),
        migrations.AlterField(
            model_name="realmemoji",
            name="img_url",
            field=models.URLField(),
        ),
        migrations.AlterField(
            model_name="realmemoji",
            name="name",
            field=models.TextField(validators=[
                django.core.validators.MinLengthValidator(1),
                django.core.validators.RegexValidator(
                    regex="^[0-9a-zA-Z.\\-_]+(?<![.\\-_])$"),
            ]),
        ),
        migrations.AlterField(
            model_name="realmemoji",
            name="img_url",
            field=models.URLField(max_length=1000),
        ),
        migrations.CreateModel(
            name="Attachment",
            fields=[
                (
                    "id",
                    models.AutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name="ID"),
                ),
                ("file_name", models.CharField(db_index=True, max_length=100)),
                ("path_id", models.TextField(db_index=True)),
                (
                    "create_time",
                    models.DateTimeField(db_index=True,
                                         default=django.utils.timezone.now),
                ),
                ("messages", models.ManyToManyField(to="zerver.Message")),
                (
                    "owner",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        to=settings.AUTH_USER_MODEL),
                ),
                ("is_realm_public", models.BooleanField(default=False)),
            ],
        ),
        migrations.AddField(
            model_name="realm",
            name="create_stream_by_admins_only",
            field=models.BooleanField(default=False),
        ),
        migrations.AddField(
            model_name="userprofile",
            name="bot_type",
            field=models.PositiveSmallIntegerField(db_index=True, null=True),
        ),
        migrations.AlterField(
            model_name="realmemoji",
            name="name",
            field=models.TextField(validators=[
                django.core.validators.MinLengthValidator(1),
                django.core.validators.RegexValidator(
                    message="Invalid characters in emoji name",
                    regex="^[0-9a-zA-Z.\\-_]+(?<![.\\-_])$",
                ),
            ]),
        ),
        migrations.AddField(
            model_name="preregistrationuser",
            name="realm_creation",
            field=models.BooleanField(default=False),
        ),
        migrations.AddField(
            model_name="attachment",
            name="realm",
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to="zerver.Realm",
            ),
        ),
        migrations.RunPython(
            code=migrate_existing_attachment_data,
            elidable=True,
        ),
        migrations.AddField(
            model_name="subscription",
            name="pin_to_top",
            field=models.BooleanField(default=False),
        ),
        migrations.AddField(
            model_name="userprofile",
            name="default_language",
            field=models.CharField(default="en", max_length=50),
        ),
        migrations.AddField(
            model_name="realm",
            name="allow_message_editing",
            field=models.BooleanField(default=True),
        ),
        migrations.AddField(
            model_name="realm",
            name="message_content_edit_limit_seconds",
            field=models.IntegerField(default=600),
        ),
        migrations.AddField(
            model_name="realm",
            name="default_language",
            field=models.CharField(default="en", max_length=50),
        ),
        migrations.AddField(
            model_name="userprofile",
            name="tos_version",
            field=models.CharField(max_length=10, null=True),
        ),
    ]
Example #18
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('contenttypes', '0002_remove_content_type_name'),
        ('email_auth', '0002_auto_20160327_1119'),
    ]

    operations = [
        migrations.CreateModel(
            name='AdditionalEntityCharacteristicOrMark',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('value', models.CharField(max_length=255,
                                           verbose_name='Value')),
                ('view_class',
                 models.CharField(
                     blank=True,
                     help_text=
                     'Space delimited class attribute, specifies one or more classnames for an entity.',
                     max_length=255,
                     null=True,
                     verbose_name='View Class')),
            ],
            options={
                'abstract':
                False,
                'verbose_name':
                'Additional Entity Characteristic or Mark',
                'verbose_name_plural':
                'Additional Entity Characteristics or Marks',
            },
        ),
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('created_at',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name='Created at')),
                ('updated_at',
                 models.DateTimeField(auto_now=True,
                                      verbose_name='Updated at')),
                ('active',
                 models.BooleanField(
                     default=True,
                     help_text='Is this object publicly visible.',
                     verbose_name='Active')),
                ('name',
                 models.CharField(max_length=255, verbose_name='Book Name')),
                ('slug', models.SlugField(unique=True, verbose_name='Slug')),
                ('description',
                 models.TextField(blank=True,
                                  null=True,
                                  verbose_name='Description')),
                ('order',
                 models.PositiveIntegerField(db_index=True,
                                             default=1,
                                             verbose_name='Sort by')),
            ],
            options={
                'ordering': ('order', ),
                'verbose_name': 'Book',
                'verbose_name_plural': 'Books',
            },
        ),
        migrations.CreateModel(
            name='Customer',
            fields=[
                ('user',
                 models.OneToOneField(
                     on_delete=django.db.models.deletion.CASCADE,
                     primary_key=True,
                     serialize=False,
                     to=settings.AUTH_USER_MODEL)),
                ('recognized',
                 models.PositiveSmallIntegerField(
                     choices=[(0, 'Unrecognized'), (1, 'Guest'),
                              (2, 'Registered')],
                     default=0,
                     help_text=
                     'Designates the state the customer is recognized as.',
                     verbose_name='Recognized as')),
                ('salutation',
                 models.CharField(choices=[('mrs', 'Mrs.'), ('mr', 'Mr.'),
                                           ('na', '(n/a)')],
                                  max_length=5,
                                  verbose_name='Salutation')),
                ('last_access',
                 models.DateTimeField(default=django.utils.timezone.now,
                                      verbose_name='Last accessed')),
                ('extra',
                 jsonfield.fields.JSONField(
                     default={},
                     editable=False,
                     verbose_name='Extra information about this customer')),
                ('number',
                 models.PositiveIntegerField(default=None,
                                             null=True,
                                             unique=True,
                                             verbose_name='Customer Number')),
            ],
        ),
        migrations.CreateModel(
            name='DataMart',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=255,
                                          verbose_name='Name')),
                ('slug',
                 models.SlugField(
                     help_text=
                     'Used for URLs, auto-generated from name if blank',
                     verbose_name='Slug')),
                ('path',
                 models.CharField(db_index=True,
                                  editable=False,
                                  max_length=255,
                                  unique=True,
                                  verbose_name='Path')),
                ('created_at',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name='Created at')),
                ('updated_at',
                 models.DateTimeField(auto_now=True,
                                      verbose_name='Updated at')),
                ('view_class',
                 models.CharField(
                     blank=True,
                     help_text=
                     'Space delimited class attribute, specifies one or more classnames for an data mart.',
                     max_length=255,
                     null=True,
                     verbose_name='View Class')),
                ('description',
                 models.TextField(blank=True,
                                  null=True,
                                  verbose_name='Description')),
                ('active',
                 models.BooleanField(db_index=True,
                                     default=True,
                                     help_text='Is this data mart active.',
                                     verbose_name='Active')),
                ('system_flags',
                 bitfield.models.BitField(
                     [('delete_restriction', 'Delete restriction'),
                      ('change_parent_restriction',
                       'Change parent restriction'),
                      ('change_slug_restriction', 'Change slug restriction'),
                      ('has_child_restriction', 'Has child restriction')],
                     default=None,
                     null=True,
                     verbose_name='system flags')),
                ('lft',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('rght',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('tree_id',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('level',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('parent',
                 edw.models.fields.TreeForeignKey(
                     blank=True,
                     null=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name='children',
                     to='sample.DataMart',
                     verbose_name='Parent')),
                ('polymorphic_ctype',
                 models.ForeignKey(
                     editable=False,
                     null=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name='polymorphic_sample.datamart_set+',
                     to='contenttypes.ContentType')),
            ],
            options={
                'abstract': False,
                'verbose_name': 'Data mart',
                'verbose_name_plural': 'Data marts',
            },
            bases=(edw.signals.mptt.MPTTModelSignalSenderMixin, models.Model),
        ),
        migrations.CreateModel(
            name='Term',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=255,
                                          verbose_name='Name')),
                ('slug',
                 models.SlugField(
                     help_text=
                     'Used for URLs, auto-generated from name if blank',
                     verbose_name='Slug')),
                ('path',
                 models.CharField(db_index=True,
                                  editable=False,
                                  max_length=255,
                                  unique=True,
                                  verbose_name='Path')),
                ('semantic_rule',
                 models.PositiveSmallIntegerField(
                     choices=[(10, 'OR'),
                              (20, 'XOR'), (30, 'AND')],
                     default=10,
                     verbose_name='Semantic Rule')),
                ('attributes',
                 bitfield.models.BitField(
                     [('is_characteristic', 'Is characteristic'),
                      ('is_mark', 'Is mark'), ('is_relation', 'Is relation')],
                     default=None,
                     help_text='Specifying attributes of term.',
                     null=True,
                     verbose_name='attributes')),
                ('specification_mode',
                 models.PositiveSmallIntegerField(
                     choices=[(10, 'Standard'), (20, 'Expanded'),
                              (30, 'Reduced')],
                     default=10,
                     verbose_name='Specification Mode')),
                ('created_at',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name='Created at')),
                ('updated_at',
                 models.DateTimeField(auto_now=True,
                                      verbose_name='Updated at')),
                ('view_class',
                 models.CharField(
                     blank=True,
                     help_text=
                     'Space delimited class attribute, specifies one or more classnames for an entity.',
                     max_length=255,
                     null=True,
                     verbose_name='View Class')),
                ('description',
                 models.TextField(blank=True,
                                  null=True,
                                  verbose_name='Description')),
                ('active',
                 models.BooleanField(db_index=True,
                                     default=True,
                                     help_text='Is this term active.',
                                     verbose_name='Active')),
                ('system_flags',
                 bitfield.models.BitField(
                     [('delete_restriction', 'Delete restriction'),
                      ('change_parent_restriction',
                       'Change parent restriction'),
                      ('change_slug_restriction', 'Change slug restriction'),
                      ('change_semantic_rule_restriction',
                       'Change semantic rule restriction'),
                      ('has_child_restriction', 'Has child restriction'),
                      ('external_tagging_restriction',
                       'External tagging restriction')],
                     default=None,
                     null=True,
                     verbose_name='system flags')),
                ('lft',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('rght',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('tree_id',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('level',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('parent',
                 edw.models.fields.TreeForeignKey(
                     blank=True,
                     null=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name='children',
                     to='sample.Term',
                     verbose_name='Parent')),
            ],
            options={
                'abstract': False,
                'verbose_name': 'Term',
                'verbose_name_plural': 'Topic model',
            },
            bases=(edw.models.term.AndRuleFilterMixin,
                   edw.models.term.OrRuleFilterMixin,
                   edw.signals.mptt.MPTTModelSignalSenderMixin, models.Model),
        ),
        migrations.CreateModel(
            name='CustomerProxy',
            fields=[],
            options={
                'verbose_name': 'Customer',
                'proxy': True,
                'verbose_name_plural': 'Customers',
            },
            bases=('email_auth.user', ),
            managers=[
                ('objects', email_auth.models.UserManager()),
            ],
        ),
        migrations.CreateModel(
            name='AdultBook',
            fields=[
                ('book_ptr',
                 models.OneToOneField(
                     auto_created=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     parent_link=True,
                     primary_key=True,
                     serialize=False,
                     to='sample.Book')),
                ('genre',
                 models.PositiveSmallIntegerField(choices=[(1, 'Fantastic'),
                                                           (2, 'Drama'),
                                                           (3, 'Mistics')],
                                                  verbose_name='Genre')),
            ],
            options={
                'verbose_name': 'Adult book',
                'verbose_name_plural': 'Adult books',
            },
            bases=('sample.book', ),
        ),
        migrations.CreateModel(
            name='ChildBook',
            fields=[
                ('book_ptr',
                 models.OneToOneField(
                     auto_created=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     parent_link=True,
                     primary_key=True,
                     serialize=False,
                     to='sample.Book')),
                ('age',
                 models.PositiveSmallIntegerField(choices=[(1, '0-6 month'),
                                                           (2, '6-12 month'),
                                                           (3, '1+ year')],
                                                  verbose_name='Age')),
            ],
            options={
                'verbose_name': 'Child book',
                'verbose_name_plural': 'Child books',
            },
            bases=('sample.book', ),
        ),
        migrations.AddField(
            model_name='datamart',
            name='terms',
            field=models.ManyToManyField(
                blank=True,
                help_text='Use "ctrl" key for choose multiple terms',
                related_name='_datamart_terms_+',
                to='sample.Term',
                verbose_name='Terms'),
        ),
        migrations.AddField(
            model_name='book',
            name='additional_characteristics_or_marks',
            field=models.ManyToManyField(
                through='sample.AdditionalEntityCharacteristicOrMark',
                to='sample.Term'),
        ),
        migrations.AddField(
            model_name='book',
            name='polymorphic_ctype',
            field=models.ForeignKey(
                editable=False,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                related_name='polymorphic_sample.book_set+',
                to='contenttypes.ContentType'),
        ),
        migrations.AddField(
            model_name='book',
            name='terms',
            field=models.ManyToManyField(
                blank=True,
                help_text='Use "ctrl" key for choose multiple terms',
                related_name='entities',
                to='sample.Term',
                verbose_name='Terms'),
        ),
        migrations.AddField(
            model_name='additionalentitycharacteristicormark',
            name='entity',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='sample.Book',
                verbose_name='Entity'),
        ),
        migrations.AddField(
            model_name='additionalentitycharacteristicormark',
            name='term',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='sample.Term',
                verbose_name='Term'),
        ),
    ]
Example #19
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('taggit', '0002_auto_20150616_2121'),
        ('contenttypes', '0002_remove_content_type_name'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Article',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('for_lang',
                 models.BooleanField(
                     default=True,
                     verbose_name='Dost\u0119pne w wybranym j\u0119zyku')),
                ('for_lang_pl',
                 models.BooleanField(
                     default=True,
                     verbose_name='Dost\u0119pne w wybranym j\u0119zyku')),
                ('template',
                 models.CharField(blank=True,
                                  max_length=255,
                                  null=True,
                                  verbose_name='Szablon')),
                ('status',
                 models.IntegerField(choices=[(0, b'Ukryty'),
                                              (1, b'Publikowany')],
                                     default=0,
                                     verbose_name='Status')),
                ('identity',
                 models.CharField(default=b'',
                                  max_length=255,
                                  verbose_name='Tytu\u0142')),
                ('identity_pl',
                 models.CharField(default=b'',
                                  max_length=255,
                                  null=True,
                                  verbose_name='Tytu\u0142')),
                ('updated_at',
                 models.DateTimeField(auto_now=True,
                                      verbose_name='Ostatnia aktualizacja')),
                ('created_at',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name='Utworzono')),
                ('article_date',
                 models.DateTimeField(
                     default=datetime.datetime.now,
                     help_text='Data wy\u015bwietlana przy artykule',
                     verbose_name='Data')),
                ('shortcut',
                 corecms.fields.CMSTextField(verbose_name='Skr\xf3t')),
                ('slug',
                 models.SlugField(
                     blank=True,
                     help_text='Unikalny identyfikator kategorii (opcjonalny)',
                     max_length=255,
                     verbose_name='Klucz')),
                ('slug_pl',
                 models.SlugField(
                     blank=True,
                     help_text='Unikalny identyfikator kategorii (opcjonalny)',
                     max_length=255,
                     null=True,
                     verbose_name='Klucz')),
                ('content',
                 corecms.fields.CMSTextField(blank=True,
                                             default=b'',
                                             verbose_name='Tre\u015b\u0107')),
                ('content_pl',
                 corecms.fields.CMSTextField(blank=True,
                                             default=b'',
                                             null=True,
                                             verbose_name='Tre\u015b\u0107')),
                ('thumbnail',
                 corecms.fields.Base64ImageField(blank=True,
                                                 null=True,
                                                 upload_to=b'',
                                                 verbose_name='Miniaturka')),
                ('main_image',
                 corecms.fields.Base64ImageField(
                     blank=True,
                     null=True,
                     upload_to=b'',
                     verbose_name='Obrazek przewodni')),
                ('alternative_url',
                 models.CharField(
                     blank=True,
                     default=b'',
                     help_text=
                     b'Link na kt\xc3\xb3ry bedzie wskazywa\xc5\x82a ten artyku\xc5\x82',
                     max_length=255,
                     verbose_name='Link alternatywny')),
                ('old_cms_id', models.IntegerField(default=None, null=True)),
                ('created_by',
                 models.ForeignKey(
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to=settings.AUTH_USER_MODEL,
                     verbose_name='Autor')),
            ],
            options={
                'ordering': ['-article_date'],
                'abstract': False,
                'verbose_name': 'Artyku\u0142',
                'verbose_name_plural': 'Artyku\u0142y',
            },
            bases=(corecms.models.base_element.ConnectedFilesMixin,
                   models.Model),
        ),
        migrations.CreateModel(
            name='ConfigCMS',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('site_title',
                 models.CharField(blank=True,
                                  default=b'',
                                  max_length=255,
                                  verbose_name='Tytu\u0142 strony')),
                ('site_pagination',
                 models.IntegerField(
                     default=5,
                     verbose_name=
                     'Ilo\u015b\u0107 artyku\u0142\xf3w na jednej stronie')),
                ('seo_keywords',
                 models.CharField(blank=True,
                                  default=b'',
                                  help_text='Rozdzielaj przecinkiem',
                                  max_length=255,
                                  verbose_name='S\u0142owa kluczowe')),
                ('seo_description',
                 models.TextField(blank=True,
                                  default=b'',
                                  verbose_name='Opis w META')),
                ('tracking_code',
                 models.TextField(
                     blank=True,
                     default=b'',
                     verbose_name='Kod \u015bledz\u0105cy w znaczniku HEAD')),
                ('cookie_description',
                 models.TextField(
                     blank=True,
                     default=b'',
                     help_text=
                     'Je\u017celi puste to informacja b\u0119dzie niewidoczna',
                     verbose_name='Informacja w informacji o ciastkach')),
            ],
            options={
                'abstract': False,
                'verbose_name': 'Konfiguracja',
                'verbose_name_plural': 'Konfiguracja',
            },
        ),
        migrations.CreateModel(
            name='FormGeneratorModel',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=255,
                                          verbose_name='Nazwa')),
                ('emails',
                 models.TextField(
                     blank=True,
                     null=True,
                     verbose_name='E-Maile rozdzielone przecinkami')),
                ('form_data',
                 picklefield.fields.PickledObjectField(editable=False)),
            ],
        ),
        migrations.CreateModel(
            name='Gallery',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=255,
                                          verbose_name='Nazwa')),
                ('for_lang',
                 models.BooleanField(
                     default=True,
                     verbose_name='Dost\u0119pne w wybranym j\u0119zyku')),
            ],
            bases=(corecms.models.base_element.ConnectedFilesMixin,
                   models.Model),
        ),
        migrations.CreateModel(
            name='IsSite',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('cms_id', models.IntegerField()),
                ('is_site', models.BooleanField(default=False)),
            ],
        ),
        migrations.CreateModel(
            name='MediaFile',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('for_lang',
                 models.BooleanField(
                     default=True,
                     verbose_name='Dost\u0119pne w wybranym j\u0119zyku')),
                ('for_lang_pl',
                 models.BooleanField(
                     default=True,
                     verbose_name='Dost\u0119pne w wybranym j\u0119zyku')),
                ('object_id', models.PositiveIntegerField(blank=True,
                                                          null=True)),
                ('name',
                 models.CharField(default=b'',
                                  max_length=255,
                                  verbose_name=b'Oryginalna nazwa pliku')),
                ('title',
                 models.CharField(default=b'',
                                  max_length=255,
                                  verbose_name=b'Tytu\xc5\x82 pliku')),
                ('path', models.FilePathField(max_length=1000)),
                ('position', positions.fields.PositionField(default=0)),
                ('distinction',
                 bitfield.models.BitField(
                     ((b'downloadable', 'Do pobrania',
                       b'glyphicon-download-alt'),
                      (b'gallery', 'Galeria', b'glyphicon-picture'),
                      (b'cover', 'Poka\u017c ok\u0142adk\u0119',
                       b'glyphicon-book')),
                     default=None)),
                ('create_date',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name=b'Data utworzenia')),
                ('file_type',
                 models.CharField(blank=True,
                                  max_length=100,
                                  verbose_name=b'Typ pliku')),
                ('file_size',
                 models.CharField(blank=True,
                                  max_length=200,
                                  verbose_name=b'Rozmiar pliku')),
                ('description',
                 models.TextField(blank=True,
                                  max_length=250,
                                  verbose_name=b'Opis')),
                ('repository',
                 models.BooleanField(default=False,
                                     verbose_name='W repozytorium')),
                ('publish',
                 models.BooleanField(default=True,
                                     verbose_name='Publikuj na www')),
                ('content_type',
                 models.ForeignKey(blank=True,
                                   null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   related_name='+',
                                   to='contenttypes.ContentType')),
                ('created_by',
                 models.ForeignKey(blank=True,
                                   null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL,
                                   verbose_name=b'Utworzone przez')),
                ('parent',
                 models.ForeignKey(null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   related_name='ghost_files',
                                   to='cms.MediaFile')),
            ],
            options={
                'ordering': ['position'],
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='Menu',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=255,
                                          verbose_name='Nazwa')),
                ('slug',
                 models.SlugField(help_text='Unikalny identyfikator',
                                  max_length=32,
                                  verbose_name='Klucz')),
            ],
            options={
                'abstract': False,
                'verbose_name': 'Menu',
                'verbose_name_plural': 'Menu',
            },
        ),
        migrations.CreateModel(
            name='RelationArticleSite',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('position', positions.fields.PositionField(default=-1)),
                ('main', models.BooleanField(default=False)),
                ('child',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='cms.Article')),
            ],
            options={
                'ordering': ['-id'],
            },
        ),
        migrations.CreateModel(
            name='RelationMenuSite',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('order', positions.fields.PositionField(default=-1)),
            ],
            options={
                'ordering': ['order'],
            },
        ),
        migrations.CreateModel(
            name='Site',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('template',
                 models.CharField(blank=True,
                                  max_length=255,
                                  null=True,
                                  verbose_name='Szablon')),
                ('status',
                 models.IntegerField(choices=[(0, b'Ukryty'),
                                              (1, b'Publikowany')],
                                     default=0,
                                     verbose_name='Status')),
                ('identity',
                 models.CharField(default=b'',
                                  max_length=255,
                                  verbose_name='Tytu\u0142')),
                ('identity_pl',
                 models.CharField(default=b'',
                                  max_length=255,
                                  null=True,
                                  verbose_name='Tytu\u0142')),
                ('updated_at',
                 models.DateTimeField(auto_now=True,
                                      verbose_name='Ostatnia aktualizacja')),
                ('created_at',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name='Utworzono')),
                ('alternative_url',
                 models.CharField(
                     blank=True,
                     default=b'',
                     help_text=
                     b'Link na kt\xc3\xb3ry bedzie wskazywa\xc5\x82a ta strona',
                     max_length=255,
                     verbose_name='Link alternatywny')),
                ('thumbnail',
                 corecms.fields.Base64ImageField(blank=True,
                                                 null=True,
                                                 upload_to=b'',
                                                 verbose_name='Miniaturka')),
                ('main_image',
                 corecms.fields.Base64ImageField(
                     blank=True,
                     null=True,
                     upload_to=b'',
                     verbose_name='Obrazek przewodni')),
                ('slug',
                 models.SlugField(
                     blank=True,
                     help_text='Unikalny identyfikator kategorii (opcjonalny)',
                     max_length=255,
                     verbose_name='Klucz')),
                ('slug_pl',
                 models.SlugField(
                     blank=True,
                     help_text='Unikalny identyfikator kategorii (opcjonalny)',
                     max_length=255,
                     null=True,
                     verbose_name='Klucz')),
                ('content',
                 corecms.fields.CMSTextField(blank=True,
                                             default=b'',
                                             verbose_name='Tre\u015b\u0107')),
                ('content_pl',
                 corecms.fields.CMSTextField(blank=True,
                                             default=b'',
                                             null=True,
                                             verbose_name='Tre\u015b\u0107')),
                ('order', models.PositiveIntegerField(default=0)),
                ('old_cms_id', models.IntegerField(default=None, null=True)),
                ('lft',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('rght',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('tree_id',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('level',
                 models.PositiveIntegerField(db_index=True, editable=False)),
                ('articles',
                 models.ManyToManyField(through='cms.RelationArticleSite',
                                        to='cms.Article')),
                ('created_by',
                 models.ForeignKey(
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to=settings.AUTH_USER_MODEL,
                     verbose_name='Autor')),
                ('parent',
                 mptt.fields.TreeForeignKey(
                     blank=True,
                     null=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name='children',
                     to='cms.Site',
                     verbose_name='Strona nadrz\u0119dna')),
                ('updated_by',
                 models.ForeignKey(
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to=settings.AUTH_USER_MODEL,
                     verbose_name='Ostatnio aktualizowa\u0142')),
            ],
            options={
                'ordering': ('lft', ),
                'abstract': False,
                'verbose_name': 'Strona',
                'verbose_name_plural': 'Strony',
            },
            bases=(corecms.models.base_element.ConnectedFilesMixin,
                   models.Model),
        ),
        migrations.CreateModel(
            name='Slider',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('slug', models.SlugField(verbose_name='Identyfikator')),
                ('name',
                 models.CharField(blank=True,
                                  default=b'',
                                  max_length=255,
                                  verbose_name='Nazwa')),
            ],
            options={
                'abstract': False,
                'verbose_name': 'Slider',
                'verbose_name_plural': 'Slidery',
            },
        ),
        migrations.CreateModel(
            name='SliderRow',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name',
                 models.CharField(blank=True,
                                  default=b'',
                                  max_length=255,
                                  verbose_name='Nazwa')),
                ('text',
                 models.TextField(blank=True, default=b'',
                                  verbose_name='Opis')),
                ('image',
                 models.ImageField(blank=True,
                                   upload_to=b'public/sliders',
                                   verbose_name='Obrazek')),
                ('order',
                 models.IntegerField(default=1, verbose_name='Priorytet')),
                ('status',
                 models.IntegerField(choices=[(0, b'Ukryty'),
                                              (1, b'Publikowany')],
                                     default=1,
                                     verbose_name='Status')),
                ('url',
                 models.CharField(blank=True,
                                  default=b'',
                                  max_length=255,
                                  verbose_name='Url')),
                ('parent',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='items',
                                   to='cms.Slider')),
            ],
            options={
                'ordering': ('order', ),
                'abstract': False,
                'verbose_name': 'Slider - wpis',
                'verbose_name_plural': 'Slider - wpisy',
            },
        ),
        migrations.CreateModel(
            name='TextBlock',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('keyword',
                 models.SlugField(max_length=255,
                                  unique=True,
                                  verbose_name='Identyfikator')),
                ('content',
                 models.TextField(blank=True,
                                  default=b'',
                                  verbose_name='Tre\u015b\u0107')),
                ('content_pl',
                 models.TextField(blank=True,
                                  default=b'',
                                  null=True,
                                  verbose_name='Tre\u015b\u0107')),
            ],
            options={
                'abstract': False,
                'verbose_name': 'Blok tekstowy',
                'verbose_name_plural': 'Bloki tekstowe',
            },
            bases=(corecms.models.base_element.ConnectedFilesMixin,
                   models.Model),
        ),
        migrations.CreateModel(
            name='Tag',
            fields=[],
            options={
                'verbose_name': 'Tag',
                'proxy': True,
                'verbose_name_plural': 'Tagi',
                'indexes': [],
            },
            bases=('taggit.tag', ),
        ),
        migrations.AddField(
            model_name='relationmenusite',
            name='child',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE, to='cms.Site'),
        ),
        migrations.AddField(
            model_name='relationmenusite',
            name='parent',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE, to='cms.Menu'),
        ),
        migrations.AddField(
            model_name='relationarticlesite',
            name='parent',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE, to='cms.Site'),
        ),
        migrations.AddField(
            model_name='mediafile',
            name='tags',
            field=taggit.managers.TaggableManager(
                blank=True,
                help_text='A comma-separated list of tags.',
                through='taggit.TaggedItem',
                to='taggit.Tag',
                verbose_name='Tagi'),
        ),
        migrations.AddField(
            model_name='article',
            name='sites',
            field=models.ManyToManyField(through='cms.RelationArticleSite',
                                         to='cms.Site'),
        ),
        migrations.AddField(
            model_name='article',
            name='tags',
            field=taggit.managers.TaggableManager(
                blank=True,
                help_text='A comma-separated list of tags.',
                through='taggit.TaggedItem',
                to='taggit.Tag',
                verbose_name='Tagi'),
        ),
        migrations.AddField(
            model_name='article',
            name='updated_by',
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                related_name='+',
                to=settings.AUTH_USER_MODEL,
                verbose_name='Ostatnio aktualizowa\u0142'),
        ),
        migrations.CreateModel(
            name='RepositoryMediaFile',
            fields=[],
            options={
                'verbose_name': 'Plik',
                'proxy': True,
                'verbose_name_plural': 'Repozytorium plik\xf3w',
                'indexes': [],
            },
            bases=('cms.mediafile', ),
        ),
        migrations.AlterUniqueTogether(
            name='relationmenusite',
            unique_together=set([('child', 'parent')]),
        ),
        migrations.AlterUniqueTogether(
            name='relationarticlesite',
            unique_together=set([('child', 'parent')]),
        ),
    ]