manager: refactor agenda day view (#21326)

This commit is contained in:
Serghei Mihai 2018-06-20 23:21:04 +02:00
parent 22d137836f
commit 102beb5b4a
1 changed files with 22 additions and 19 deletions

View File

@ -148,8 +148,7 @@ class AgendaView(DetailView):
agenda_view = AgendaView.as_view()
class AgendaDayView(DayArchiveView):
template_name = 'chrono/manager_agenda_day_view.html'
class AgendaDateView(object):
model = Event
month_format = '%m'
date_field = 'start_datetime'
@ -168,15 +167,10 @@ class AgendaDayView(DayArchiveView):
self.date = make_aware(datetime.datetime.strptime(
'%s-%s-%s 06:00' % (self.get_year(), self.get_month(), self.get_day()),
'%Y-%m-%d %H:%M'))
return super(AgendaDayView, self).dispatch(request, *args, **kwargs)
def get_queryset(self):
queryset = super(AgendaDayView, self).get_queryset()
queryset = queryset.filter(agenda=self.agenda).prefetch_related('booking_set')
return queryset
return super(AgendaDateView, self).dispatch(request, *args, **kwargs)
def get_context_data(self, **kwargs):
context = super(AgendaDayView, self).get_context_data(**kwargs)
context = super(AgendaDateView, self).get_context_data(**kwargs)
context['agenda'] = self.agenda
try:
context['hour_span'] = max(60 // self.agenda.get_base_meeting_duration(), 1)
@ -185,6 +179,25 @@ class AgendaDayView(DayArchiveView):
context['user_can_manage'] = self.agenda.can_be_managed(self.request.user)
return context
def get_queryset(self):
queryset = super(AgendaDateView, self).get_queryset()
queryset = queryset.filter(agenda=self.agenda).prefetch_related('booking_set')
return queryset
def get_days(self):
return [str(x) for x in range(1, 32)]
def get_months(self):
return [(str(x), MONTHS[x]) for x in range(1, 13)]
def get_years(self):
year = now().year
return [str(x) for x in range(year-1, year+5)]
class AgendaDayView(AgendaDateView, DayArchiveView):
template_name = 'chrono/manager_agenda_day_view.html'
def get_previous_day_url(self):
previous_day = self.date.date() - datetime.timedelta(days=1)
return reverse('chrono-manager-agenda-day-view',
@ -252,16 +265,6 @@ class AgendaDayView(DayArchiveView):
current_date += interval
first = False
def get_days(self):
return [str(x) for x in range(1, 32)]
def get_months(self):
return [(str(x), MONTHS[x]) for x in range(1, 13)]
def get_years(self):
year = now().year
return [str(x) for x in range(year-1, year+5)]
agenda_day_view = AgendaDayView.as_view()