Source code for marsha.core.migrations.0001_initial_models

# Generated by Django 2.0.4 on 2018-05-07 12:27

from django.conf import settings
import django.contrib.auth.models
import django.contrib.auth.validators
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone


[docs]class Migration(migrations.Migration): initial = True dependencies = [("auth", "0009_alter_user_last_name_max_length")] operations = [ migrations.CreateModel( name="User", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("password", models.CharField(max_length=128, verbose_name="password")), ( "last_login", models.DateTimeField( blank=True, null=True, verbose_name="last login" ), ), ( "is_superuser", models.BooleanField( default=False, help_text="Designates that this user has all permissions without explicitly assigning them.", verbose_name="superuser status", ), ), ( "username", models.CharField( error_messages={ "unique": "A user with that username already exists." }, help_text="Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.", max_length=150, unique=True, validators=[ django.contrib.auth.validators.UnicodeUsernameValidator() ], verbose_name="username", ), ), ( "first_name", models.CharField( blank=True, max_length=30, verbose_name="first name" ), ), ( "last_name", models.CharField( blank=True, max_length=150, verbose_name="last name" ), ), ( "email", models.EmailField( blank=True, max_length=254, verbose_name="email address" ), ), ( "is_staff", models.BooleanField( default=False, help_text="Designates whether the user can log into this admin site.", verbose_name="staff status", ), ), ( "is_active", models.BooleanField( default=True, help_text="Designates whether this user should be treated as active. Unselect this instead of deleting accounts.", verbose_name="active", ), ), ( "date_joined", models.DateTimeField( default=django.utils.timezone.now, verbose_name="date joined" ), ), ( "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", "db_table": "user", }, managers=[("objects", django.contrib.auth.models.UserManager())], ), migrations.CreateModel( name="AudioTrack", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "language", models.CharField( choices=[("en", "english"), ("fr", "french")], help_text="language of this track", max_length=5, verbose_name="track language", ), ), ], options={ "verbose_name": "audio track", "verbose_name_plural": "audio tracks", "db_table": "audio_track", }, ), migrations.CreateModel( name="Authoring", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ) ], options={ "verbose_name": "author in organization", "verbose_name_plural": "authors in organizations", "db_table": "authoring", }, ), migrations.CreateModel( name="ConsumerSite", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "name", models.CharField( help_text="Name of the site", max_length=255, verbose_name="site", ), ), ], options={ "verbose_name": "site", "verbose_name_plural": "sites", "db_table": "consumer_site", }, ), migrations.CreateModel( name="Organization", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "name", models.CharField( help_text="name of the organization", max_length=255, verbose_name="organization", ), ), ( "authors", models.ManyToManyField( help_text="users able to manage playlists in this organization", related_name="author_organizations", through="core.Authoring", to=settings.AUTH_USER_MODEL, verbose_name="authors", ), ), ], options={ "verbose_name": "organization", "verbose_name_plural": "organizations", "db_table": "organization", }, ), migrations.CreateModel( name="OrganizationManager", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "organization", models.ForeignKey( help_text="organization managed by this user", on_delete=django.db.models.deletion.CASCADE, related_name="managers_links", to="core.Organization", verbose_name="organization", ), ), ( "user", models.ForeignKey( help_text="user managing this organization", on_delete=django.db.models.deletion.CASCADE, related_name="managed_organizations_links", to=settings.AUTH_USER_MODEL, verbose_name="manager", ), ), ], options={ "verbose_name": "organization manager", "verbose_name_plural": "organizations managers", "db_table": "organization_manager", }, ), migrations.CreateModel( name="Playlist", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "is_public", models.BooleanField( default=False, help_text="if this playlist can be viewed without any access control", verbose_name="is public", ), ), ( "author", models.ForeignKey( null=True, on_delete=django.db.models.deletion.PROTECT, related_name="created_playlists", to=settings.AUTH_USER_MODEL, ), ), ( "duplicated_from", models.ForeignKey( help_text="original playlist this one was duplicated from", null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="duplicates", to="core.Playlist", verbose_name="duplicate from", ), ), ], options={ "verbose_name": "playlist", "verbose_name_plural": "playlists", "db_table": "playlist", }, ), migrations.CreateModel( name="PlaylistAccess", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "playlist", models.ForeignKey( help_text="playlist the user has rights to manage", on_delete=django.db.models.deletion.CASCADE, related_name="users_accesses", to="core.Playlist", verbose_name="playlist", ), ), ( "user", models.ForeignKey( help_text="user having rights to manage this playlist", on_delete=django.db.models.deletion.CASCADE, related_name="playlists_accesses", to=settings.AUTH_USER_MODEL, verbose_name="user", ), ), ], options={ "verbose_name": "playlist access", "verbose_name_plural": "playlists accesses", "db_table": "playlist_access", }, ), migrations.CreateModel( name="PlaylistVideo", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "order", models.PositiveIntegerField( help_text="video order in the playlist", verbose_name="order" ), ), ( "playlist", models.ForeignKey( help_text="playlist containing this video", on_delete=django.db.models.deletion.CASCADE, related_name="videos_links", to="core.Playlist", verbose_name="playlist", ), ), ], options={ "verbose_name": "playlist video link", "verbose_name_plural": "playlist video links", "db_table": "playlist_video", }, ), migrations.CreateModel( name="SignTrack", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "language", models.CharField( choices=[("en", "english"), ("fr", "french")], help_text="language of this track", max_length=5, verbose_name="track language", ), ), ], options={ "verbose_name": "signs language track", "verbose_name_plural": "signs language tracks", "db_table": "sign_track", }, ), migrations.CreateModel( name="SiteAdmin", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "site", models.ForeignKey( help_text="site to which the user has access", on_delete=django.db.models.deletion.CASCADE, related_name="sites_admins", to="core.ConsumerSite", verbose_name="site", ), ), ( "user", models.ForeignKey( help_text="user with access to the site", on_delete=django.db.models.deletion.CASCADE, related_name="sites_admins", to=settings.AUTH_USER_MODEL, verbose_name="user", ), ), ], options={ "verbose_name": "site admin", "verbose_name_plural": "site admins", "db_table": "site_admin", }, ), migrations.CreateModel( name="SiteOrganization", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "organization", models.ForeignKey( help_text="organization in this site", on_delete=django.db.models.deletion.CASCADE, related_name="sites_links", to="core.Organization", verbose_name="organization", ), ), ( "site", models.ForeignKey( help_text="site having this organization", on_delete=django.db.models.deletion.CASCADE, related_name="organizations_links", to="core.ConsumerSite", verbose_name="site", ), ), ], options={ "verbose_name": "organization in site", "verbose_name_plural": "organizations in sites", "db_table": "site_organization", }, ), migrations.CreateModel( name="SubtitleTrack", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "language", models.CharField( choices=[("en", "english"), ("fr", "french")], help_text="language of this track", max_length=5, verbose_name="track language", ), ), ( "has_closed_captioning", models.BooleanField( default=False, help_text="if closed captioning (for death or hard of hearing viewers) is on for this subtitle track", verbose_name="closed captioning", ), ), ], options={ "verbose_name": "subtitles track", "verbose_name_plural": "subtitles tracks", "db_table": "subtitle_track", }, ), migrations.CreateModel( name="Video", fields=[ ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "language", models.CharField( choices=[("en", "english"), ("fr", "french")], help_text="language of the video", max_length=5, verbose_name="language", ), ), ( "author", models.ForeignKey( help_text="author of the video", null=True, on_delete=django.db.models.deletion.PROTECT, related_name="authored_videos", to=settings.AUTH_USER_MODEL, verbose_name="author", ), ), ( "duplicated_from", models.ForeignKey( help_text="original video this one was duplicated from", null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="duplicates", to="core.Video", verbose_name="duplicate from", ), ), ], options={ "verbose_name": "video", "verbose_name_plural": "videos", "db_table": "video", }, ), migrations.AddField( model_name="subtitletrack", name="video", field=models.ForeignKey( help_text="video for which this track is", on_delete=django.db.models.deletion.CASCADE, related_name="subtitletracks", to="core.Video", verbose_name="video", ), ), migrations.AddField( model_name="signtrack", name="video", field=models.ForeignKey( help_text="video for which this track is", on_delete=django.db.models.deletion.CASCADE, related_name="signtracks", to="core.Video", verbose_name="video", ), ), migrations.AddField( model_name="playlistvideo", name="video", field=models.ForeignKey( help_text="video contained in this playlist", on_delete=django.db.models.deletion.CASCADE, related_name="playlists_links", to="core.Video", verbose_name="video", ), ), migrations.AddField( model_name="playlist", name="editors", field=models.ManyToManyField( help_text="users allowed to manage this playlist", related_name="managed_playlists", through="core.PlaylistAccess", to=settings.AUTH_USER_MODEL, verbose_name="editors", ), ), migrations.AddField( model_name="playlist", name="organization", field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.PROTECT, related_name="playlists", to="core.Organization", ), ), migrations.AddField( model_name="playlist", name="videos", field=models.ManyToManyField( help_text="videos in this playlist", related_name="playlists", through="core.PlaylistVideo", to="core.Video", verbose_name="videos", ), ), migrations.AddField( model_name="organization", name="managers", field=models.ManyToManyField( help_text="users able to manage this organization", related_name="managed_organizations", through="core.OrganizationManager", to=settings.AUTH_USER_MODEL, verbose_name="managers", ), ), migrations.AddField( model_name="organization", name="sites", field=models.ManyToManyField( help_text="sites where this organization is present", related_name="organizations", through="core.SiteOrganization", to="core.ConsumerSite", verbose_name="sites", ), ), migrations.AddField( model_name="consumersite", name="admins", field=models.ManyToManyField( help_text="users able to manage this site", related_name="administrated_sites", through="core.SiteAdmin", to=settings.AUTH_USER_MODEL, verbose_name="administrators", ), ), migrations.AddField( model_name="authoring", name="organization", field=models.ForeignKey( help_text="organization on which the user is an author", on_delete=django.db.models.deletion.CASCADE, related_name="authoring", to="core.Organization", verbose_name="organization", ), ), migrations.AddField( model_name="authoring", name="user", field=models.ForeignKey( help_text="user having authoring access in this organization", on_delete=django.db.models.deletion.CASCADE, related_name="authoring", to=settings.AUTH_USER_MODEL, verbose_name="author", ), ), migrations.AddField( model_name="audiotrack", name="video", field=models.ForeignKey( help_text="video for which this track is", on_delete=django.db.models.deletion.CASCADE, related_name="audiotracks", to="core.Video", verbose_name="video", ), ), migrations.AlterUniqueTogether( name="subtitletrack", unique_together={("video", "language", "has_closed_captioning")}, ), migrations.AlterUniqueTogether( name="siteorganization", unique_together={("site", "organization")} ), migrations.AlterUniqueTogether( name="siteadmin", unique_together={("user", "site")} ), migrations.AlterUniqueTogether( name="signtrack", unique_together={("video", "language")} ), migrations.AlterUniqueTogether( name="playlistvideo", unique_together={("video", "playlist")} ), migrations.AlterUniqueTogether( name="playlistaccess", unique_together={("user", "playlist")} ), migrations.AlterUniqueTogether( name="organizationmanager", unique_together={("user", "organization")} ), migrations.AlterUniqueTogether( name="authoring", unique_together={("user", "organization")} ), migrations.AlterUniqueTogether( name="audiotrack", unique_together={("video", "language")} ), ]