class Migration(migrations.Migration): dependencies = [ ('orchestra', '0044_auto_20160426_0044'), ] operations = [ migrations.CreateModel( name='CommunicationPreference', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('methods', bitfield.models.BitField( (('slack', 'Slack'), ('email', 'Email')), blank=True, default=None, null=True)), ('communication_type', models.IntegerField(choices=[(0, 'task_status_change')])), ('worker', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='orchestra.Worker')), ], bases=(orchestra.models.communication.mixins. CommunicationPreferenceMixin, models.Model), ), migrations.AlterUniqueTogether( # manually-reviewed name='communicationpreference', unique_together=set([('worker', 'communication_type')]), ), ]
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)), ], ), ]
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")}, ), ]
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')]), ), ]
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, \'&\', \'&\'), \'<\', \'<\'),\n \'>\', \'>\'), \'"\', \'"\'), \'\'\'\', \''\');\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), ), ]
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, '&', '&'), '<', '<'), '>', '>'), '"', '"'), '''', '''); $$ ; 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), ), ]
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'), ), ]
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): 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')]), ), ]