X-Git-Url: https://git.mdrn.pl/audio.git/blobdiff_plain/1a4d5a8854ec1d28af13d653255dfcc12aad7608..a183348d000329cb699570f151c98c88d751fff9:/src/archive/views.py?ds=sidebyside diff --git a/src/archive/views.py b/src/archive/views.py index 62a1216..42acffc 100644 --- a/src/archive/views.py +++ b/src/archive/views.py @@ -9,7 +9,9 @@ from django.urls import reverse from django.db.models import Q, Max from django.http import Http404, HttpResponse from django.shortcuts import render, redirect, get_object_or_404 +from django.utils.translation import gettext as _ from django.views.decorators.http import require_POST +from django.views.generic import ListView import mutagen @@ -184,6 +186,7 @@ def cancel_publishing(request, aid): audiobook.mp3_status = None audiobook.ogg_status = None audiobook.youtube_status = None + audiobook.youtube_queued = None audiobook.save() return redirect(file_managed, aid) @@ -219,7 +222,9 @@ def list_unpublished(request): def list_publishing(request): division = 'publishing' - objects = models.Audiobook.objects.exclude(mp3_status=None, ogg_status=None, youtube_status=None) + objects = models.Audiobook.objects.exclude( + mp3_status=None, ogg_status=None, youtube_status=None + ).order_by("youtube_queued", "title") objects_by_status = {} for o in objects: statuses = set() @@ -268,6 +273,15 @@ def file_managed(request, id): request.user.is_authenticated and request.user.oauthconnection_set.filter(access=True).exists()) + alerts = [] + parts_count = audiobook.parts_count + if parts_count > 1: + series = models.Audiobook.objects.filter(slug=audiobook.slug) + if not audiobook.index: + alerts.append(_('There is more than one part, but index is not set.')) + if set(series.values_list('index', flat=True)) != set(range(1, parts_count + 1)): + alerts.append(_('Part indexes are not 1..%(parts_count)d.') % {"parts_count": parts_count}) + return render(request, "archive/file_managed.html", locals()) @@ -287,3 +301,10 @@ def file_unmanaged(request, filename): err_exists = request.GET.get('exists') return render(request, "archive/file_unmanaged.html", locals()) + + +class BookView(ListView): + template_name = 'archive/book.html' + + def get_queryset(self): + return models.Audiobook.objects.filter(slug=self.kwargs['slug'])