from django.views.generic import TemplateView from django.views.generic import DetailView from django.contrib.auth.mixins import LoginRequiredMixin from .models import Event, Activity from equipment.models import EquipmentAttribution class Index(TemplateView): template_name = "event/index.html" class EventView(LoginRequiredMixin, DetailView): model = Event template_name = 'event/event.html' def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) event = self.object context['activities'] = (Activity.objects.filter(event=event) .order_by('beginning').prefetch_related( 'tags', 'places', 'staff', 'parent')) return context class ActivityView(LoginRequiredMixin, DetailView): model = Activity template_name = 'event/activity.html' def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) activity = self.object context['attributions'] = (EquipmentAttribution.objects .filter(activity=activity) .prefetch_related('equipment')) return context