mirror of
https://github.com/mediacms-io/mediacms.git
synced 2025-11-21 05:56:03 -05:00
MediaCMS backend, initial commit
This commit is contained in:
637
files/migrations/0001_initial.py
Normal file
637
files/migrations/0001_initial.py
Normal file
@@ -0,0 +1,637 @@
|
||||
# Generated by Django 3.1.4 on 2020-12-01 07:12
|
||||
|
||||
import django.contrib.postgres.search
|
||||
from django.db import migrations, models
|
||||
import files.models
|
||||
import imagekit.models.fields
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = []
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="Category",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("uid", models.UUIDField(default=uuid.uuid4, unique=True)),
|
||||
("add_date", models.DateTimeField(auto_now_add=True)),
|
||||
("title", models.CharField(db_index=True, max_length=100, unique=True)),
|
||||
("description", models.TextField(blank=True)),
|
||||
(
|
||||
"is_global",
|
||||
models.BooleanField(
|
||||
default=False, help_text="global categories or user specific"
|
||||
),
|
||||
),
|
||||
(
|
||||
"media_count",
|
||||
models.IntegerField(default=0, help_text="number of media"),
|
||||
),
|
||||
(
|
||||
"thumbnail",
|
||||
imagekit.models.fields.ProcessedImageField(
|
||||
blank=True, upload_to=files.models.category_thumb_path
|
||||
),
|
||||
),
|
||||
(
|
||||
"listings_thumbnail",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="Thumbnail to show on listings",
|
||||
max_length=400,
|
||||
null=True,
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name_plural": "Categories",
|
||||
"ordering": ["title"],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Comment",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("add_date", models.DateTimeField(auto_now_add=True)),
|
||||
("text", models.TextField(help_text="text")),
|
||||
("uid", models.UUIDField(default=uuid.uuid4, unique=True)),
|
||||
("lft", models.PositiveIntegerField(editable=False)),
|
||||
("rght", models.PositiveIntegerField(editable=False)),
|
||||
("tree_id", models.PositiveIntegerField(db_index=True, editable=False)),
|
||||
("level", models.PositiveIntegerField(editable=False)),
|
||||
],
|
||||
options={
|
||||
"abstract": False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="EncodeProfile",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("name", models.CharField(max_length=90)),
|
||||
(
|
||||
"extension",
|
||||
models.CharField(
|
||||
choices=[("mp4", "mp4"), ("webm", "webm"), ("gif", "gif")],
|
||||
max_length=10,
|
||||
),
|
||||
),
|
||||
(
|
||||
"resolution",
|
||||
models.IntegerField(
|
||||
blank=True,
|
||||
choices=[
|
||||
(2160, "2160"),
|
||||
(1440, "1440"),
|
||||
(1080, "1080"),
|
||||
(720, "720"),
|
||||
(480, "480"),
|
||||
(360, "360"),
|
||||
(240, "240"),
|
||||
],
|
||||
null=True,
|
||||
),
|
||||
),
|
||||
(
|
||||
"codec",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
choices=[("h265", "h265"), ("h264", "h264"), ("vp9", "vp9")],
|
||||
max_length=10,
|
||||
null=True,
|
||||
),
|
||||
),
|
||||
("description", models.TextField(blank=True, help_text="description")),
|
||||
("active", models.BooleanField(default=True)),
|
||||
],
|
||||
options={
|
||||
"ordering": ["resolution"],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Encoding",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("add_date", models.DateTimeField(auto_now_add=True)),
|
||||
("commands", models.TextField(blank=True, help_text="commands run")),
|
||||
(
|
||||
"chunk",
|
||||
models.BooleanField(
|
||||
db_index=True, default=False, help_text="is chunk?"
|
||||
),
|
||||
),
|
||||
("chunk_file_path", models.CharField(blank=True, max_length=400)),
|
||||
("chunks_info", models.TextField(blank=True)),
|
||||
("logs", models.TextField(blank=True)),
|
||||
("md5sum", models.CharField(blank=True, max_length=50, null=True)),
|
||||
(
|
||||
"media_file",
|
||||
models.FileField(
|
||||
blank=True,
|
||||
max_length=500,
|
||||
upload_to=files.models.encoding_media_file_path,
|
||||
verbose_name="encoding file",
|
||||
),
|
||||
),
|
||||
("progress", models.PositiveSmallIntegerField(default=0)),
|
||||
("update_date", models.DateTimeField(auto_now=True)),
|
||||
("retries", models.IntegerField(default=0)),
|
||||
("size", models.CharField(blank=True, max_length=20)),
|
||||
(
|
||||
"status",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("pending", "Pending"),
|
||||
("running", "Running"),
|
||||
("fail", "Fail"),
|
||||
("success", "Success"),
|
||||
],
|
||||
default="pending",
|
||||
max_length=20,
|
||||
),
|
||||
),
|
||||
("temp_file", models.CharField(blank=True, max_length=400)),
|
||||
("task_id", models.CharField(blank=True, max_length=100)),
|
||||
("total_run_time", models.IntegerField(default=0)),
|
||||
("worker", models.CharField(blank=True, max_length=100)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Language",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("code", models.CharField(help_text="language code", max_length=12)),
|
||||
("title", models.CharField(help_text="language code", max_length=100)),
|
||||
],
|
||||
options={
|
||||
"ordering": ["id"],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="License",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("title", models.CharField(max_length=100, unique=True)),
|
||||
("description", models.TextField(blank=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Media",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"add_date",
|
||||
models.DateTimeField(
|
||||
blank=True,
|
||||
db_index=True,
|
||||
null=True,
|
||||
verbose_name="Date produced",
|
||||
),
|
||||
),
|
||||
(
|
||||
"allow_download",
|
||||
models.BooleanField(
|
||||
default=True,
|
||||
help_text="Whether option to download media is shown",
|
||||
),
|
||||
),
|
||||
("description", models.TextField(blank=True)),
|
||||
("dislikes", models.IntegerField(default=0)),
|
||||
("duration", models.IntegerField(default=0)),
|
||||
("edit_date", models.DateTimeField(auto_now=True)),
|
||||
(
|
||||
"enable_comments",
|
||||
models.BooleanField(
|
||||
default=True,
|
||||
help_text="Whether comments will be allowed for this media",
|
||||
),
|
||||
),
|
||||
(
|
||||
"encoding_status",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("pending", "Pending"),
|
||||
("running", "Running"),
|
||||
("fail", "Fail"),
|
||||
("success", "Success"),
|
||||
],
|
||||
db_index=True,
|
||||
default="pending",
|
||||
max_length=20,
|
||||
),
|
||||
),
|
||||
(
|
||||
"featured",
|
||||
models.BooleanField(
|
||||
db_index=True,
|
||||
default=False,
|
||||
help_text="Whether media is globally featured by a MediaCMS editor",
|
||||
),
|
||||
),
|
||||
(
|
||||
"friendly_token",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
db_index=True,
|
||||
help_text="Identifier for the Media",
|
||||
max_length=12,
|
||||
),
|
||||
),
|
||||
(
|
||||
"hls_file",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="Path to HLS file for videos",
|
||||
max_length=1000,
|
||||
),
|
||||
),
|
||||
(
|
||||
"is_reviewed",
|
||||
models.BooleanField(
|
||||
db_index=True,
|
||||
default=True,
|
||||
help_text="Whether media is reviewed, so it can appear on public listings",
|
||||
),
|
||||
),
|
||||
("likes", models.IntegerField(db_index=True, default=1)),
|
||||
(
|
||||
"listable",
|
||||
models.BooleanField(
|
||||
default=False, help_text="Whether it will appear on listings"
|
||||
),
|
||||
),
|
||||
(
|
||||
"md5sum",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="Not exposed, used internally",
|
||||
max_length=50,
|
||||
null=True,
|
||||
),
|
||||
),
|
||||
(
|
||||
"media_file",
|
||||
models.FileField(
|
||||
help_text="media file",
|
||||
max_length=500,
|
||||
upload_to=files.models.original_media_file_path,
|
||||
verbose_name="media file",
|
||||
),
|
||||
),
|
||||
(
|
||||
"media_info",
|
||||
models.TextField(
|
||||
blank=True, help_text="extracted media metadata info"
|
||||
),
|
||||
),
|
||||
(
|
||||
"media_type",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
choices=[
|
||||
("video", "Video"),
|
||||
("image", "Image"),
|
||||
("pdf", "Pdf"),
|
||||
("audio", "Audio"),
|
||||
],
|
||||
db_index=True,
|
||||
default="video",
|
||||
max_length=20,
|
||||
),
|
||||
),
|
||||
(
|
||||
"password",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="password for private media",
|
||||
max_length=100,
|
||||
),
|
||||
),
|
||||
(
|
||||
"preview_file_path",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="preview gif for videos, path in filesystem",
|
||||
max_length=500,
|
||||
),
|
||||
),
|
||||
(
|
||||
"poster",
|
||||
imagekit.models.fields.ProcessedImageField(
|
||||
blank=True,
|
||||
help_text="media extracted big thumbnail, shown on media page",
|
||||
max_length=500,
|
||||
upload_to=files.models.original_thumbnail_file_path,
|
||||
),
|
||||
),
|
||||
(
|
||||
"reported_times",
|
||||
models.IntegerField(
|
||||
default=0, help_text="how many time a Medis is reported"
|
||||
),
|
||||
),
|
||||
(
|
||||
"search",
|
||||
django.contrib.postgres.search.SearchVectorField(
|
||||
help_text="used to store all searchable info and metadata for a Media",
|
||||
null=True,
|
||||
),
|
||||
),
|
||||
(
|
||||
"size",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
help_text="media size in bytes, automatically calculated",
|
||||
max_length=20,
|
||||
null=True,
|
||||
),
|
||||
),
|
||||
(
|
||||
"sprites",
|
||||
models.FileField(
|
||||
blank=True,
|
||||
help_text="sprites file, only for videos, displayed on the video player",
|
||||
max_length=500,
|
||||
upload_to=files.models.original_thumbnail_file_path,
|
||||
),
|
||||
),
|
||||
(
|
||||
"state",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("private", "Private"),
|
||||
("public", "Public"),
|
||||
("unlisted", "Unlisted"),
|
||||
],
|
||||
db_index=True,
|
||||
default="public",
|
||||
help_text="state of Media",
|
||||
max_length=20,
|
||||
),
|
||||
),
|
||||
(
|
||||
"title",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
db_index=True,
|
||||
help_text="media title",
|
||||
max_length=100,
|
||||
),
|
||||
),
|
||||
(
|
||||
"thumbnail",
|
||||
imagekit.models.fields.ProcessedImageField(
|
||||
blank=True,
|
||||
help_text="media extracted small thumbnail, shown on listings",
|
||||
max_length=500,
|
||||
upload_to=files.models.original_thumbnail_file_path,
|
||||
),
|
||||
),
|
||||
(
|
||||
"thumbnail_time",
|
||||
models.FloatField(
|
||||
blank=True,
|
||||
help_text="Time on video that a thumbnail will be taken",
|
||||
null=True,
|
||||
),
|
||||
),
|
||||
(
|
||||
"uid",
|
||||
models.UUIDField(
|
||||
default=uuid.uuid4,
|
||||
help_text="A unique identifier for the Media",
|
||||
unique=True,
|
||||
),
|
||||
),
|
||||
(
|
||||
"uploaded_thumbnail",
|
||||
imagekit.models.fields.ProcessedImageField(
|
||||
blank=True,
|
||||
help_text="thumbnail from uploaded_poster field",
|
||||
max_length=500,
|
||||
upload_to=files.models.original_thumbnail_file_path,
|
||||
),
|
||||
),
|
||||
(
|
||||
"uploaded_poster",
|
||||
imagekit.models.fields.ProcessedImageField(
|
||||
blank=True,
|
||||
help_text="This image will characterize the media",
|
||||
max_length=500,
|
||||
upload_to=files.models.original_thumbnail_file_path,
|
||||
verbose_name="Upload image",
|
||||
),
|
||||
),
|
||||
(
|
||||
"user_featured",
|
||||
models.BooleanField(
|
||||
default=False, help_text="Featured by the user"
|
||||
),
|
||||
),
|
||||
("video_height", models.IntegerField(default=1)),
|
||||
("views", models.IntegerField(db_index=True, default=1)),
|
||||
],
|
||||
options={
|
||||
"ordering": ["-add_date"],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Playlist",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("add_date", models.DateTimeField(auto_now_add=True, db_index=True)),
|
||||
("description", models.TextField(blank=True, help_text="description")),
|
||||
(
|
||||
"friendly_token",
|
||||
models.CharField(blank=True, db_index=True, max_length=12),
|
||||
),
|
||||
("title", models.CharField(db_index=True, max_length=100)),
|
||||
("uid", models.UUIDField(default=uuid.uuid4, unique=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="PlaylistMedia",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("action_date", models.DateTimeField(auto_now=True)),
|
||||
("ordering", models.IntegerField(default=1)),
|
||||
],
|
||||
options={
|
||||
"ordering": ["ordering", "-action_date"],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Rating",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("add_date", models.DateTimeField(auto_now_add=True)),
|
||||
(
|
||||
"score",
|
||||
models.IntegerField(validators=[files.models.validate_rating]),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"verbose_name_plural": "Ratings",
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="RatingCategory",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("description", models.TextField(blank=True)),
|
||||
("enabled", models.BooleanField(default=True)),
|
||||
("title", models.CharField(db_index=True, max_length=200, unique=True)),
|
||||
],
|
||||
options={
|
||||
"verbose_name_plural": "Rating Categories",
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Subtitle",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"subtitle_file",
|
||||
models.FileField(
|
||||
help_text="File has to be WebVTT format",
|
||||
max_length=500,
|
||||
upload_to=files.models.subtitles_file_path,
|
||||
verbose_name="Subtitle/CC file",
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="Tag",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
("title", models.CharField(db_index=True, max_length=100, unique=True)),
|
||||
(
|
||||
"media_count",
|
||||
models.IntegerField(default=0, help_text="number of media"),
|
||||
),
|
||||
(
|
||||
"listings_thumbnail",
|
||||
models.CharField(
|
||||
blank=True,
|
||||
db_index=True,
|
||||
help_text="Thumbnail to show on listings",
|
||||
max_length=400,
|
||||
null=True,
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"ordering": ["title"],
|
||||
},
|
||||
),
|
||||
]
|
||||
240
files/migrations/0002_auto_20201201_0712.py
Normal file
240
files/migrations/0002_auto_20201201_0712.py
Normal file
@@ -0,0 +1,240 @@
|
||||
# Generated by Django 3.1.4 on 2020-12-01 07:12
|
||||
|
||||
from django.conf import settings
|
||||
import django.contrib.postgres.indexes
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import mptt.fields
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
("files", "0001_initial"),
|
||||
("users", "0001_initial"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="tag",
|
||||
name="user",
|
||||
field=models.ForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="subtitle",
|
||||
name="language",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="files.language"
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="subtitle",
|
||||
name="media",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="subtitles",
|
||||
to="files.media",
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="subtitle",
|
||||
name="user",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="rating",
|
||||
name="media",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="ratings",
|
||||
to="files.media",
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="rating",
|
||||
name="rating_category",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="files.ratingcategory"
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="rating",
|
||||
name="user",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="playlistmedia",
|
||||
name="media",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="files.media"
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="playlistmedia",
|
||||
name="playlist",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="files.playlist"
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="playlist",
|
||||
name="media",
|
||||
field=models.ManyToManyField(
|
||||
blank=True, through="files.PlaylistMedia", to="files.Media"
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="playlist",
|
||||
name="user",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="playlists",
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="media",
|
||||
name="category",
|
||||
field=models.ManyToManyField(
|
||||
blank=True,
|
||||
help_text="Media can be part of one or more categories",
|
||||
to="files.Category",
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="media",
|
||||
name="channel",
|
||||
field=models.ForeignKey(
|
||||
blank=True,
|
||||
help_text="Media can exist in one or no Channels",
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="users.channel",
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="media",
|
||||
name="license",
|
||||
field=models.ForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="files.license",
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="media",
|
||||
name="rating_category",
|
||||
field=models.ManyToManyField(
|
||||
blank=True,
|
||||
help_text="Rating category, if media Rating is allowed",
|
||||
to="files.RatingCategory",
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="media",
|
||||
name="tags",
|
||||
field=models.ManyToManyField(
|
||||
blank=True,
|
||||
help_text="select one or more out of the existing tags",
|
||||
to="files.Tag",
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="media",
|
||||
name="user",
|
||||
field=models.ForeignKey(
|
||||
help_text="user that uploads the media",
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="encoding",
|
||||
name="media",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="encodings",
|
||||
to="files.media",
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="encoding",
|
||||
name="profile",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to="files.encodeprofile"
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="comment",
|
||||
name="media",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="comments",
|
||||
to="files.media",
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="comment",
|
||||
name="parent",
|
||||
field=mptt.fields.TreeForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="children",
|
||||
to="files.comment",
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="comment",
|
||||
name="user",
|
||||
field=models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="category",
|
||||
name="user",
|
||||
field=models.ForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name="rating",
|
||||
index=models.Index(
|
||||
fields=["user", "media"], name="files_ratin_user_id_72ca6a_idx"
|
||||
),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name="rating",
|
||||
unique_together={("user", "media", "rating_category")},
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name="media",
|
||||
index=models.Index(
|
||||
fields=["state", "encoding_status", "is_reviewed"],
|
||||
name="files_media_state_666b93_idx",
|
||||
),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name="media",
|
||||
index=django.contrib.postgres.indexes.GinIndex(
|
||||
fields=["search"], name="files_media_search_7194c6_gin"
|
||||
),
|
||||
),
|
||||
]
|
||||
0
files/migrations/__init__.py
Normal file
0
files/migrations/__init__.py
Normal file
Reference in New Issue
Block a user