diff --git a/movies/__init__.py b/albuns/__init__.py similarity index 100% rename from movies/__init__.py rename to albuns/__init__.py diff --git a/movies/admin.py b/albuns/admin.py similarity index 60% rename from movies/admin.py rename to albuns/admin.py index 97f7d5835c579d3509147c535724cc54281eb9e2..a36e22a68513a7be25603c060f8971a78de6d61c 100644 --- a/movies/admin.py +++ b/albuns/admin.py @@ -1,8 +1,8 @@ from django.contrib import admin -from .models import Movie, Review, List, Provider +from .models import Album, Review, List, Provider -admin.site.register(Movie) +admin.site.register(Album) admin.site.register(Review) admin.site.register(List) admin.site.register(Provider) diff --git a/movies/apps.py b/albuns/apps.py similarity index 64% rename from movies/apps.py rename to albuns/apps.py index 0a30ddd8b26c43d55028a7e1541a6315d8c5716f..788f7ff315478b728af26510b1cef8d013dbcec0 100644 --- a/movies/apps.py +++ b/albuns/apps.py @@ -1,6 +1,6 @@ from django.apps import AppConfig -class MoviesConfig(AppConfig): +class AlbunsConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' - name = 'movies' + name = 'albuns' diff --git a/movies/forms.py b/albuns/forms.py similarity index 82% rename from movies/forms.py rename to albuns/forms.py index 68e58aaa66f153e97565a2eff4a10b21b5486f3b..12e858c1451006104632b0c46171746e5c334853 100644 --- a/movies/forms.py +++ b/albuns/forms.py @@ -1,10 +1,10 @@ from django.forms import ModelForm -from .models import Movie, Review, Provider +from .models import Album, Review, Provider -class MovieForm(ModelForm): +class AlbumForm(ModelForm): class Meta: - model = Movie + model = Album fields = [ 'name', 'release_year', @@ -13,7 +13,7 @@ class MovieForm(ModelForm): ] labels = { 'name': 'TÃtulo', - 'release_year': 'Data de Lançamento', + 'release_year': 'Ano de Lançamento', 'poster_url': 'URL do poster', 'info': 'Informações do Ãlbum' } @@ -28,7 +28,7 @@ class ReviewForm(ModelForm): ] labels = { 'author': 'Usuário', - 'text': 'Resenha', + 'text': 'Comentário', } diff --git a/albuns/migrations/0001_initial.py b/albuns/migrations/0001_initial.py new file mode 100644 index 0000000000000000000000000000000000000000..d3118985368872da7a0565e67bb079def2daa76f --- /dev/null +++ b/albuns/migrations/0001_initial.py @@ -0,0 +1,56 @@ +# Generated by Django 4.1.1 on 2022-11-06 17:04 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Album', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ('release_year', models.IntegerField()), + ('poster_url', models.URLField(null=True)), + ('post_date', models.DateTimeField(auto_now=True)), + ('info', models.CharField(max_length=255000)), + ], + ), + migrations.CreateModel( + name='Provider', + fields=[ + ('album', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='albuns.album')), + ('service', models.CharField(blank=True, max_length=255)), + ('has_flat_price', models.BooleanField(default=False)), + ('price', models.DecimalField(blank=True, decimal_places=2, max_digits=6, null=True)), + ], + ), + migrations.CreateModel( + name='Review', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('post_date', models.DateTimeField(auto_now=True)), + ('text', models.CharField(max_length=255)), + ('album', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='albuns.album')), + ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='List', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ('albuns', models.ManyToManyField(to='albuns.album')), + ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/movies/migrations/__init__.py b/albuns/migrations/__init__.py similarity index 100% rename from movies/migrations/__init__.py rename to albuns/migrations/__init__.py diff --git a/movies/models.py b/albuns/models.py similarity index 75% rename from movies/models.py rename to albuns/models.py index f4841c06155be681ab8254e77c214c8680324287..fa49bb9db6e381804b72c053be174ae669354b2a 100644 --- a/movies/models.py +++ b/albuns/models.py @@ -2,11 +2,11 @@ from django.db import models from django.conf import settings -class Movie(models.Model): +class Album(models.Model): name = models.CharField(max_length=255) release_year = models.IntegerField() poster_url = models.URLField(max_length=200, null=True) - post_date = models.DateTimeField(max_length=255) + post_date = models.DateTimeField(auto_now=True) info = models.CharField(max_length=255000) def __str__(self): @@ -14,11 +14,13 @@ class Movie(models.Model): class Review(models.Model): - author = models.ForeignKey(settings.AUTH_USER_MODEL, - on_delete=models.CASCADE) + author = models.ForeignKey( + settings.AUTH_USER_MODEL, + on_delete=models.CASCADE, + ) + post_date = models.DateTimeField(auto_now=True) text = models.CharField(max_length=255) - likes = models.IntegerField(default=0) - movie = models.ForeignKey(Movie, on_delete=models.CASCADE) + album = models.ForeignKey(Album, on_delete=models.CASCADE) def __str__(self): return f'"{self.text}" - {self.author.username}' @@ -28,15 +30,15 @@ class List(models.Model): author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) name = models.CharField(max_length=255) - movies = models.ManyToManyField(Movie) + albuns = models.ManyToManyField(Album) def __str__(self): return f'{self.name} by {self.author}' class Provider(models.Model): - movie = models.OneToOneField( - Movie, + album = models.OneToOneField( + Album, on_delete=models.CASCADE, primary_key=True, ) diff --git a/movies/templates/movies/create.html b/albuns/templates/albuns/create.html similarity index 75% rename from movies/templates/movies/create.html rename to albuns/templates/albuns/create.html index 36b55b61359bc1fefabfab42d3370ca523a3ebd3..bc3436e5b5f29e710201be59f87982cfc795aa65 100644 --- a/movies/templates/movies/create.html +++ b/albuns/templates/albuns/create.html @@ -7,9 +7,9 @@ Criar Ãlbum {% block content %} <h2>Adicionar Ãlbum</h2> -<form action="{% url 'movies:create' %}" method="post"> +<form action="{% url 'albuns:create' %}" method="post"> {% csrf_token %} - {{ movie_form.as_p }} + {{ album_form.as_p }} {{ provider_form.as_p }} <button type="submit">Criar</button> </form> diff --git a/movies/templates/movies/create_list.html b/albuns/templates/albuns/create_list.html similarity index 79% rename from movies/templates/movies/create_list.html rename to albuns/templates/albuns/create_list.html index c1dc23eef899bba379d401f0c991b5a2b9ba5f1e..d1911fe0171be0b0ed4c12df063529e4a1ecd679 100644 --- a/movies/templates/movies/create_list.html +++ b/albuns/templates/albuns/create_list.html @@ -7,7 +7,7 @@ Criar Ãlbum {% block content %} <h2>Criar Lista</h2> -<form action="{% url 'movies:create-list' %}" method="post"> +<form action="{% url 'albuns:create-list' %}" method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">Criar</button> diff --git a/albuns/templates/albuns/delete.html b/albuns/templates/albuns/delete.html new file mode 100644 index 0000000000000000000000000000000000000000..663ee57f88199d3d5400c94acc67b7cd1b78a959 --- /dev/null +++ b/albuns/templates/albuns/delete.html @@ -0,0 +1,12 @@ +{% extends 'base.html' %} + +{% block content %} +<form action="{% url 'albuns:delete' album.id %}" method="post"> + {% csrf_token %} + <p> + Você tem certeza que deseja apagar o álbum "{{ album.name }} ({{ album.release_year }})"? + </p> + <button type="submit">Apagar</button> +</form> + +{% endblock content %} \ No newline at end of file diff --git a/albuns/templates/albuns/detail.html b/albuns/templates/albuns/detail.html new file mode 100644 index 0000000000000000000000000000000000000000..b52ac35770e617f404f3e9305c40940609bf7b5c --- /dev/null +++ b/albuns/templates/albuns/detail.html @@ -0,0 +1,50 @@ +{% extends 'base.html' %} + +{% block title %} +{{ album.name }} ({{ album.release_year }} +{% endblock title %} + +{% block content %} +<h2>Detalhes do Ãlbum {{ album.name }} ({{ album.release_year }}) — {{ album.post_date|date:"D d M Y"}}</h2> + +<hr> + +<section class="dados-de-album"> + <img src="{{ album.poster_url }}" alt="poster do album {{ album.name}}"> + <ul> + <li>Nome: {{ album.name }}</li> + <li>Ano de Lançamento: {{ album.release_year }} </li> + <li>Data de Postagem: {{album.post_date }} </li> + <li>Informação: {{album.info }}</li> + <li><a href="{% url 'albuns:review' album.id %}">Comentar</a></li> + <li><a href="{% url 'albuns:update' album.id %}">Editar</a></li> + <li><a href="{% url 'albuns:delete' album.id %}">Apagar</a></li> + </ul> +</section> + +<hr> + +<section> + <header> + <h3>Comentários</h3> + </header> + <ul> + {% if album.review_set.all %} + {% for review in album.review_set.all reversed %} + <figure> + <blockquote> + "{{ review.text }}" + </blockquote> + <figcaption>—{{ review.author }} | {{ review.post_date|date:"D d M Y" }} {{ review.post_date|time:"H:i" }} + </figure> + {% endfor %} + {% else %} + <p>Ainda não existe nenhum comentário para este filme.</p> + {% endif %} + </ul> + + <hr> + + <a href="{% url 'albuns:review' album.pk %}"><button>Adicione um Comentario</button></a> +</section> +{% endblock content %} \ No newline at end of file diff --git a/albuns/templates/albuns/index.html b/albuns/templates/albuns/index.html new file mode 100644 index 0000000000000000000000000000000000000000..015f0122dcb74c8f622130f204d096078c39e214 --- /dev/null +++ b/albuns/templates/albuns/index.html @@ -0,0 +1,22 @@ +{% extends 'base.html' %} + +{% block content %} +<h2>Todos os Ãlbuns</h2> +<section> + <p>Não encontrou o álbum? <a href="{% url 'albuns:create' %}">Adicionar Novo Ãlbum</a></p> +</section> +{% if album_list %} +<section class="lista-de-cards"> + {% for album in album_list %} + <article class="card"> + <a href="{% url 'albuns:detail' album.id %}"><img src="{{ album.poster_url }}" + alt="poster do album {{ album.name}}"></a> <!-- modifique esta linha --> + <p>{{ album.name }} ({{ album.release_year }})</p> + </article> + {% endfor %} +</section> +{% else %} +<p>Não foi encontrado nenhum album.</p> +{% endif %} + +{% endblock content %} \ No newline at end of file diff --git a/movies/templates/movies/lists.html b/albuns/templates/albuns/lists.html similarity index 59% rename from movies/templates/movies/lists.html rename to albuns/templates/albuns/lists.html index f8c5809954a9553435c685d6803d804ac8da4763..307d7b746faa16fb23f03a23fe3dd4fdec023390 100644 --- a/movies/templates/movies/lists.html +++ b/albuns/templates/albuns/lists.html @@ -15,18 +15,18 @@ Listas <h3>{{list.name}} (de {{ list.author }}) </h3> </header> <div class="lista-de-cards"> - {% for movie in list.movies.all %} + {% for album in list.albuns.all %} <div class="card"> - <a href="{% url 'movies:detail' movie.id %}"><img src="{{ movie.poster_url }}" - alt="poster do álbum {{ movie.name}}"></a> - <p>{{ movie.name }} ({{ movie.release_year }})</p> + <a href="{% url 'albuns:detail' album.id %}"><img src="{{ album.poster_url }}" + alt="poster do álbum {{ album.name}}"></a> + <p>{{ album.name }} ({{ album.release_year }})</p> </div> {% endfor %} </div> </article> {% endfor %} - <a href="{% url 'movies:create-list' %}"><button>Crie sua Lista</button></a> + <a href="{% url 'albuns:create-list' %}"><button>Crie sua Lista</button></a> </section> {% endblock content %} \ No newline at end of file diff --git a/albuns/templates/albuns/review.html b/albuns/templates/albuns/review.html new file mode 100644 index 0000000000000000000000000000000000000000..83bf1ae244be12fbe7de385c107000eb044baf0e --- /dev/null +++ b/albuns/templates/albuns/review.html @@ -0,0 +1,13 @@ +{% extends 'base.html' %} + +{% block content %} +<h2>Comentar sobre o Ãlbum {{ album.name }} ({{ album.release_year }})</h2> + +<form action="{% url 'albuns:review' album.id %}" method="post"> + {% csrf_token %} + {{ form.as_p }} + <button type="submit">Comentar</button> +</form> + +<p><a href="{% url 'albuns:detail' album.id %}">Voltar para a página do álbum</a></p> +{% endblock content %} \ No newline at end of file diff --git a/movies/templates/movies/search.html b/albuns/templates/albuns/search.html similarity index 67% rename from movies/templates/movies/search.html rename to albuns/templates/albuns/search.html index 1ab5be4673ff60674cc08fde89a9769b3edeeee9..3081b11d9bb2cf065353345ceeb8c3aca6e251e8 100644 --- a/movies/templates/movies/search.html +++ b/albuns/templates/albuns/search.html @@ -2,7 +2,7 @@ {% block content %} <h2>Busca de Ãlbuns por Nome</h2> -<form action="{% url 'movies:search' %}"> +<form action="{% url 'albuns:search' %}"> <p> <label for="id_query">TÃtulo:</label> <input type="text" name="query" id="id_query" /> @@ -12,12 +12,12 @@ <h2>Resultado da Busca</h2> -{% if movie_list %} +{% if album_list %} <section class="lista-de-cards"> - {% for movie in movie_list %} + {% for album in album_list %} <article class="card"> - <img src="{{ movie.poster_url }}" alt="poster do álbum {{ movie.name}}"> - <p>{{ movie.name }} ({{ movie.release_year }})</p> + <img src="{{ album.poster_url }}" alt="poster do álbum {{ album.name}}"> + <p>{{ album.name }} ({{ album.release_year }})</p> </article> {% endfor %} </section> diff --git a/movies/templates/movies/update.html b/albuns/templates/albuns/update.html similarity index 58% rename from movies/templates/movies/update.html rename to albuns/templates/albuns/update.html index 1debedcafd19dc345ba87449ae3d6fbbe6f80aac..4f319fc64b7be5ae13b97338963c6fcbb56b8e2b 100644 --- a/movies/templates/movies/update.html +++ b/albuns/templates/albuns/update.html @@ -1,8 +1,8 @@ {% extends 'base.html' %} {% block content %} -<h2>Atualizar Dados do Ãlbum {{ movie.name }}({{ movie.release_year}})</h2> -<form method="POST" action="{% url 'movies:update' movie.id%}"> +<h2>Atualizar Dados do Ãlbum {{ album.name }}({{ album.release_year}})</h2> +<form method="POST" action="{% url 'albuns:update' album.id%}"> {% csrf_token %} {{ form.as_p }} <button type="submit">Atualizar</button> diff --git a/movies/tests.py b/albuns/tests.py similarity index 100% rename from movies/tests.py rename to albuns/tests.py diff --git a/albuns/urls.py b/albuns/urls.py new file mode 100644 index 0000000000000000000000000000000000000000..32a6858c6c350bcc3009b395f03067bd70513357 --- /dev/null +++ b/albuns/urls.py @@ -0,0 +1,16 @@ +from django.urls import path + +from . import views + +app_name = 'albuns' +urlpatterns = [ + path('', views.AlbumListView.as_view(), name='index'), + path('create/', views.create_album, name='create'), + path('<int:album_id>/', views.detail_album, + name='detail'), + path('update/<int:album_id>/', views.update_album, name='update'), + path('delete/<int:album_id>/', views.delete_album, name='delete'), + path('<int:album_id>/review/', views.create_review, name='review'), + path('lists/', views.ListListView.as_view(), name='lists'), + path('lists/create', views.ListCreateView.as_view(), name='create-list'), +] diff --git a/albuns/views.py b/albuns/views.py new file mode 100644 index 0000000000000000000000000000000000000000..5532b47d0a9ee5ffb87d6da7014aad36f82481e8 --- /dev/null +++ b/albuns/views.py @@ -0,0 +1,93 @@ +from django.http import HttpResponseRedirect +from django.shortcuts import get_object_or_404, render +from django.urls import reverse, reverse_lazy +from django.views import generic + +from .forms import AlbumForm, ProviderForm, ReviewForm +from .models import List, Album, Provider, Review + + +def detail_album(request, album_id): + album = get_object_or_404(Album, pk=album_id) + context = {'album': album} + return render(request, 'albuns/detail.html', context) + + +class AlbumListView(generic.ListView): + model = Album + template_name = 'albuns/index.html' + + +def create_album(request): + if request.method == 'POST': + album_form = AlbumForm(request.POST) + else: + album_form = AlbumForm() + context = {'album_form': album_form, } + return render(request, 'albuns/create.html', context) + + +def update_album(request, album_id): + album = get_object_or_404(Album, pk=album_id) + + if request.method == "POST": + form = AlbumForm(request.POST) + if form.is_valid(): + album.name = form.cleaned_data['name'] + album.release_year = form.cleaned_data['release_year'] + album.poster_url = form.cleaned_data['poster_url'] + album.save() + return HttpResponseRedirect( + reverse('albuns:detail', args=(album.id, ))) + else: + form = AlbumForm( + initial={ + 'name': album.name, + 'release_year': album.release_year, + 'poster_url': album.poster_url + }) + + context = {'album': album, 'form': form} + return render(request, 'albuns/update.html', context) + + +def delete_album(request, album_id): + album = get_object_or_404(Album, pk=album_id) + + if request.method == "POST": + album.delete() + return HttpResponseRedirect(reverse('albuns:index')) + + context = {'album': album} + return render(request, 'albuns/delete.html', context) + + +def create_review(request, album_id): + album = get_object_or_404(Album, pk=album_id) + if request.method == 'POST': + form = ReviewForm(request.POST) + if form.is_valid(): + review_author = form.cleaned_data['author'] + review_text = form.cleaned_data['text'] + review = Review(author=review_author, + text=review_text, + album=album) + review.save() + return HttpResponseRedirect( + reverse('albuns:detail', args=(album_id, ))) + else: + form = ReviewForm() + context = {'form': form, 'album': album} + return render(request, 'albuns/review.html', context) + + +class ListListView(generic.ListView): + model = List + template_name = 'albuns/lists.html' + + +class ListCreateView(generic.CreateView): + model = List + template_name = 'albuns/create_list.html' + fields = ['name', 'author', 'albuns'] + success_url = reverse_lazy('albuns:lists') diff --git a/entrega2/settings.py b/entrega2/settings.py index 693bbe5c1145b6513a103ad825efbc73341fc8dd..1c310321d2bf78e57bfb78e9e41e8d0899198cae 100644 --- a/entrega2/settings.py +++ b/entrega2/settings.py @@ -1,5 +1,5 @@ """ -Django settings for moviesite project. +Django settings for albunsite project. Generated by 'django-admin startproject' using Django 3.2.5. @@ -40,7 +40,7 @@ INSTALLED_APPS = [ 'django.contrib.messages', 'django.contrib.staticfiles', 'staticpages.apps.StaticpagesConfig', - 'movies.apps.MoviesConfig', # adicione esta linha + 'albuns.apps.AlbunsConfig', # adicione esta linha ] MIDDLEWARE = [ diff --git a/entrega2/urls.py b/entrega2/urls.py index af49cbb77dbb21e1b63791ee38c42aa2905d1382..3e121dd969ed66bdce65c6a42611d21660eaf4a7 100644 --- a/entrega2/urls.py +++ b/entrega2/urls.py @@ -18,6 +18,6 @@ from django.urls import include, path urlpatterns = [ path('', include('staticpages.urls')), - path('movies/', include('movies.urls')), # adicionar esta linha + path('albuns/', include('albuns.urls')), # adicionar esta linha path('admin/', admin.site.urls), ] diff --git a/movies/migrations/0001_initial.py b/movies/migrations/0001_initial.py deleted file mode 100644 index e0def2e29f22ee2f19cf675c7f7b3a61354ddfcb..0000000000000000000000000000000000000000 --- a/movies/migrations/0001_initial.py +++ /dev/null @@ -1,40 +0,0 @@ -# Generated by Django 4.1.1 on 2022-11-06 10:05 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Movie', - fields=[ - ('id', models.BigAutoField(auto_created=True, - primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=255)), - ('release_year', models.IntegerField()), - ('poster_url', models.URLField(null=True)), - ], - ), - migrations.CreateModel( - name='Review', - fields=[ - ('id', models.BigAutoField(auto_created=True, - primary_key=True, serialize=False, verbose_name='ID')), - ('text', models.CharField(max_length=255)), - ('likes', models.IntegerField(default=0)), - ('author', models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ('movie', models.ForeignKey( - on_delete=django.db.models.deletion.CASCADE, to='movies.movie')), - ], - ), - ] diff --git a/movies/migrations/0002_list.py b/movies/migrations/0002_list.py deleted file mode 100644 index 18d7013d50f615694ee8553d4e86af89e570c070..0000000000000000000000000000000000000000 --- a/movies/migrations/0002_list.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 4.1.1 on 2022-11-06 10:35 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('movies', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='List', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=255)), - ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ('movies', models.ManyToManyField(to='movies.movie')), - ], - ), - ] diff --git a/movies/migrations/0003_provider.py b/movies/migrations/0003_provider.py deleted file mode 100644 index 8b25e1c41aa2de60f906f1b4c509c43cd73799ef..0000000000000000000000000000000000000000 --- a/movies/migrations/0003_provider.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 4.1.1 on 2022-11-06 10:41 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('movies', '0002_list'), - ] - - operations = [ - migrations.CreateModel( - name='Provider', - fields=[ - ('movie', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='movies.movie')), - ('service', models.CharField(blank=True, max_length=255)), - ('has_flat_price', models.BooleanField(default=False)), - ('price', models.DecimalField(blank=True, decimal_places=2, max_digits=6, null=True)), - ], - ), - ] diff --git a/movies/migrations/0004_movie_info_movie_post_date.py b/movies/migrations/0004_movie_info_movie_post_date.py deleted file mode 100644 index f9ea2c3422dddf5654ee73d7c59a07dd7d109c38..0000000000000000000000000000000000000000 --- a/movies/migrations/0004_movie_info_movie_post_date.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 4.1.1 on 2022-11-06 12:37 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('movies', '0003_provider'), - ] - - operations = [ - migrations.AddField( - model_name='movie', - name='info', - field=models.CharField(default='no info', max_length=255), - preserve_default=False, - ), - migrations.AddField( - model_name='movie', - name='post_date', - field=models.DateTimeField(default='2022-11-06 00:00'), - preserve_default=False, - ), - ] diff --git a/movies/migrations/0005_alter_movie_info_alter_movie_post_date.py b/movies/migrations/0005_alter_movie_info_alter_movie_post_date.py deleted file mode 100644 index fb577121a5eeff2357c4c90d3969342e904386cd..0000000000000000000000000000000000000000 --- a/movies/migrations/0005_alter_movie_info_alter_movie_post_date.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 4.1.1 on 2022-11-06 12:45 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('movies', '0004_movie_info_movie_post_date'), - ] - - operations = [ - migrations.AlterField( - model_name='movie', - name='info', - field=models.CharField(max_length=255000), - ), - migrations.AlterField( - model_name='movie', - name='post_date', - field=models.DateTimeField(max_length=255), - ), - ] diff --git a/movies/temp_data.py b/movies/temp_data.py deleted file mode 100644 index f4eb866597e76af0e62863d616ff0c1838621fa9..0000000000000000000000000000000000000000 --- a/movies/temp_data.py +++ /dev/null @@ -1,866 +0,0 @@ - -movie_data = [{ - "id": - "1", - "name": - "The Shawshank Redemption", - "release_year": - "1994", - "poster_url": - "https://image.tmdb.org/t/p/w500/q6y0Go1tsGEsmtFryDOJo3dEmqu.jpg" -}, { - "id": - "2", - "name": - "The Godfather", - "release_year": - "1972", - "poster_url": - "https://image.tmdb.org/t/p/w500/3bhkrj58Vtu7enYsRolD1fZdja1.jpg" -}, { - "id": - "3", - "name": - "Schindler's List", - "release_year": - "1993", - "poster_url": - "https://image.tmdb.org/t/p/w500/sF1U4EUQS8YHUYjNl3pMGNIQyr0.jpg" -}, { - "id": - "4", - "name": - "Black Beauty", - "release_year": - "2020", - "poster_url": - "https://image.tmdb.org/t/p/w500/5ZjMNJJabwBEnGVQoR2yoMEL9um.jpg" -}, { - "id": - "5", - "name": - "The Godfather: Part II", - "release_year": - "1974", - "poster_url": - "https://image.tmdb.org/t/p/w500/hek3koDUyRQk7FIhPXsa6mT2Zc3.jpg" -}, { - "id": - "6", - "name": - "Your Name.", - "release_year": - "2016", - "poster_url": - "https://image.tmdb.org/t/p/w500/q719jXXEzOoYaps6babgKnONONX.jpg" -}, { - "id": - "7", - "name": - "Spirited Away", - "release_year": - "2001", - "poster_url": - "https://image.tmdb.org/t/p/w500/39wmItIWsg5sZMyRUHLkWBcuVCM.jpg" -}, { - "id": - "8", - "name": - "Hope", - "release_year": - "2013", - "poster_url": - "https://image.tmdb.org/t/p/w500/x9yjkm9gIz5qI5fJMUTfBnWiB2o.jpg" -}, { - "id": - "9", - "name": - "Parasite", - "release_year": - "2019", - "poster_url": - "https://image.tmdb.org/t/p/w500/7IiTTgloJzvGI1TAYymCfbfl3vT.jpg" -}, { - "id": - "10", - "name": - "My Hero Academia: Heroes Rising", - "release_year": - "2019", - "poster_url": - "https://image.tmdb.org/t/p/w500/zGVbrulkupqpbwgiNedkJPyQum4.jpg" -}, { - "id": - "11", - "name": - "The Green Mile", - "release_year": - "1999", - "poster_url": - "https://image.tmdb.org/t/p/w500/velWPhVMQeQKcxggNEU8YmIo52R.jpg" -}, { - "id": - "12", - "name": - "12 Angry Men", - "release_year": - "1957", - "poster_url": - "https://image.tmdb.org/t/p/w500/ppd84D2i9W8jXmsyInGyihiSyqz.jpg" -}, { - "id": - "13", - "name": - "A Dog's Will", - "release_year": - "2000", - "poster_url": - "https://image.tmdb.org/t/p/w500/m8eFedsS7vQCZCS8WGp5n1bVD0q.jpg" -}, { - "id": - "14", - "name": - "Wolfwalkers", - "release_year": - "2020", - "poster_url": - "https://image.tmdb.org/t/p/w500/ehAKuE48okTuonq6TpsNQj8vFTC.jpg" -}, { - "id": - "15", - "name": - "Rascal Does Not Dream of a Dreaming Girl", - "release_year": - "2019", - "poster_url": - "https://image.tmdb.org/t/p/w500/pvdBzHOWjrLl69lUswPiVnI8szv.jpg" -}, { - "id": - "16", - "name": - "Pulp Fiction", - "release_year": - "1994", - "poster_url": - "https://image.tmdb.org/t/p/w500/d5iIlFn5s0ImszYzBPb8JPIfbXD.jpg" -}, { - "id": - "17", - "name": - "The Dark Knight", - "release_year": - "2008", - "poster_url": - "https://image.tmdb.org/t/p/w500/qJ2tW6WMUDux911r6m7haRef0WH.jpg" -}, { - "id": - "18", - "name": - "The Lord of the Rings: The Return of the King", - "release_year": - "2003", - "poster_url": - "https://image.tmdb.org/t/p/w500/rCzpDGLbOoPwLjy3OAm5NUPOTrC.jpg" -}, { - "id": - "19", - "name": - "Dedicated to my ex", - "release_year": - "2019", - "poster_url": - "https://image.tmdb.org/t/p/w500/xc4bTXVwYNXi10jG9dwcaYt5IpU.jpg" -}, { - "id": - "20", - "name": - "Forrest Gump", - "release_year": - "1994", - "poster_url": - "https://image.tmdb.org/t/p/w500/h5J4W4veyxMXDMjeNxZI46TsHOb.jpg" -}, { - "id": - "21", - "name": - "KonoSuba: God's Blessing on this Wonderful World! Legend of Crimson", - "release_year": - "2019", - "poster_url": - "https://image.tmdb.org/t/p/w500/j73LuQcA21KvkVFcroWWMN8tTJv.jpg" -}, { - "id": - "22", - "name": - "The Good, the Bad and the Ugly", - "release_year": - "1966", - "poster_url": - "https://image.tmdb.org/t/p/w500/usIXFgUP0Fjbwgeg2GwEOlAHSFM.jpg" -}, { - "id": - "23", - "name": - "Life Is Beautiful", - "release_year": - "1997", - "poster_url": - "https://image.tmdb.org/t/p/w500/74hLDKjD5aGYOotO6esUVaeISa2.jpg" -}, { - "id": - "24", - "name": - "Cinema Paradiso", - "release_year": - "1988", - "poster_url": - "https://image.tmdb.org/t/p/w500/8SRUfRUi6x4O68n0VCbDNRa6iGL.jpg" -}, { - "id": - "25", - "name": - "Seven Samurai", - "release_year": - "1954", - "poster_url": - "https://image.tmdb.org/t/p/w500/8OKmBV5BUFzmozIC3pPWKHy17kx.jpg" -}, { - "id": - "26", - "name": - "GoodFellas", - "release_year": - "1990", - "poster_url": - "https://image.tmdb.org/t/p/w500/6QMSLvU5ziIL2T6VrkaKzN2YkxK.jpg" -}, { - "id": - "27", - "name": - "Once Upon a Time in America", - "release_year": - "1984", - "poster_url": - "https://image.tmdb.org/t/p/w500/i0enkzsL5dPeneWnjl1fCWm6L7k.jpg" -}, { - "id": - "28", - "name": - "Hamilton", - "release_year": - "2020", - "poster_url": - "https://image.tmdb.org/t/p/w500/h1B7tW0t399VDjAcWJh8m87469b.jpg" -}, { - "id": - "29", - "name": - "Life in a Year", - "release_year": - "2020", - "poster_url": - "https://image.tmdb.org/t/p/w500/bP7u19opmHXYeTCUwGjlLldmUMc.jpg" -}, { - "id": - "30", - "name": - "Psycho", - "release_year": - "1960", - "poster_url": - "https://image.tmdb.org/t/p/w500/AiLmJibnhIMDeWVE9lR747yOgq1.jpg" -}, { - "id": - "31", - "name": - "Harakiri", - "release_year": - "1962", - "poster_url": - "https://image.tmdb.org/t/p/w500/fRqVjso3rdEcxZHXWE2xazDAtjI.jpg" -}, { - "id": - "32", - "name": - "Fight Club", - "release_year": - "1999", - "poster_url": - "https://image.tmdb.org/t/p/w500/pB8BM7pdSp6B6Ih7QZ4DrQ3PmJK.jpg" -}, { - "id": - "33", - "name": - "Clouds", - "release_year": - "2020", - "poster_url": - "https://image.tmdb.org/t/p/w500/d0OdD1I8qAfETvE9Rp9Voq7R8LR.jpg" -}, { - "id": - "34", - "name": - "One Flew Over the Cuckoo's Nest", - "release_year": - "1975", - "poster_url": - "https://image.tmdb.org/t/p/w500/3jcbDmRFiQ83drXNOvRDeKHxS0C.jpg" -}, { - "id": - "35", - "name": - "A Silent Voice: The Movie", - "release_year": - "2016", - "poster_url": - "https://image.tmdb.org/t/p/w500/tuFaWiqX0TXoWu7DGNcmX3UW7sT.jpg" -}, { - "id": - "36", - "name": - "Hotarubi no Mori e", - "release_year": - "2011", - "poster_url": - "https://image.tmdb.org/t/p/w500/mDqzHV8UXWWNpZkoAbKmKX1ZxEE.jpg" -}, { - "id": - "37", - "name": - "City of God", - "release_year": - "2002", - "poster_url": - "https://image.tmdb.org/t/p/w500/k7eYdWvhYQyRQoU2TB2A2Xu2TfD.jpg" -}, { - "id": - "38", - "name": - "Grave of the Fireflies", - "release_year": - "1988", - "poster_url": - "https://image.tmdb.org/t/p/w500/qG3RYlIVpTYclR9TYIsy8p7m7AT.jpg" -}, { - "id": - "39", - "name": - "Zack Snyder's Justice League", - "release_year": - "2021", - "poster_url": - "https://image.tmdb.org/t/p/w500/tnAuB8q5vv7Ax9UAEje5Xi4BXik.jpg" -}, { - "id": - "40", - "name": - "Spider-Man: Into the Spider-Verse", - "release_year": - "2018", - "poster_url": - "https://image.tmdb.org/t/p/w500/iiZZdoQBEYBv6id8su7ImL0oCbD.jpg" -}, { - "id": - "41", - "name": - "New Gods: Nezha Reborn", - "release_year": - "2021", - "poster_url": - "https://image.tmdb.org/t/p/w500/6goDkAD6J3br81YMQf0Gat8Bqjy.jpg" -}, { - "id": - "42", - "name": - "Steven Universe: The Movie", - "release_year": - "2019", - "poster_url": - "https://image.tmdb.org/t/p/w500/8mRgpubxHqnqvENK4Bei30xMDvy.jpg" -}, { - "id": - "43", - "name": - "Maquia: When the Promised Flower Blooms", - "release_year": - "2018", - "poster_url": - "https://image.tmdb.org/t/p/w500/hL3NqRE2ccR4Y2sYSJTrmalRjrz.jpg" -}, { - "id": - "44", - "name": - "Howl's Moving Castle", - "release_year": - "2004", - "poster_url": - "https://image.tmdb.org/t/p/w500/TkTPELv4kC3u1lkloush8skOjE.jpg" -}, { - "id": - "45", - "name": - "Sunset Boulevard", - "release_year": - "1950", - "poster_url": - "https://image.tmdb.org/t/p/w500/zt8aQ6ksqK6p1AopC5zVTDS9pKT.jpg" -}, { - "id": - "46", - "name": - "The Art of Racing in the Rain", - "release_year": - "2019", - "poster_url": - "https://image.tmdb.org/t/p/w500/mi5VN4ww0JZgRFJIaPxxTGKjUg7.jpg" -}, { - "id": - "47", - "name": - "Cruella", - "release_year": - "2021", - "poster_url": - "https://image.tmdb.org/t/p/w500/wToO8opxkGwKgSfJ1JK8tGvkG6U.jpg" -}, { - "id": - "48", - "name": - "Demon Slayer -Kimetsu no Yaiba- The Movie: Mugen Train", - "release_year": - "2020", - "poster_url": - "https://image.tmdb.org/t/p/w500/h8Rb9gBr48ODIwYUttZNYeMWeUU.jpg" -}, { - "id": - "49", - "name": - "Neon Genesis Evangelion: The End of Evangelion", - "release_year": - "1997", - "poster_url": - "https://image.tmdb.org/t/p/w500/m9PTii0XWCIKZBBrCrOn8RLTK0w.jpg" -}, { - "id": - "50", - "name": - "Justice League Dark: Apokolips War", - "release_year": - "2020", - "poster_url": - "https://image.tmdb.org/t/p/w500/c01Y4suApJ1Wic2xLmaq1QYcfoZ.jpg" -}, { - "id": - "51", - "name": - "Me contro Te: Il film - La vendetta del Signor S", - "release_year": - "2020", - "poster_url": - "https://image.tmdb.org/t/p/w500/sfeQTIRkJjWt8IPDSBcPqkrcaas.jpg" -}, { - "id": - "52", - "name": - "The Empire Strikes Back", - "release_year": - "1980", - "poster_url": - "https://image.tmdb.org/t/p/w500/7BuH8itoSrLExs2YZSsM01Qk2no.jpg" -}, { - "id": - "53", - "name": - "Whiplash", - "release_year": - "2014", - "poster_url": - "https://image.tmdb.org/t/p/w500/oPxnRhyAIzJKGUEdSiwTJQBa3NM.jpg" -}, { - "id": - "54", - "name": - "American History X", - "release_year": - "1998", - "poster_url": - "https://image.tmdb.org/t/p/w500/c2gsmSQ2Cqv8zosqKOCwRS0GFBS.jpg" -}, { - "id": - "55", - "name": - "The Pianist", - "release_year": - "2002", - "poster_url": - "https://image.tmdb.org/t/p/w500/enFfoFd3TYs6ttTxrBIfmecQPnz.jpg" -}, { - "id": - "56", - "name": - "Ikiru", - "release_year": - "1952", - "poster_url": - "https://image.tmdb.org/t/p/w500/dgNTS4EQDDVfkzJI5msKuHu2Ei3.jpg" -}, { - "id": - "57", - "name": - "The Great Dictator", - "release_year": - "1940", - "poster_url": - "https://image.tmdb.org/t/p/w500/1QpO9wo7JWecZ4NiBuu625FiY1j.jpg" -}, { - "id": - "58", - "name": - "City Lights", - "release_year": - "1931", - "poster_url": - "https://image.tmdb.org/t/p/w500/bXNvzjULc9jrOVhGfjcc64uKZmZ.jpg" -}, { - "id": - "59", - "name": - "Rear Window", - "release_year": - "1954", - "poster_url": - "https://image.tmdb.org/t/p/w500/qitnZcLP7C9DLRuPpmvZ7GiEjJN.jpg" -}, { - "id": - "60", - "name": - "The Lord of the Rings: The Fellowship of the Ring", - "release_year": - "2001", - "poster_url": - "https://image.tmdb.org/t/p/w500/6oom5QYQ2yQTMJIbnvbkBL9cHo6.jpg" -}, { - "id": - "61", - "name": - "High and Low", - "release_year": - "1963", - "poster_url": - "https://image.tmdb.org/t/p/w500/tgNjemQPG96uIezpiUiXFcer5ga.jpg" -}, { - "id": - "62", - "name": - "Five Feet Apart", - "release_year": - "2019", - "poster_url": - "https://image.tmdb.org/t/p/w500/kreTuJBkUjVWePRfhHZuYfhNE1T.jpg" -}, { - "id": - "63", - "name": - "Nobody", - "release_year": - "2021", - "poster_url": - "https://image.tmdb.org/t/p/w500/oBgWY00bEFeZ9N25wWVyuQddbAo.jpg" -}, { - "id": - "64", - "name": - "Princess Mononoke", - "release_year": - "1997", - "poster_url": - "https://image.tmdb.org/t/p/w500/jHWmNr7m544fJ8eItsfNk8fs2Ed.jpg" -}, { - "id": - "65", - "name": - "Inception", - "release_year": - "2010", - "poster_url": - "https://image.tmdb.org/t/p/w500/9gk7adHYeDvHkCSEqAvQNLV5Uge.jpg" -}, { - "id": - "66", - "name": - "Interstellar", - "release_year": - "2014", - "poster_url": - "https://image.tmdb.org/t/p/w500/gEU2QniE6E77NI6lCU6MxlNBvIx.jpg" -}, { - "id": - "67", - "name": - "The Lord of the Rings: The Two Towers", - "release_year": - "2002", - "poster_url": - "https://image.tmdb.org/t/p/w500/5VTN0pR8gcqV3EPUHHfMGnJYN9L.jpg" -}, { - "id": - "68", - "name": - "Modern Times", - "release_year": - "1936", - "poster_url": - "https://image.tmdb.org/t/p/w500/7uoiKOEjxBBW0AgDGQWrlfGQ90w.jpg" -}, { - "id": - "69", - "name": - "Se7en", - "release_year": - "1995", - "poster_url": - "https://image.tmdb.org/t/p/w500/69Sns8WoET6CfaYlIkHbla4l7nC.jpg" -}, { - "id": - "70", - "name": - "Mortal Kombat Legends: Scorpion's Revenge", - "release_year": - "2020", - "poster_url": - "https://image.tmdb.org/t/p/w500/4VlXER3FImHeFuUjBShFamhIp9M.jpg" -}, { - "id": - "71", - "name": - "We All Loved Each Other So Much", - "release_year": - "1974", - "poster_url": - "https://image.tmdb.org/t/p/w500/zGGWYpiKNwjpKxelPxOMqJnUgDs.jpg" -}, { - "id": - "72", - "name": - "The Silence of the Lambs", - "release_year": - "1991", - "poster_url": - "https://image.tmdb.org/t/p/w500/rplLJ2hPcOQmkFhTqUte0MkEaO2.jpg" -}, { - "id": - "73", - "name": - "Doctor Who: The Day of the Doctor", - "release_year": - "2013", - "poster_url": - "https://image.tmdb.org/t/p/w500/qkhP3bhxQQjs1bGEWNts64DOUkK.jpg" -}, { - "id": - "74", - "name": - "Paths of Glory", - "release_year": - "1957", - "poster_url": - "https://image.tmdb.org/t/p/w500/l2IY0gOHHmCWM90LjteFssxIV1G.jpg" -}, { - "id": - "75", - "name": - "Dead Poets Society", - "release_year": - "1989", - "poster_url": - "https://image.tmdb.org/t/p/w500/ai40gM7SUaGA6fthvsd87o8IQq4.jpg" -}, { - "id": - "76", - "name": - "Léon: The Professional", - "release_year": - "1994", - "poster_url": - "https://image.tmdb.org/t/p/w500/hUJvnlCepB4xcp17E7Kc6unXgiS.jpg" -}, { - "id": - "77", - "name": - "Once Upon a Time in the West", - "release_year": - "1968", - "poster_url": - "https://image.tmdb.org/t/p/w500/qbYgqOczabWNn2XKwgMtVrntD6P.jpg" -}, { - "id": - "78", - "name": - "Come and See", - "release_year": - "1985", - "poster_url": - "https://image.tmdb.org/t/p/w500/90A8sXK9QZVJ7Rj8nLdsj5NuO5s.jpg" -}, { - "id": - "79", - "name": - "Mommy", - "release_year": - "2014", - "poster_url": - "https://image.tmdb.org/t/p/w500/iUN8FpWSjrHx0b8lPnBuIoLnd67.jpg" -}, { - "id": - "80", - "name": - "Tokyo Story", - "release_year": - "1953", - "poster_url": - "https://image.tmdb.org/t/p/w500/g2YbTYKpY7N2yDSk7BfXZ18I5QV.jpg" -}, { - "id": - "81", - "name": - "Sansho the Bailiff", - "release_year": - "1954", - "poster_url": - "https://image.tmdb.org/t/p/w500/6Ai1iAje7d59N7CnFZvb8zQACFH.jpg" -}, { - "id": - "82", - "name": - "The Legend of 1900", - "release_year": - "1998", - "poster_url": - "https://image.tmdb.org/t/p/w500/iOcbJ5pxokOPDRgieVDbsFMrCc6.jpg" -}, { - "id": - "83", - "name": - "The Handmaiden", - "release_year": - "2016", - "poster_url": - "https://image.tmdb.org/t/p/w500/xV3H7UmImtZ6adpwTbdOrZS0MvR.jpg" -}, { - "id": - "84", - "name": - "My Mom is a Character 3", - "release_year": - "2019", - "poster_url": - "https://image.tmdb.org/t/p/w500/zw77BFPGJ73Lig8GwRzYj1XHq53.jpg" -}, { - "id": - "85", - "name": - "Back to the Future", - "release_year": - "1985", - "poster_url": - "https://image.tmdb.org/t/p/w500/7lyBcpYB0Qt8gYhXYaEZUNlNQAv.jpg" -}, { - "id": - "86", - "name": - "Miracle in Cell No. 7", - "release_year": - "2019", - "poster_url": - "https://image.tmdb.org/t/p/w500/bOth4QmNyEkalwahfPCfiXjNh1r.jpg" -}, { - "id": - "87", - "name": - "Woman in the Dunes", - "release_year": - "1964", - "poster_url": - "https://image.tmdb.org/t/p/w500/rE6vtXBDXy3cjyFmxfsDese0Eo4.jpg" -}, { - "id": - "88", - "name": - "Stalker", - "release_year": - "1979", - "poster_url": - "https://image.tmdb.org/t/p/w500/lUE0Bp7wH0EterJ44qMRsqtKFnp.jpg" -}, { - "id": - "89", - "name": - "Klaus", - "release_year": - "2019", - "poster_url": - "https://image.tmdb.org/t/p/w500/q125RHUDgR4gjwh1QkfYuJLYkL.jpg" -}, { - "id": - "90", - "name": - "Miraculous World: New York, United HeroeZ", - "release_year": - "2020", - "poster_url": - "https://image.tmdb.org/t/p/w500/19kfvGktytDZInUmpv3WlaHoTxP.jpg" -}, { - "id": - "91", - "name": - "Bicycle Thieves", - "release_year": - "1948", - "poster_url": - "https://image.tmdb.org/t/p/w500/ihLPR2hiHljvvdTzHk6NeNTVMXf.jpg" -}, { - "id": - "92", - "name": - "Apocalypse Now", - "release_year": - "1979", - "poster_url": - "https://image.tmdb.org/t/p/w500/gQB8Y5RCMkv2zwzFHbUJX3kAhvA.jpg" -}, { - "id": - "93", - "name": - "Investigation of a Citizen Above Suspicion", - "release_year": - "1970", - "poster_url": - "https://image.tmdb.org/t/p/w500/vPTZwlq1IC4o1DCsEZEl2uGljzm.jpg" -}, { - "id": - "94", - "name": - "Persona", - "release_year": - "1966", - "poster_url": - "https://image.tmdb.org/t/p/w500/bdXbfUir63TQHA5NTNcXPICZCW8.jpg" -}, { - "id": - "95", - "name": - "The Hate U Give", - "release_year": - "2018", - "poster_url": - "https://image.tmdb.org/t/p/w500/2icwBom0t5nmOuZI9FVXF3gkMK0.jpg" -}, { - "id": - "96", - "name": - "Wolf Children", - "release_year": - "2012", - "poster_url": - "https://image.tmdb.org/t/p/w500/nqqovhsvsWbsb7LcGaIGDRZrwgB.jpg" -}] diff --git a/movies/templates/movies/delete.html b/movies/templates/movies/delete.html deleted file mode 100644 index ae4528dba986a26c9bae10c1207087e91d704ce9..0000000000000000000000000000000000000000 --- a/movies/templates/movies/delete.html +++ /dev/null @@ -1,12 +0,0 @@ -{% extends 'base.html' %} - -{% block content %} -<form action="{% url 'movies:delete' movie.id %}" method="post"> - {% csrf_token %} - <p> - Você tem certeza que deseja apagar o álbum "{{ movie.name }} ({{ movie.release_year }})"? - </p> - <button type="submit">Apagar</button> -</form> - -{% endblock content %} \ No newline at end of file diff --git a/movies/templates/movies/detail.html b/movies/templates/movies/detail.html deleted file mode 100644 index 0dbc00259c36b51c96300dbc6712f8c1bd941306..0000000000000000000000000000000000000000 --- a/movies/templates/movies/detail.html +++ /dev/null @@ -1,24 +0,0 @@ -{% extends 'base.html' %} - -{% block title %} -{{ movie.name }} ({{ movie.release_year }} -{% endblock title %} - -{% block content %} -<h2>Detalhes do Ãlbum {{ movie.name }} ({{ movie.release_year }})</h2> - -<hr> - -<section class="dados-de-album"> - <img src="{{ movie.poster_url }}" alt="poster do album {{ movie.name}}"> - <ul> - <li>Nome: {{ movie.name }}</li> - <li>Ano de Lançamento: {{ movie.release_year }} </li> - <li>Data de Postagem: {{movie.post_date }} </li> - <li>Informação: {{movie.info }}</li> - <li><a href="{% url 'movies:update' movie.id %}">Editar</a></li> - <li><a href="{% url 'movies:delete' movie.id %}">Apagar</a></li> - </ul> -</section> - -{% endblock content %} \ No newline at end of file diff --git a/movies/templates/movies/index.html b/movies/templates/movies/index.html deleted file mode 100644 index 985eb9cc8d63166dce1c66bd03fd2fb9c253d279..0000000000000000000000000000000000000000 --- a/movies/templates/movies/index.html +++ /dev/null @@ -1,23 +0,0 @@ -{% extends 'base.html' %} - -{% block content %} -<h2>Todos os Ãlbuns</h2> -<section> - <p>Muitos resultados? <a href="{% url 'movies:search' %}">Buscar Ãlbuns</a></p> - <p>Não encontrou o álbum? <a href="{% url 'movies:create' %}">Adicionar Novo Ãlbum</a></p> -</section> -{% if movie_list %} -<section class="lista-de-cards"> - {% for movie in movie_list %} - <article class="card"> - <a href="{% url 'movies:detail' movie.id %}"><img src="{{ movie.poster_url }}" - alt="poster do album {{ movie.name}}"></a> <!-- modifique esta linha --> - <p>{{ movie.name }} ({{ movie.release_year }})</p> - </article> - {% endfor %} -</section> -{% else %} -<p>Não foi encontrado nenhum album.</p> -{% endif %} - -{% endblock content %} \ No newline at end of file diff --git a/movies/templates/movies/review.html b/movies/templates/movies/review.html deleted file mode 100644 index d66faad30fd41f2560d3591e64dbb5e09997a27e..0000000000000000000000000000000000000000 --- a/movies/templates/movies/review.html +++ /dev/null @@ -1,13 +0,0 @@ -{% extends 'base.html' %} - -{% block content %} -<h2>Resenhar Ãlbum {{ movie.name }} ({{ movie.release_year }})</h2> - -<form action="{% url 'movies:review' movie.id %}" method="post"> - {% csrf_token %} - {{ form.as_p }} - <button type="submit">Postar Resenha</button> -</form> - -<p><a href="{% url 'movies:detail' movie.id %}">Voltar para a página do álbum</a></p> -{% endblock content %} \ No newline at end of file diff --git a/movies/urls.py b/movies/urls.py deleted file mode 100644 index 24b06c7a5909fbeeaf529591d5da15225f47b422..0000000000000000000000000000000000000000 --- a/movies/urls.py +++ /dev/null @@ -1,17 +0,0 @@ -from django.urls import path - -from . import views - -app_name = 'movies' -urlpatterns = [ - path('', views.MovieListView.as_view(), name='index'), # edite esta linha - path('search/', views.search_movies, name='search'), - path('create/', views.create_movie, name='create'), - path('<int:movie_id>/', views.detail_movie, - name='detail'), - path('update/<int:movie_id>/', views.update_movie, name='update'), - path('delete/<int:movie_id>/', views.delete_movie, name='delete'), - path('<int:movie_id>/review/', views.create_review, name='review'), - path('lists/', views.ListListView.as_view(), name='lists'), - path('lists/create', views.ListCreateView.as_view(), name='create-list'), -] diff --git a/movies/views.py b/movies/views.py deleted file mode 100644 index 3adf3b64e8ba8365822d81b819626e09fd8fae5b..0000000000000000000000000000000000000000 --- a/movies/views.py +++ /dev/null @@ -1,116 +0,0 @@ -from django.http import HttpResponseRedirect -from django.shortcuts import get_object_or_404, render -from django.urls import reverse, reverse_lazy -from django.views import generic - -from .forms import MovieForm, ProviderForm, ReviewForm -from .models import List, Movie, Provider, Review -from .temp_data import movie_data - - -def detail_movie(request, movie_id): - movie = get_object_or_404(Movie, pk=movie_id) - context = {'movie': movie} - return render(request, 'movies/detail.html', context) - - -class MovieListView(generic.ListView): - model = Movie - template_name = 'movies/index.html' - - -def search_movies(request): - context = {} - if request.GET.get('query', False): - search_term = request.GET['query'].lower() - movie_list = Movie.objects.filter(name__icontains=search_term) - context = {"movie_list": movie_list} - return render(request, 'movies/search.html', context) - - -def search_movies(request): - context = {} - if request.GET.get('query', False): - context = { - "movie_list": [ - m for m in movie_data - if request.GET['query'].lower() in m['name'].lower() - ] - } - # modifique esta linha - return render(request, 'movies/search.html', context) - - -def create_movie(request): - if request.method == 'POST': - movie_form = MovieForm(request.POST) - else: - movie_form = MovieForm() - context = {'movie_form': movie_form, } - return render(request, 'movies/create.html', context) - - -def update_movie(request, movie_id): - movie = get_object_or_404(Movie, pk=movie_id) - - if request.method == "POST": - form = MovieForm(request.POST) - if form.is_valid(): - movie.name = form.cleaned_data['name'] - movie.release_year = form.cleaned_data['release_year'] - movie.poster_url = form.cleaned_data['poster_url'] - movie.save() - return HttpResponseRedirect( - reverse('movies:detail', args=(movie.id, ))) - else: - form = MovieForm( - initial={ - 'name': movie.name, - 'release_year': movie.release_year, - 'poster_url': movie.poster_url - }) - - context = {'movie': movie, 'form': form} - return render(request, 'movies/update.html', context) - - -def delete_movie(request, movie_id): - movie = get_object_or_404(Movie, pk=movie_id) - - if request.method == "POST": - movie.delete() - return HttpResponseRedirect(reverse('movies:index')) - - context = {'movie': movie} - return render(request, 'movies/delete.html', context) - - -def create_review(request, movie_id): - movie = get_object_or_404(Movie, pk=movie_id) - if request.method == 'POST': - form = ReviewForm(request.POST) - if form.is_valid(): - review_author = form.cleaned_data['author'] - review_text = form.cleaned_data['text'] - review = Review(author=review_author, - text=review_text, - movie=movie) - review.save() - return HttpResponseRedirect( - reverse('movies:detail', args=(movie_id, ))) - else: - form = ReviewForm() - context = {'form': form, 'movie': movie} - return render(request, 'movies/review.html', context) - - -class ListListView(generic.ListView): - model = List - template_name = 'movies/lists.html' - - -class ListCreateView(generic.CreateView): - model = List - template_name = 'movies/create_list.html' - fields = ['name', 'author', 'movies'] - success_url = reverse_lazy('movies:lists') diff --git a/templates/base.html b/templates/base.html index b803c0528375392c01677ee36d9c2029fb171ca8..388e164b1a106462b54ce4f21f2f119842727616 100644 --- a/templates/base.html +++ b/templates/base.html @@ -24,8 +24,8 @@ </a> <nav id="navegacao-principal"> <ul> - <li><a href="{% url 'movies:index' %}">Ãlbuns</a></li> - <li><a href="{% url 'movies:lists' %}">Listas</a></li> <!-- adicionar esta linha --> + <li><a href="{% url 'albuns:index' %}">Ãlbuns</a></li> + <li><a href="{% url 'albuns:lists' %}">Listas</a></li> <!-- adicionar esta linha --> <li><a href="{% url 'about' %}">Sobre</a></li> </ul> </nav>