class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name='CeleryTask', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('root_id', models.UUIDField()), ('name', models.CharField(max_length=256)), ('state', models.CharField(choices=[('PENDING', 'Pending'), ('STARTED', 'Started'), ('SUCCESS', 'Success'), ('FAILURE', 'Failure'), ('RETRY', 'Retry')], default='PENDING', max_length=16)), ('result', common.models.JsonTextField(null=True)), ('date_start', models.DateTimeField(auto_now_add=True)), ('date_finished', models.DateTimeField(null=True)), ], ), ]
class Migration(migrations.Migration): dependencies = [ ('kubeops_api', '0075_auto_20200408_0803'), ] operations = [ migrations.CreateModel( name='CisLog', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('name', models.CharField(max_length=126, unique=True)), ('cluster_id', models.UUIDField(default=uuid.uuid4)), ('detail', common.models.JsonListTextField(default={})), ('result', common.models.JsonDictTextField(default={})), ('status', models.CharField(choices=[('FAILED', 'FAILED'), ('SUCCESS', 'SUCCESS')], default='FAILED', max_length=64)), ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date created')), ], ), ]
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name='RSVP', fields=[ ('first_seen', models.DateTimeField(default=common.models.utcnow)), ('created', models.DateTimeField(default=common.models.utcnow)), ('modified', models.DateTimeField(auto_now=True)), ('uuid', models.UUIDField(primary_key=True, serialize=False)), ('client_id', models.UUIDField()), ('rsvp', models.NullBooleanField()), ('details', models.TextField(default='')), ('email', models.CharField(max_length=255)), ], options={ 'abstract': False, }, ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Message', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('title', models.CharField(max_length=255)), ('sender', models.CharField(max_length=255)), ('content', models.TextField(max_length=65535)), ('date_created', models.DateTimeField(auto_now_add=True)), ('type', models.CharField(choices=[('SYSTEM', 'SYSTEM'), ('CLUSTER', 'CLUSTER')], default='SYSTEM', max_length=128)), ('level', models.CharField(choices=[('WARNING', 'WARNING'), ('ERROR', 'ERROR'), ('INFO', 'INFO')], default='INFO', max_length=64)), ], ), migrations.CreateModel( name='UserReceiver', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('type', models.CharField(choices=[('EMAIL', 'EMAIL'), ('LOCAL', 'LOCAL'), ('DINGTALK', 'DINGTALK'), ('WORKWEIXIN', 'WORKWEIXIN')], default='LOCAL', max_length=64)), ('vars', common.models.JsonDictTextField(default={})), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='UserNotificationConfig', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('vars', common.models.JsonDictTextField(default={})), ('type', models.CharField(choices=[('SYSTEM', 'SYSTEM'), ('CLUSTER', 'CLUSTER')], default='SYSTEM', max_length=128)), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='UserMessage', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('receive', models.CharField(max_length=64, null=True)), ('user_id', models.CharField(max_length=64, null=True)), ('send_type', models.CharField(choices=[('EMAIL', 'EMAIL'), ('LOCAL', 'LOCAL'), ('DINGTALK', 'DINGTALK'), ('WORKWEIXIN', 'WORKWEIXIN')], default='LOCAL', max_length=64)), ('receive_status', models.CharField(choices=[('SUCCESS', 'SUCCESS'), ('WAITING', 'WAITING'), ('FAILED', 'FAILED')], default='WAITING', max_length=64)), ('read_status', models.CharField(choices=[('READ', 'READ'), ('UNREAD', 'UNREAD')], default='UNREAD', max_length=64)), ('date_created', models.DateTimeField(auto_now_add=True)), ('message', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='message_center.Message')), ], ), ]
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name='CloudProviderTemplate', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('name', models.CharField(max_length=20, unique=True, verbose_name='Name')), ('meta', common.models.JsonTextField(blank=True, null=True, verbose_name='Meta')), ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date created')), ], ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='AuthToken', fields=[ ('uuid', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateField(auto_now=True)), ('key', models.CharField(default=common.models.random_token_32, editable=False, max_length=32)), ('user_agent', models.CharField(blank=True, max_length=512)), ('user', models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'ordering': ['-created_at'], 'abstract': False, }, ), ]
class Migration(migrations.Migration): dependencies = [ ('kubeops_api', '0015_deployexecution_steps'), ] operations = [ migrations.CreateModel( name='backup_storage', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('name', models.CharField(blank=True, max_length=128, null=True)), ('region', models.CharField(blank=True, max_length=128, null=True)), ('credentials', common.models.JsonDictTextField(blank=True, null=True)), ('type', models.CharField(choices=[('S3', 'S3'), ('OSS', 'OSS')], max_length=64)), ('status', models.CharField(choices=[('VALID1233', 'valid'), ('INVALID', 'invalid')], default='VALID1233', max_length=64)), ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date created')), ], ), ]
class Migration(migrations.Migration): dependencies = [ ('cloud_provider', '0001_initial'), ] operations = [ migrations.CreateModel( name='CloudProvider', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('name', models.CharField(max_length=128, unique=True)), ('vars', common.models.JsonDictTextField(default={})), ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date created')), ('template', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to='cloud_provider.CloudProviderTemplate')), ], ), ]
class Migration(migrations.Migration): dependencies = [ ('kubeops_api', '0029_auto_20191011_0358'), ] operations = [ migrations.CreateModel( name='ClusterHealthHistory', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('project_id', models.CharField(max_length=255)), ('available_rate', models.IntegerField(default=0)), ('date_type', models.CharField(choices=[('DAY', 'DAY'), ('HOUR', 'HOUR')], default='HOUR', max_length=255)), ('month', models.CharField(blank=True, max_length=255, null=True)), ('date_created', models.DateTimeField(auto_now_add=True)), ], ) ]
class Migration(migrations.Migration): dependencies = [ ('cloud_provider', '0010_auto_20190801_0307'), ] operations = [ migrations.CreateModel( name='Plan', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('name', models.CharField(max_length=20, unique=True, verbose_name='Name')), ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date created')), ('vars', common.models.JsonDictTextField(default={})), ('region', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='cloud_provider.Region')), ], ), migrations.RemoveField( model_name='zone', name='comment', ), migrations.AddField( model_name='plan', name='zones', field=models.ManyToManyField(to='cloud_provider.Zone'), ), ]
class Migration(migrations.Migration): dependencies = [ ('storage', '0007_auto_20191024_0442'), ] operations = [ migrations.CreateModel( name='CephStorage', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('name', models.CharField(max_length=255, unique=True)), ('vars', common.models.JsonDictTextField()), ('date_created', models.DateTimeField(auto_now_add=True)), ], ), ]
class Migration(migrations.Migration): dependencies = [ ('cloud_provider', '0007_auto_20190731_0424'), ] operations = [ migrations.CreateModel( name='Zone', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('name', models.CharField(max_length=20, unique=True, verbose_name='Name')), ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date created')), ('comment', models.CharField(blank=True, max_length=128, null=True, verbose_name='Comment')), ('vars', common.models.JsonDictTextField(default={})), ('cloud_zone', models.CharField(default=None, max_length=128, null=True)), ('region', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='cloud_provider.Region')), ], ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='AudioAsset', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now_add=True, verbose_name='created')), ('modified', models.DateTimeField(auto_now=True, verbose_name='last modified')), ('title', common.models.TruncatingCharField( blank=True, db_index=True, help_text= "If left empty, a title will be generated from the file's metadata.", max_length=255, verbose_name='title')), ('file_basename', models.CharField(max_length=512)), ('file', models.FileField( blank=True, help_text= 'You can provide either an uploaded audio file or a URL to an external asset.', max_length=512, upload_to=common.models.audio_asset_file_upload_to, verbose_name='audio file')), ('duration', models.DurationField(default=datetime.timedelta(0), verbose_name='Audio duration')), ('fingerprint', models.UUIDField(db_index=True, null=True)), ('status', models.CharField( choices=[('-', 'processing queued'), ('p', 'processing'), ('f', 'processing failed'), ('r', 'ready for play')], db_index=True, default='-', help_text= 'You will be able to edit this asset when status is "ready for play."', max_length=1, verbose_name='status')), ('task_id', models.UUIDField(null=True)), ('artist', common.models.TruncatingCharField( blank=True, help_text= "If left empty, an artist will be generated from the file's metadata.", max_length=255, verbose_name='artist')), ('album', common.models.TruncatingCharField( blank=True, help_text= "If left empty, an album will be generated from the file's metadata.", max_length=255, verbose_name='album')), ('title_normalized', common.models.TruncatingCharField(db_index=True, max_length=255)), ('artist_normalized', common.models.TruncatingCharField(db_index=True, max_length=255)), ('album_normalized', common.models.TruncatingCharField(db_index=True, max_length=255)), ('uploader', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='uploader')), ], options={ 'verbose_name': 'audio asset', 'verbose_name_plural': 'audio assets', 'ordering': ('title', 'artist', 'album', 'id'), }, bases=(dirtyfields.dirtyfields.DirtyFieldsMixin, models.Model), ), migrations.CreateModel( name='Rotator', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=100, unique=True, verbose_name='name')), ], options={ 'ordering': ('name', ), }, ), migrations.CreateModel( name='Stopset', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=100, unique=True, verbose_name='name')), ('weight', models.FloatField( default=1.0, help_text= "The weight (ie selection bias) for how likely random selection from this playlist/stopset occurs, eg '1.0' is just as likely as all others, '2.0' is 2x as likely, '3.0' is 3x as likely, '0.5' half as likely, and so on. If unsure, leave as '1.0'.", validators=[ django.core.validators.MinValueValidator(0.0) ], verbose_name='random weight')), ('is_active', models.BooleanField( default=True, help_text= 'Whether tracks from this playlist/stopset will be selected. You may want to enable special playlists/stopsets at certain times, for example during the holidays.', verbose_name='currently active')), ], options={ 'ordering': ('name', ), 'abstract': False, }, ), migrations.CreateModel( name='StopsetRotator', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('rotator', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='stopset_rotators', to='autodj.rotator')), ('stopset', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='stopset_rotators', to='autodj.stopset')), ], options={ 'verbose_name': 'rotator in stop set relationship', 'verbose_name_plural': 'rotator in stop set relationships', 'ordering': ('id', ), }, ), migrations.CreateModel( name='RotatorAsset', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now_add=True, verbose_name='created')), ('modified', models.DateTimeField(auto_now=True, verbose_name='last modified')), ('title', common.models.TruncatingCharField( blank=True, db_index=True, help_text= "If left empty, a title will be generated from the file's metadata.", max_length=255, verbose_name='title')), ('file_basename', models.CharField(max_length=512)), ('file', models.FileField( blank=True, help_text= 'You can provide either an uploaded audio file or a URL to an external asset.', max_length=512, upload_to=common.models.audio_asset_file_upload_to, verbose_name='audio file')), ('duration', models.DurationField(default=datetime.timedelta(0), verbose_name='Audio duration')), ('fingerprint', models.UUIDField(db_index=True, null=True)), ('status', models.CharField( choices=[('-', 'processing queued'), ('p', 'processing'), ('f', 'processing failed'), ('r', 'ready for play')], db_index=True, default='-', help_text= 'You will be able to edit this asset when status is "ready for play."', max_length=1, verbose_name='status')), ('task_id', models.UUIDField(null=True)), ('uploader', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='uploader')), ], options={ 'verbose_name': 'rotator asset', 'verbose_name_plural': 'rotator assets', 'ordering': ('title', 'id'), }, bases=(dirtyfields.dirtyfields.DirtyFieldsMixin, models.Model), ), migrations.AddField( model_name='rotator', name='rotator_assets', field=models.ManyToManyField(blank=True, db_index=True, related_name='rotators', to='autodj.RotatorAsset', verbose_name='rotator assets'), ), migrations.CreateModel( name='Playlist', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=100, unique=True, verbose_name='name')), ('weight', models.FloatField( default=1.0, help_text= "The weight (ie selection bias) for how likely random selection from this playlist/stopset occurs, eg '1.0' is just as likely as all others, '2.0' is 2x as likely, '3.0' is 3x as likely, '0.5' half as likely, and so on. If unsure, leave as '1.0'.", validators=[ django.core.validators.MinValueValidator(0.0) ], verbose_name='random weight')), ('is_active', models.BooleanField( default=True, help_text= 'Whether tracks from this playlist/stopset will be selected. You may want to enable special playlists/stopsets at certain times, for example during the holidays.', verbose_name='currently active')), ('audio_assets', models.ManyToManyField(blank=True, db_index=True, related_name='playlists', to='autodj.AudioAsset', verbose_name='audio assets')), ], options={ 'ordering': ('name', ), 'abstract': False, }, ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('auth', '0012_alter_user_first_name_max_length'), ] operations = [ migrations.CreateModel( name='User', fields=[ ('password', models.CharField(max_length=128, verbose_name='password')), ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), ('is_superuser', models.BooleanField( default=False, help_text= 'Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')), ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), ('is_staff', models.BooleanField( default=False, help_text= 'Designates whether the user can log into this admin site.', verbose_name='staff status')), ('is_active', models.BooleanField( default=True, help_text= 'Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('created_on', models.DateTimeField(auto_now_add=True)), ('updated_on', models.DateTimeField(auto_now=True)), ('email', models.EmailField(max_length=254, unique=True)), ('groups', models.ManyToManyField( blank=True, help_text= 'The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')), ('user_permissions', models.ManyToManyField( blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')), ], options={ 'verbose_name': 'user', 'verbose_name_plural': 'users', 'abstract': False, }, ), migrations.CreateModel( name='UserAction', fields=[ ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('created_on', models.DateTimeField(auto_now_add=True)), ('updated_on', models.DateTimeField(auto_now=True)), ('url', models.URLField(max_length=2083)), ('method', models.CharField(max_length=64)), ('url_name', models.CharField(max_length=256, null=True)), ('status_code', models.IntegerField()), ('user_agent', models.TextField(null=True)), ('user', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='user_actions', to=settings.AUTH_USER_MODEL)), ], options={ 'abstract': False, }, ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('auth', '0009_alter_user_last_name_max_length'), ] operations = [ migrations.CreateModel( name='User', fields=[ ('password', models.CharField(max_length=128, verbose_name='password')), ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), ('created', django_extensions.db.fields.CreationDateTimeField( auto_now_add=True, verbose_name='created')), ('modified', django_extensions.db.fields.ModificationDateTimeField( auto_now=True, verbose_name='modified')), ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('first_name', models.CharField(max_length=64, verbose_name='first name')), ('last_name', models.CharField(max_length=64, verbose_name='last name')), ('username', models.CharField(max_length=255, unique=True, verbose_name='username')), ('email', models.EmailField(blank=True, max_length=255, verbose_name='email address')), ('mobile', models.CharField(blank=True, max_length=255, validators=[crm.validators.validate_mobile], verbose_name='mobile')), ('user_type', common.models.EnumField(choices=[ (crm.models.UserType('site_inactive'), 'site_inactive'), (crm.models.UserType('site_superuser'), 'site_superuser'), (crm.models.UserType('site_support'), 'site_support'), (crm.models.UserType('organization_inactive'), 'organization_inactive'), (crm.models.UserType('organization_administrator'), 'organization_administrator'), (crm.models.UserType('organization_member'), 'organization_member') ], max_length=64)), ('groups', models.ManyToManyField( blank=True, help_text= 'The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='Organization', fields=[ ('created', django_extensions.db.fields.CreationDateTimeField( auto_now_add=True, verbose_name='created')), ('modified', django_extensions.db.fields.ModificationDateTimeField( auto_now=True, verbose_name='modified')), ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('name', models.CharField(max_length=64)), ('slug', django_extensions.db.fields.AutoSlugField( blank=True, editable=False, populate_from=['name'])), ('use_email_id', models.BooleanField(default=True)), ], options={ 'ordering': ['created'], 'abstract': False, }, ), migrations.AddField( model_name='user', name='organization', field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='crm.Organization', verbose_name='organization'), ), migrations.AddField( model_name='user', 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'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name="Contact", fields=[ ( "id", models.UUIDField( default=uuid.uuid4, editable=False, primary_key=True, serialize=False, ), ), ("name", models.CharField(max_length=64)), ( "country", django_countries.fields.CountryField(max_length=2), ), ("city", models.CharField(max_length=32)), ], bases=(common.models.UUIDMixin, models.Model), ), migrations.CreateModel( name="Card", fields=[ ( "id", hashid_field.field.HashidAutoField( alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", editable=False, min_length=3, primary_key=True, serialize=False, verbose_name="Readable postcard ID", ), ), ("created_at", models.DateTimeField(auto_now_add=True)), ( "face", models.ImageField( blank=True, upload_to=postcards.models.face_upload_path, verbose_name="Postcard face design", ), ), ( "from_country", django_countries.fields.CountryField(max_length=2), ), ("from_city", models.CharField(max_length=32)), ("received_at", models.DateTimeField(blank=True, null=True)), ("sent_at", models.DateTimeField(null=True)), ( "to", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="cards", to="postcards.Contact", verbose_name="Receiver", ), ), ], ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('crm', '0001_initial'), ] operations = [ migrations.CreateModel( name='Assignment', fields=[ ('created', django_extensions.db.fields.CreationDateTimeField( auto_now_add=True, verbose_name='created')), ('modified', django_extensions.db.fields.ModificationDateTimeField( auto_now=True, verbose_name='modified')), ('is_deleted', models.BooleanField(default=False)), ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('status', django_fsm.FSMField( choices=[(role_model.models.Status('formal'), 'formal'), (role_model.models.Status('ad_hoc'), 'ad_hoc'), (role_model.models.Status('adjunct'), 'adjunct') ], default=role_model.models.Status('formal'), max_length=50)), ], options={ 'base_manager_name': 'objects', }, ), migrations.CreateModel( name='ContentType', fields=[ ('created', django_extensions.db.fields.CreationDateTimeField( auto_now_add=True, verbose_name='created')), ('modified', django_extensions.db.fields.ModificationDateTimeField( auto_now=True, verbose_name='modified')), ('is_deleted', models.BooleanField(default=False)), ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ], options={ 'base_manager_name': 'objects', }, ), migrations.CreateModel( name='Deliverable', fields=[ ('created', django_extensions.db.fields.CreationDateTimeField( auto_now_add=True, verbose_name='created')), ('modified', django_extensions.db.fields.ModificationDateTimeField( auto_now=True, verbose_name='modified')), ('is_deleted', models.BooleanField(default=False)), ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('name', models.CharField(max_length=64)), ('slug', django_extensions.db.fields.AutoSlugField( blank=True, editable=False, populate_from=['name'])), ('organization', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='deliverables', to='crm.Organization')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='Facet', fields=[ ('created', django_extensions.db.fields.CreationDateTimeField( auto_now_add=True, verbose_name='created')), ('modified', django_extensions.db.fields.ModificationDateTimeField( auto_now=True, verbose_name='modified')), ('is_deleted', models.BooleanField(default=False)), ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('name', models.CharField(max_length=64)), ('slug', django_extensions.db.fields.AutoSlugField( blank=True, editable=False, populate_from=['name'])), ('deliverable', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='facets', to='role_model.Deliverable')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='Format', fields=[ ('created', django_extensions.db.fields.CreationDateTimeField( auto_now_add=True, verbose_name='created')), ('modified', django_extensions.db.fields.ModificationDateTimeField( auto_now=True, verbose_name='modified')), ('is_deleted', models.BooleanField(default=False)), ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('name', models.CharField(max_length=64)), ('slug', django_extensions.db.fields.AutoSlugField( blank=True, editable=False, populate_from=['name'])), ('description', models.TextField(max_length=1024)), ('deliverable', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='formats', to='role_model.Deliverable')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='Group', fields=[ ('created', django_extensions.db.fields.CreationDateTimeField( auto_now_add=True, verbose_name='created')), ('modified', django_extensions.db.fields.ModificationDateTimeField( auto_now=True, verbose_name='modified')), ('is_deleted', models.BooleanField(default=False)), ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('name', models.CharField(max_length=64)), ('slug', django_extensions.db.fields.AutoSlugField( blank=True, editable=False, populate_from=['name'])), ('organization', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='groups', to='crm.Organization')), ], options={ 'base_manager_name': 'objects', }, ), migrations.CreateModel( name='Responsibility', fields=[ ('created', django_extensions.db.fields.CreationDateTimeField( auto_now_add=True, verbose_name='created')), ('modified', django_extensions.db.fields.ModificationDateTimeField( auto_now=True, verbose_name='modified')), ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('operator', common.models.EnumField(choices=[ (role_model.models.Operator('transform'), 'transform'), (role_model.models.Operator('reduce'), 'reduce'), (role_model.models.Operator('sort'), 'sort'), (role_model.models.Operator('filter'), 'filter'), (role_model.models.Operator('combine'), 'combine') ], max_length=64)), ], options={ 'verbose_name_plural': 'responsibilities', 'base_manager_name': 'objects', }, ), migrations.CreateModel( name='ResponsibilityInputType', fields=[ ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='role_model.ContentType')), ('responsibility', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='role_model.Responsibility')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='Role', fields=[ ('created', django_extensions.db.fields.CreationDateTimeField( auto_now_add=True, verbose_name='created')), ('modified', django_extensions.db.fields.ModificationDateTimeField( auto_now=True, verbose_name='modified')), ('is_deleted', models.BooleanField(default=False)), ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('name', models.CharField(max_length=64)), ('slug', django_extensions.db.fields.AutoSlugField( blank=True, editable=False, populate_from=['name'])), ('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='roles', to='role_model.Group')), ('responsibilities', models.ManyToManyField(through='role_model.Assignment', to='role_model.Responsibility')), ('users', models.ManyToManyField(to=settings.AUTH_USER_MODEL)), ], options={ 'base_manager_name': 'objects', }, ), migrations.AddField( model_name='responsibility', name='input_types', field=models.ManyToManyField( related_name='outputs', through='role_model.ResponsibilityInputType', to='role_model.ContentType'), ), migrations.AddField( model_name='responsibility', name='organization', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='responsibilitys', to='crm.Organization'), ), migrations.AddField( model_name='responsibility', name='output_type', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='inputs', to='role_model.ContentType'), ), migrations.AddField( model_name='contenttype', name='deliverable', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='content_types', to='role_model.Deliverable'), ), migrations.AddField( model_name='contenttype', name='facet', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='content_types', to='role_model.Facet'), ), migrations.AddField( model_name='contenttype', name='format', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='content_types', to='role_model.Format'), ), migrations.AddField( model_name='contenttype', name='group', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='content_types', to='role_model.Group'), ), migrations.AddField( model_name='assignment', name='responsibility', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='assignments', to='role_model.Responsibility'), ), migrations.AddField( model_name='assignment', name='role', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name='assignments', to='role_model.Role'), ), migrations.AlterUniqueTogether( name='assignment', unique_together={('role', 'responsibility')}, ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('ansible_api', '0002_auto_20190305_0555'), ] operations = [ migrations.CreateModel( name='AuthTemplate', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=128, verbose_name='名称')), ('meta', common.models.JsonTextField(blank=True, null=True, verbose_name='Meta')), ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date created')), ], ), migrations.CreateModel( name='Cluster', fields=[ ('project_ptr', models.OneToOneField( auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='ansible_api.Project')), ('template', models.CharField(blank=True, default='', max_length=64)), ('status', models.CharField(choices=[('RUNNING', 'running'), ('INSTALLING', 'installing'), ('UNKNOWN', 'unknown'), ('ERROR', 'error'), ('WARNING', 'warning')], default='UNKNOWN', max_length=128)), ('auth_template', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to='kubeops_api.AuthTemplate')), ], bases=('ansible_api.project', ), ), migrations.CreateModel( name='DeployExecution', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('timedelta', models.FloatField(default=0.0, null=True, verbose_name='Time')), ('state', models.CharField(choices=[('PENDING', 'Pending'), ('STARTED', 'Started'), ('SUCCESS', 'Success'), ('FAILURE', 'Failure'), ('RETRY', 'Retry')], default='PENDING', max_length=16)), ('num', models.IntegerField(default=1)), ('result_summary', common.models.JsonDictTextField( blank=True, default={}, null=True, verbose_name='Result summary')), ('result_raw', common.models.JsonDictTextField(blank=True, default={}, null=True, verbose_name='Result raw')), ('date_created', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Create time')), ('date_start', models.DateTimeField(null=True, verbose_name='Start time')), ('date_end', models.DateTimeField(null=True, verbose_name='End time')), ('operation', models.CharField(max_length=128)), ('progress', models.FloatField(default=0)), ('current_play', models.CharField(default=None, max_length=512, null=True)), ], options={ 'ordering': ('-date_created', ), 'get_latest_by': 'date_created', }, ), migrations.CreateModel( name='Host', fields=[ ('ip', models.GenericIPAddressField(null=True)), ('port', models.IntegerField(default=22)), ('username', models.CharField(default='root', max_length=256)), ('password', common.models.EncryptCharField(blank=True, max_length=4096, null=True)), ('private_key', common.models.EncryptCharField(blank=True, max_length=8192, null=True)), ('vars', common.models.JsonDictTextField(default={})), ('meta', common.models.JsonDictTextField(default={})), ('comment', models.TextField(blank=True)), ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('name', models.CharField( max_length=128, unique=True, validators=[ django.core.validators.RegexValidator( message= 'Enter a valid name consisting of Unicode letters, numbers, underscores, or hyphens, or dot', regex='^[a-zA-Z0-9_\\-\\.]+$') ])), ], options={ 'ordering': ('name', ), }, ), migrations.CreateModel( name='HostInfo', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('memory', models.BigIntegerField(default=0)), ('os', models.CharField(default='', max_length=128)), ('os_version', models.CharField(default='', max_length=128)), ('cpu_core', models.IntegerField(default=0)), ('date_created', models.DateTimeField(auto_now_add=True)), ('host', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='infos', to='kubeops_api.Host')), ], options={ 'get_latest_by': 'date_created', }, ), migrations.CreateModel( name='Node', fields=[ ('host_ptr', models.OneToOneField( auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='ansible_api.Host')), ('host', models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='host', to='kubeops_api.Host')), ], options={ 'abstract': False, }, bases=('ansible_api.host', ), ), migrations.CreateModel( name='Package', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('name', models.CharField(max_length=20, unique=True, verbose_name='Name')), ('meta', common.models.JsonTextField(blank=True, null=True, verbose_name='Meta')), ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date created')), ], options={ 'verbose_name': 'Package', }, ), migrations.CreateModel( name='Setting', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('key', models.CharField(max_length=128)), ('value', models.CharField(blank=True, default=None, max_length=255, null=True)), ('name', models.CharField(max_length=128)), ('helper', models.CharField(blank=True, max_length=255)), ('order', models.IntegerField(default=0)), ], ), migrations.CreateModel( name='Storage', fields=[ ('project_ptr', models.OneToOneField( auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='ansible_api.Project')), ('vars', common.models.JsonDictTextField(blank=True, default={}, null=True, verbose_name='Vars')), ('status', models.CharField(choices=[('RUNNING', 'running'), ('UNKNOWN', 'unknown'), ('ERROR', 'error'), ('CHECKING', 'checking')], default='UNKNOWN', max_length=128)), ], bases=('ansible_api.project', ), ), migrations.CreateModel( name='StorageNode', fields=[ ('host_ptr', models.OneToOneField( auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='ansible_api.Host')), ('status', models.CharField(choices=[('RUNNING', 'running'), ('UNKNOWN', 'unknown'), ('ERROR', 'error')], default='UNKNOWN', max_length=128)), ('message', models.TextField(default=None, null=True)), ], options={ 'abstract': False, }, bases=('ansible_api.host', ), ), migrations.CreateModel( name='StorageTemplate', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=128, verbose_name='名称')), ('meta', common.models.JsonDictTextField(blank=True, null=True)), ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date created')), ], ), migrations.CreateModel( name='Volume', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('name', models.CharField(max_length=128)), ('size', models.CharField(max_length=16)), ], options={ 'ordering': ('size', ), }, ), migrations.CreateModel( name='Role', fields=[], options={ 'proxy': True, 'indexes': [], }, bases=('ansible_api.group', ), ), migrations.AddField( model_name='storage', name='nodes', field=models.ManyToManyField(to='kubeops_api.StorageNode'), ), migrations.AddField( model_name='storage', name='template', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to='kubeops_api.StorageTemplate'), ), migrations.AddField( model_name='hostinfo', name='volumes', field=models.ManyToManyField(to='kubeops_api.Volume'), ), migrations.AddField( model_name='host', name='node', field=models.ForeignKey( default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='node', to='kubeops_api.Node'), ), migrations.AddField( model_name='deployexecution', name='project', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to='ansible_api.Project'), ), migrations.AddField( model_name='cluster', name='package', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to='kubeops_api.Package'), ), migrations.AddField( model_name='cluster', name='persistent_storage', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to='kubeops_api.Storage'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [("auth", "0011_update_proxy_permissions")] operations = [ migrations.CreateModel( name="User", fields=[ ( "id", models.UUIDField( default=uuid.uuid4, editable=False, primary_key=True, serialize=False, ), ), ( "password", models.CharField(max_length=128, verbose_name="password"), ), ( "last_login", models.DateTimeField(blank=True, null=True, verbose_name="last login"), ), ( "is_superuser", models.BooleanField( default=False, help_text="Designates that this user has all" " permissions without explicitly" " assigning them.", verbose_name="superuser status", ), ), ("email", models.EmailField(max_length=255, unique=True)), ( "name", models.CharField(blank=True, max_length=255, null=True), ), ("is_active", models.BooleanField(default=True)), ("is_staff", models.BooleanField(default=False)), ("date_joined", models.DateTimeField(auto_now_add=True)), ( "groups", models.ManyToManyField( blank=True, help_text="The groups this user belongs to. A user" " will get all permissions granted to each" " of their groups.", related_name="user_set", related_query_name="user", to="auth.Group", verbose_name="groups", ), ), ( "user_permissions", models.ManyToManyField( blank=True, help_text="Specific permissions for this user.", related_name="user_set", related_query_name="user", to="auth.Permission", verbose_name="user permissions", ), ), ], options={"abstract": False}, bases=(common.models.UUIDMixin, models.Model), ) ]
class Migration(migrations.Migration): initial = True dependencies = [ ('ansible_api', '0001_initial'), ] operations = [ migrations.CreateModel( name='Cluster', fields=[ ('project_ptr', models.OneToOneField( auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='ansible_api.Project')), ('template', models.CharField(blank=True, default='', max_length=64)), ], bases=('ansible_api.project', ), ), migrations.CreateModel( name='DeployExecution', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('timedelta', models.FloatField(default=0.0, null=True, verbose_name='Time')), ('state', models.CharField(choices=[('PENDING', 'Pending'), ('STARTED', 'Started'), ('SUCCESS', 'Success'), ('FAILURE', 'Failure'), ('RETRY', 'Retry')], default='PENDING', max_length=16)), ('num', models.IntegerField(default=1)), ('result_summary', common.models.JsonDictTextField( blank=True, default={}, null=True, verbose_name='Result summary')), ('result_raw', common.models.JsonDictTextField(blank=True, default={}, null=True, verbose_name='Result raw')), ('date_created', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Create time')), ('date_start', models.DateTimeField(null=True, verbose_name='Start time')), ('date_end', models.DateTimeField(null=True, verbose_name='End time')), ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ansible_api.Project')), ], options={ 'ordering': ('-date_created', ), 'get_latest_by': 'date_created', }, ), migrations.CreateModel( name='Package', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('name', models.CharField(max_length=20, unique=True, verbose_name='Name')), ('meta', common.models.JsonTextField(blank=True, null=True, verbose_name='Meta')), ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date created')), ], options={ 'verbose_name': 'Package', }, ), migrations.CreateModel( name='Node', fields=[], options={ 'proxy': True, 'indexes': [], }, bases=('ansible_api.host', ), ), migrations.CreateModel( name='Role', fields=[], options={ 'proxy': True, 'indexes': [], }, bases=('ansible_api.group', ), ), migrations.AddField( model_name='cluster', name='package', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to='openshift_api.Package'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('ansible_api', '0001_initial'), ] operations = [ migrations.CreateModel( name='Cluster', fields=[ ('project_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='ansible_api.Project')), ('template', models.CharField(blank=True, default='', max_length=64)), ('current_task_id', models.CharField(blank=True, default='', max_length=128)), ('is_super', models.BooleanField(default=False)), ], bases=('ansible_api.project',), ), migrations.CreateModel( name='DeployExecution', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('timedelta', models.FloatField(default=0.0, null=True, verbose_name='Time')), ('state', models.CharField(choices=[('PENDING', 'Pending'), ('STARTED', 'Started'), ('SUCCESS', 'Success'), ('FAILURE', 'Failure'), ('RETRY', 'Retry')], default='PENDING', max_length=16)), ('num', models.IntegerField(default=1)), ('result_summary', common.models.JsonDictTextField(blank=True, default={}, null=True, verbose_name='Result summary')), ('result_raw', common.models.JsonDictTextField(blank=True, default={}, null=True, verbose_name='Result raw')), ('date_created', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Create time')), ('date_start', models.DateTimeField(null=True, verbose_name='Start time')), ('date_end', models.DateTimeField(null=True, verbose_name='End time')), ('operation', models.CharField(blank=True, choices=[('install', 'install'), ('upgrade', 'upgrade'), ('uninstall', 'uninstall')], default='install', max_length=128)), ('current_task', models.CharField(blank=True, default=None, max_length=128, null=True)), ('progress', models.FloatField(blank=True, default=0.0, max_length=64, null=True)), ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ansible_api.Project')), ], options={ 'ordering': ('-date_created',), 'get_latest_by': 'date_created', }, ), migrations.CreateModel( name='Host', fields=[ ('name', models.CharField(max_length=256, validators=[django.core.validators.RegexValidator(message='Enter a valid name consisting of Unicode letters, numbers, underscores, or hyphens, or dot', regex='^[a-zA-Z0-9_\\-\\.]+$')])), ('ip', models.GenericIPAddressField(null=True)), ('port', models.IntegerField(default=22)), ('username', models.CharField(default='root', max_length=256)), ('password', common.models.EncryptCharField(blank=True, max_length=4096, null=True)), ('private_key', common.models.EncryptCharField(blank=True, max_length=8192, null=True)), ('vars', common.models.JsonDictTextField(default={})), ('meta', common.models.JsonDictTextField(default={})), ('comment', models.TextField(blank=True)), ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('memory', models.BigIntegerField(default=0)), ('os', models.CharField(default='', max_length=128)), ('os_version', models.CharField(default='', max_length=128)), ('cpu_core', models.IntegerField(default=0)), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='Node', fields=[ ('host_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='ansible_api.Host')), ('host', models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='host', to='openshift_api.Host')), ], options={ 'abstract': False, }, bases=('ansible_api.host',), ), migrations.CreateModel( name='Package', fields=[ ('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)), ('name', models.CharField(max_length=20, unique=True, verbose_name='Name')), ('meta', common.models.JsonTextField(blank=True, null=True, verbose_name='Meta')), ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date created')), ], options={ 'verbose_name': 'Package', }, ), migrations.CreateModel( name='Role', fields=[ ], options={ 'proxy': True, 'indexes': [], }, bases=('ansible_api.group',), ), migrations.AddField( model_name='host', name='node', field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='node', to='openshift_api.Node'), ), migrations.AddField( model_name='cluster', name='package', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='openshift_api.Package'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='BroadcastAsset', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now_add=True, verbose_name='created')), ('modified', models.DateTimeField(auto_now=True, verbose_name='last modified')), ('title', common.models.TruncatingCharField( blank=True, db_index=True, help_text= "If left empty, a title will be generated from the file's metadata.", max_length=255, verbose_name='title')), ('file_basename', models.CharField(max_length=512)), ('file', models.FileField( blank=True, help_text= 'You can provide either an uploaded audio file or a URL to an external asset.', max_length=512, upload_to=common.models.audio_asset_file_upload_to, verbose_name='audio file')), ('duration', models.DurationField(default=datetime.timedelta(0), verbose_name='Audio duration')), ('fingerprint', models.UUIDField(db_index=True, null=True)), ('status', models.CharField( choices=[('-', 'processing queued'), ('p', 'processing'), ('f', 'processing failed'), ('r', 'ready for play')], db_index=True, default='-', help_text= 'You will be able to edit this asset when status is "ready for play."', max_length=1, verbose_name='status')), ('task_id', models.UUIDField(null=True)), ('uploader', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='uploader')), ], options={ 'verbose_name': 'scheduled broadcast asset', 'verbose_name_plural': 'scheduled broadcast assets', 'ordering': ('title', 'id'), }, bases=(dirtyfields.dirtyfields.DirtyFieldsMixin, models.Model), ), migrations.CreateModel( name='Broadcast', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now_add=True, verbose_name='created')), ('modified', models.DateTimeField(auto_now=True, verbose_name='last modified')), ('scheduled_time', models.DateTimeField()), ('status', models.CharField(choices=[('-', 'to be queued'), ('q', 'queued for play'), ('p', 'played'), ('f', 'failed to play')], default='-', max_length=1)), ('task_id', models.UUIDField(null=True)), ('asset', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='broadcasts', to='broadcast.broadcastasset', verbose_name='broadcast asset')), ('creator', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='creator')), ], options={ 'verbose_name': 'scheduled broadcast', 'verbose_name_plural': 'scheduled broadcasts', 'ordering': ('-scheduled_time', ), }, ), ]