# 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")}
),
]