Skip to content
Snippets Groups Projects
views.py 1.9 KiB
Newer Older
  • Learn to ignore specific revisions
  • from django.utils.translation import gettext_lazy as _
    
    from django.views.generic import ListView, DetailView
    
    from AKModel.models import AK, AKCategory, AKTag
    
    from AKModel.views import FilterByEventSlugMixin
    
    
    class SubmissionOverviewView(FilterByEventSlugMixin, ListView):
        model = AK
        context_object_name = "AKs"
        template_name = "AKSubmission/submission_overview.html"
    
        ordering = ['category']
    
    
    
    class AKDetailView(DetailView):
        model = AK
        context_object_name = "ak"
        template_name = "AKSubmission/ak_detail.html"
    
    
    class AKListView(FilterByEventSlugMixin, ListView):
        model = AK
        context_object_name = "AKs"
        template_name = "AKSubmission/ak_list.html"
        filter_condition_string = ""
    
        def get_context_data(self, *, object_list=None, **kwargs):
            context = super().get_context_data(object_list=object_list, **kwargs)
    
            context['categories'] = AKCategory.objects.all()
    
            context["tags"] = AKTag.objects.all()
            context["filter_condition_string"] = self.filter_condition_string
            return context
    
    
    
    class AKListByCategoryView(AKListView):
        category = None
    
            # Find category based on event slug
    
                self.category = AKCategory.objects.get(pk=self.kwargs['category_pk'])
                self.filter_condition_string = f"{_('Category')} = {self.category.name}"
            except AKCategory.DoesNotExist:
    
            return super().get_queryset().filter(category=self.category)
    
    
    
    class AKListByTagView(AKListView):
        tag = None
    
        def get_queryset(self):
    
            # Find category based on event slug
    
            try:
                self.tag = AKTag.objects.get(pk=self.kwargs['tag_pk'])
                self.filter_condition_string = f"{_('Tag')} = {self.tag.name}"
            except AKTag.DoesNotExist:
                raise Http404
            return super().get_queryset().filter(tags=self.tag)