From 07fc80d04ad4bb3e0fc2f7566cb379d30d7f1ea8 Mon Sep 17 00:00:00 2001 From: _aandres Date: Sat, 9 Apr 2022 00:34:47 +0200 Subject: [PATCH] feat [full]: allow uncomplete films --- front/composables/types.ts | 32 ++++---- ...anner_link_alter_film_director_and_more.py | 73 +++++++++++++++++++ server/myapi/models.py | 25 ++++--- 3 files changed, 102 insertions(+), 28 deletions(-) create mode 100644 server/myapi/migrations/0003_alter_film_banner_link_alter_film_director_and_more.py diff --git a/front/composables/types.ts b/front/composables/types.ts index bf511ea..0657544 100644 --- a/front/composables/types.ts +++ b/front/composables/types.ts @@ -9,20 +9,20 @@ export enum LanguageSubtitles { } export type Film = { - id: number - projectionDate: Date - title: string - actors: string[] - director: string - duration: number - synopsis: string - originCountry: string - releaseYear: number - trailerLink: string - isInColor: boolean - movieFormat: Format - languageSubtitles: LanguageSubtitles - posterLink: string - bannerLink: string - isConfirmed: boolean + id?: number + projectionDate?: Date + title?: string + actors?: string[] + director?: string + duration?: number + synopsis?: string + originCountry?: string + releaseYear?: number + trailerLink?: string + isInColor?: boolean + movieFormat?: Format + languageSubtitles?: LanguageSubtitles + posterLink?: string + bannerLink?: string + isConfirmed?: boolean } diff --git a/server/myapi/migrations/0003_alter_film_banner_link_alter_film_director_and_more.py b/server/myapi/migrations/0003_alter_film_banner_link_alter_film_director_and_more.py new file mode 100644 index 0000000..1956bfe --- /dev/null +++ b/server/myapi/migrations/0003_alter_film_banner_link_alter_film_director_and_more.py @@ -0,0 +1,73 @@ +# Generated by Django 4.0.3 on 2022-04-08 20:38 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('myapi', '0002_alter_film_actors'), + ] + + operations = [ + migrations.AlterField( + model_name='film', + name='banner_link', + field=models.URLField(blank=True, null=True), + ), + migrations.AlterField( + model_name='film', + name='director', + field=models.CharField(blank=True, max_length=60, null=True), + ), + migrations.AlterField( + model_name='film', + name='duration', + field=models.DurationField(blank=True, null=True), + ), + migrations.AlterField( + model_name='film', + name='is_in_color', + field=models.BooleanField(blank=True, null=True), + ), + migrations.AlterField( + model_name='film', + name='language_subtitles', + field=models.CharField(blank=True, choices=[('VOF', 'French'), ('VOSTFR', 'Foreign')], max_length=20, null=True), + ), + migrations.AlterField( + model_name='film', + name='movie_format', + field=models.CharField(blank=True, choices=[('35mm', 'Analog 35'), ('DVD', 'Dvd'), ('Blu ray', 'Blu Ray')], max_length=20, null=True), + ), + migrations.AlterField( + model_name='film', + name='origin_country', + field=models.CharField(blank=True, max_length=60, null=True), + ), + migrations.AlterField( + model_name='film', + name='poster_link', + field=models.URLField(blank=True, null=True), + ), + migrations.AlterField( + model_name='film', + name='projection_date', + field=models.DateTimeField(blank=True, null=True), + ), + migrations.AlterField( + model_name='film', + name='release_year', + field=models.SmallIntegerField(blank=True, null=True), + ), + migrations.AlterField( + model_name='film', + name='synopsis', + field=models.TextField(blank=True, null=True), + ), + migrations.AlterField( + model_name='film', + name='trailer_link', + field=models.URLField(blank=True, null=True), + ), + ] diff --git a/server/myapi/models.py b/server/myapi/models.py index 1bc00ad..4d3be83 100644 --- a/server/myapi/models.py +++ b/server/myapi/models.py @@ -16,22 +16,23 @@ class Film(models.Model): FRENCH = "VOF" FOREIGN = "VOSTFR" - projection_date = models.DateTimeField() + projection_date = models.DateTimeField(null=True, blank=True) title = models.CharField(max_length=60) actors = models.JSONField(default=list) - director = models.CharField(max_length=60) - duration = models.DurationField() - synopsis = models.TextField() - origin_country = models.CharField(max_length=60) - release_year = models.SmallIntegerField() - trailer_link = models.URLField() - is_in_color = models.BooleanField() - movie_format = models.CharField(max_length=20, choices=MovieFormat.choices) + director = models.CharField(max_length=60, null=True, blank=True) + duration = models.DurationField(null=True, blank=True) + synopsis = models.TextField(null=True, blank=True) + origin_country = models.CharField(max_length=60, null=True, blank=True) + release_year = models.SmallIntegerField(null=True, blank=True) + trailer_link = models.URLField(null=True, blank=True) + is_in_color = models.BooleanField(null=True, blank=True) + movie_format = models.CharField(max_length=20, choices=MovieFormat.choices, null=True, blank=True) language_subtitles = models.CharField( - max_length=20, choices=LanguageSubtitles.choices + max_length=20, choices=LanguageSubtitles.choices, + null=True, blank=True ) - poster_link = models.URLField() - banner_link = models.URLField() + poster_link = models.URLField(null=True, blank=True) + banner_link = models.URLField(null=True, blank=True) is_confirmed = models.BooleanField(default=False) def __str__(self):