datatracker/ietf/doc/migrations/0001_initial.py
Jennifer Richards 6b826fd985
refactor: Purge old migrations and update ci to build on a clean schema (#5431)
* refactor: Remove all existing migrations

* refactor: Create clean set of migrations

* chore: Skip check_statetype_slugs when DB is not yet populated

* fix: Do not cache active_groups_menu on module import

* fix: Do not patch timezone awareness out of oidc-provider

* refactor: Migrate to create postgres schema, only use pgloader for data

* ci: Use migration scripts from feat/pg-migrations branch

* Revert "ci: Use migration scripts from feat/pg-migrations branch"

This reverts commit c82f64c614241ccede4865a50d494725c8a47c15.

* ci: Run check before migrate

* fix: Remove redundant migration caused by merge error

* chore: Add casts/ALTER TABLEs to eliminate pgloader errors/warnings

* chore: Change schema name to match docker image assumptions

* chore: Clear out schema so we get a clean start in case of a retry
2023-03-28 18:06:07 +09:00

369 lines
22 KiB
Python

# Generated by Django 2.2.28 on 2023-03-20 19:22
import django.core.validators
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
import ietf.utils.models
class Migration(migrations.Migration):
initial = True
dependencies = [
('name', '0001_initial'),
('person', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='BallotType',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('slug', models.SlugField()),
('name', models.CharField(max_length=255)),
('question', models.TextField(blank=True)),
('used', models.BooleanField(default=True)),
('order', models.IntegerField(default=0)),
],
options={
'ordering': ['order'],
},
),
migrations.CreateModel(
name='DeletedEvent',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('json', models.TextField(help_text='Deleted object in JSON format, with attribute names chosen to be suitable for passing into the relevant create method.')),
('time', models.DateTimeField(default=django.utils.timezone.now)),
],
),
migrations.CreateModel(
name='DocAlias',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=255, unique=True)),
],
options={
'verbose_name': 'document alias',
'verbose_name_plural': 'document aliases',
},
),
migrations.CreateModel(
name='DocEvent',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('time', models.DateTimeField(db_index=True, default=django.utils.timezone.now, help_text='When the event happened')),
('type', models.CharField(choices=[('new_revision', 'Added new revision'), ('new_submission', 'Uploaded new revision'), ('changed_document', 'Changed document metadata'), ('added_comment', 'Added comment'), ('added_message', 'Added message'), ('edited_authors', 'Edited the documents author list'), ('deleted', 'Deleted document'), ('changed_state', 'Changed state'), ('changed_stream', 'Changed document stream'), ('expired_document', 'Expired document'), ('extended_expiry', 'Extended expiry of document'), ('requested_resurrect', 'Requested resurrect'), ('completed_resurrect', 'Completed resurrect'), ('changed_consensus', 'Changed consensus'), ('published_rfc', 'Published RFC'), ('added_suggested_replaces', 'Added suggested replacement relationships'), ('reviewed_suggested_replaces', 'Reviewed suggested replacement relationships'), ('changed_action_holders', 'Changed action holders for document'), ('changed_group', 'Changed group'), ('changed_protocol_writeup', 'Changed protocol writeup'), ('changed_charter_milestone', 'Changed charter milestone'), ('initial_review', 'Set initial review time'), ('changed_review_announcement', 'Changed WG Review text'), ('changed_action_announcement', 'Changed WG Action text'), ('started_iesg_process', 'Started IESG process on document'), ('created_ballot', 'Created ballot'), ('closed_ballot', 'Closed ballot'), ('sent_ballot_announcement', 'Sent ballot announcement'), ('changed_ballot_position', 'Changed ballot position'), ('changed_ballot_approval_text', 'Changed ballot approval text'), ('changed_ballot_writeup_text', 'Changed ballot writeup text'), ('changed_rfc_editor_note_text', 'Changed RFC Editor Note text'), ('changed_last_call_text', 'Changed last call text'), ('requested_last_call', 'Requested last call'), ('sent_last_call', 'Sent last call'), ('scheduled_for_telechat', 'Scheduled for telechat'), ('iesg_approved', 'IESG approved document (no problem)'), ('iesg_disapproved', 'IESG disapproved document (do not publish)'), ('approved_in_minute', 'Approved in minute'), ('iana_review', 'IANA review comment'), ('rfc_in_iana_registry', 'RFC is in IANA registry'), ('rfc_editor_received_announcement', 'Announcement was received by RFC Editor'), ('requested_publication', 'Publication at RFC Editor requested'), ('sync_from_rfc_editor', 'Received updated information from RFC Editor'), ('requested_review', 'Requested review'), ('assigned_review_request', 'Assigned review request'), ('closed_review_request', 'Closed review request'), ('closed_review_assignment', 'Closed review assignment'), ('downref_approved', 'Downref approved'), ('posted_related_ipr', 'Posted related IPR'), ('removed_related_ipr', 'Removed related IPR'), ('changed_editors', 'Changed BOF Request editors')], max_length=50)),
('rev', models.CharField(blank=True, max_length=16, null=True, verbose_name='revision')),
('desc', models.TextField()),
],
options={
'ordering': ['-time', '-id'],
},
),
migrations.CreateModel(
name='DocExtResource',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('display_name', models.CharField(blank=True, default='', max_length=255)),
('value', models.CharField(max_length=2083)),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='DocHistory',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('time', models.DateTimeField(default=django.utils.timezone.now)),
('title', models.CharField(max_length=255, validators=[django.core.validators.RegexValidator(message='Please enter a string without control characters.', regex='^[^\x00-\x1f]*$')])),
('abstract', models.TextField(blank=True)),
('rev', models.CharField(blank=True, max_length=16, verbose_name='revision')),
('pages', models.IntegerField(blank=True, null=True)),
('words', models.IntegerField(blank=True, null=True)),
('order', models.IntegerField(blank=True, default=1)),
('expires', models.DateTimeField(blank=True, null=True)),
('notify', models.TextField(blank=True, max_length=1023)),
('external_url', models.URLField(blank=True)),
('uploaded_filename', models.TextField(blank=True)),
('note', models.TextField(blank=True)),
('internal_comments', models.TextField(blank=True)),
('name', models.CharField(max_length=255)),
],
options={
'verbose_name': 'document history',
'verbose_name_plural': 'document histories',
},
),
migrations.CreateModel(
name='DocHistoryAuthor',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('affiliation', models.CharField(blank=True, help_text='Organization/company used by author for submission', max_length=100)),
('country', models.CharField(blank=True, help_text='Country used by author for submission', max_length=255)),
('order', models.IntegerField(default=1)),
],
options={
'ordering': ['document', 'order'],
'abstract': False,
},
),
migrations.CreateModel(
name='DocReminder',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('due', models.DateTimeField()),
('active', models.BooleanField(default=True)),
],
),
migrations.CreateModel(
name='Document',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('time', models.DateTimeField(default=django.utils.timezone.now)),
('title', models.CharField(max_length=255, validators=[django.core.validators.RegexValidator(message='Please enter a string without control characters.', regex='^[^\x00-\x1f]*$')])),
('abstract', models.TextField(blank=True)),
('rev', models.CharField(blank=True, max_length=16, verbose_name='revision')),
('pages', models.IntegerField(blank=True, null=True)),
('words', models.IntegerField(blank=True, null=True)),
('order', models.IntegerField(blank=True, default=1)),
('expires', models.DateTimeField(blank=True, null=True)),
('notify', models.TextField(blank=True, max_length=1023)),
('external_url', models.URLField(blank=True)),
('uploaded_filename', models.TextField(blank=True)),
('note', models.TextField(blank=True)),
('internal_comments', models.TextField(blank=True)),
('name', models.CharField(max_length=255, unique=True, validators=[django.core.validators.RegexValidator('^[-a-z0-9]+$', 'Provide a valid document name consisting of lowercase letters, numbers and hyphens.', 'invalid')])),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='StateType',
fields=[
('slug', models.CharField(max_length=30, primary_key=True, serialize=False)),
('label', models.CharField(help_text='Label that should be used (e.g. in admin) for state drop-down for this type of state', max_length=255)),
],
),
migrations.CreateModel(
name='AddedMessageEvent',
fields=[
('docevent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='doc.DocEvent')),
('msgtype', models.CharField(max_length=25)),
],
bases=('doc.docevent',),
),
migrations.CreateModel(
name='BallotDocEvent',
fields=[
('docevent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='doc.DocEvent')),
],
bases=('doc.docevent',),
),
migrations.CreateModel(
name='BallotPositionDocEvent',
fields=[
('docevent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='doc.DocEvent')),
('discuss', models.TextField(blank=True, help_text='Discuss text if position is discuss')),
('discuss_time', models.DateTimeField(blank=True, help_text='Time discuss text was written', null=True)),
('comment', models.TextField(blank=True, help_text='Optional comment')),
('comment_time', models.DateTimeField(blank=True, help_text='Time optional comment was written', null=True)),
('send_email', models.BooleanField(default=None, null=True)),
],
bases=('doc.docevent',),
),
migrations.CreateModel(
name='BofreqEditorDocEvent',
fields=[
('docevent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='doc.DocEvent')),
],
bases=('doc.docevent',),
),
migrations.CreateModel(
name='BofreqResponsibleDocEvent',
fields=[
('docevent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='doc.DocEvent')),
],
bases=('doc.docevent',),
),
migrations.CreateModel(
name='ConsensusDocEvent',
fields=[
('docevent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='doc.DocEvent')),
('consensus', models.BooleanField(default=None, null=True)),
],
bases=('doc.docevent',),
),
migrations.CreateModel(
name='EditedAuthorsDocEvent',
fields=[
('docevent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='doc.DocEvent')),
('basis', models.CharField(help_text='What is the source or reasoning for the changes to the author list', max_length=255)),
],
bases=('doc.docevent',),
),
migrations.CreateModel(
name='IanaExpertDocEvent',
fields=[
('docevent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='doc.DocEvent')),
],
bases=('doc.docevent',),
),
migrations.CreateModel(
name='InitialReviewDocEvent',
fields=[
('docevent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='doc.DocEvent')),
('expires', models.DateTimeField(blank=True, null=True)),
],
bases=('doc.docevent',),
),
migrations.CreateModel(
name='LastCallDocEvent',
fields=[
('docevent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='doc.DocEvent')),
('expires', models.DateTimeField(blank=True, null=True)),
],
bases=('doc.docevent',),
),
migrations.CreateModel(
name='NewRevisionDocEvent',
fields=[
('docevent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='doc.DocEvent')),
],
bases=('doc.docevent',),
),
migrations.CreateModel(
name='ReviewAssignmentDocEvent',
fields=[
('docevent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='doc.DocEvent')),
],
bases=('doc.docevent',),
),
migrations.CreateModel(
name='ReviewRequestDocEvent',
fields=[
('docevent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='doc.DocEvent')),
],
bases=('doc.docevent',),
),
migrations.CreateModel(
name='StateDocEvent',
fields=[
('docevent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='doc.DocEvent')),
],
bases=('doc.docevent',),
),
migrations.CreateModel(
name='SubmissionDocEvent',
fields=[
('docevent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='doc.DocEvent')),
],
bases=('doc.docevent',),
),
migrations.CreateModel(
name='TelechatDocEvent',
fields=[
('docevent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='doc.DocEvent')),
('telechat_date', models.DateField(blank=True, null=True)),
('returning_item', models.BooleanField(default=False)),
],
bases=('doc.docevent',),
),
migrations.CreateModel(
name='WriteupDocEvent',
fields=[
('docevent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='doc.DocEvent')),
('text', models.TextField(blank=True)),
],
bases=('doc.docevent',),
),
migrations.CreateModel(
name='State',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('slug', models.SlugField()),
('name', models.CharField(max_length=255)),
('used', models.BooleanField(default=True)),
('desc', models.TextField(blank=True)),
('order', models.IntegerField(default=0)),
('next_states', models.ManyToManyField(blank=True, related_name='previous_states', to='doc.State')),
('type', ietf.utils.models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='doc.StateType')),
],
options={
'ordering': ['type', 'order'],
},
),
migrations.CreateModel(
name='RelatedDocument',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('relationship', ietf.utils.models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='name.DocRelationshipName')),
('source', ietf.utils.models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='doc.Document')),
('target', ietf.utils.models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='doc.DocAlias')),
],
),
migrations.CreateModel(
name='RelatedDocHistory',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('relationship', ietf.utils.models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='name.DocRelationshipName')),
('source', ietf.utils.models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='doc.DocHistory')),
('target', ietf.utils.models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reversely_related_document_history_set', to='doc.DocAlias')),
],
),
migrations.CreateModel(
name='DocumentURL',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('desc', models.CharField(blank=True, default='', max_length=255)),
('url', models.URLField(max_length=2083)),
('doc', ietf.utils.models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='doc.Document')),
('tag', ietf.utils.models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='name.DocUrlTagName')),
],
),
migrations.CreateModel(
name='DocumentAuthor',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('affiliation', models.CharField(blank=True, help_text='Organization/company used by author for submission', max_length=100)),
('country', models.CharField(blank=True, help_text='Country used by author for submission', max_length=255)),
('order', models.IntegerField(default=1)),
('document', ietf.utils.models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='doc.Document')),
('email', ietf.utils.models.ForeignKey(blank=True, help_text='Email address used by author for submission', null=True, on_delete=django.db.models.deletion.CASCADE, to='person.Email')),
('person', ietf.utils.models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='person.Person')),
],
options={
'ordering': ['document', 'order'],
'abstract': False,
},
),
migrations.CreateModel(
name='DocumentActionHolder',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('time_added', models.DateTimeField(default=django.utils.timezone.now)),
('document', ietf.utils.models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='doc.Document')),
('person', ietf.utils.models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='person.Person')),
],
),
migrations.AddField(
model_name='document',
name='action_holders',
field=models.ManyToManyField(blank=True, through='doc.DocumentActionHolder', to='person.Person'),
),
migrations.AddField(
model_name='document',
name='ad',
field=ietf.utils.models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ad_document_set', to='person.Person', verbose_name='area director'),
),
migrations.AddField(
model_name='document',
name='formal_languages',
field=models.ManyToManyField(blank=True, help_text='Formal languages used in document', to='name.FormalLanguageName'),
),
]