Projet

Général

Profil

0002-manager-refactor-agenda-day-view.patch

Serghei Mihai, 04 septembre 2018 15:12

Télécharger (3,05 ko)

Voir les différences:

Subject: [PATCH 2/4] manager: refactor agenda day view

 chrono/manager/views.py | 41 ++++++++++++++++++++++-------------------
 1 file changed, 22 insertions(+), 19 deletions(-)
chrono/manager/views.py
148 148
agenda_view = AgendaView.as_view()
149 149

  
150 150

  
151
class AgendaDayView(DayArchiveView):
152
    template_name = 'chrono/manager_agenda_day_view.html'
151
class AgendaDateView(object):
153 152
    model = Event
154 153
    month_format = '%m'
155 154
    date_field = 'start_datetime'
......
168 167
        self.date = make_aware(datetime.datetime.strptime(
169 168
                '%s-%s-%s 06:00' % (self.get_year(), self.get_month(), self.get_day()),
170 169
                '%Y-%m-%d %H:%M'))
171
        return super(AgendaDayView, self).dispatch(request, *args, **kwargs)
172

  
173
    def get_queryset(self):
174
        queryset = super(AgendaDayView, self).get_queryset()
175
        queryset = queryset.filter(agenda=self.agenda).prefetch_related('booking_set')
176
        return queryset
170
        return super(AgendaDateView, self).dispatch(request, *args, **kwargs)
177 171

  
178 172
    def get_context_data(self, **kwargs):
179
        context = super(AgendaDayView, self).get_context_data(**kwargs)
173
        context = super(AgendaDateView, self).get_context_data(**kwargs)
180 174
        context['agenda'] = self.agenda
181 175
        try:
182 176
            context['hour_span'] = max(60 // self.agenda.get_base_meeting_duration(), 1)
......
185 179
        context['user_can_manage'] = self.agenda.can_be_managed(self.request.user)
186 180
        return context
187 181

  
182
    def get_queryset(self):
183
        queryset = super(AgendaDateView, self).get_queryset()
184
        queryset = queryset.filter(agenda=self.agenda).prefetch_related('booking_set')
185
        return queryset
186

  
187
    def get_days(self):
188
        return [str(x) for x in range(1, 32)]
189

  
190
    def get_months(self):
191
        return [(str(x), MONTHS[x]) for x in range(1, 13)]
192

  
193
    def get_years(self):
194
        year = now().year
195
        return [str(x) for x in range(year-1, year+5)]
196

  
197

  
198
class AgendaDayView(AgendaDateView, DayArchiveView):
199
    template_name = 'chrono/manager_agenda_day_view.html'
200

  
188 201
    def get_previous_day_url(self):
189 202
        previous_day = self.date.date() - datetime.timedelta(days=1)
190 203
        return reverse('chrono-manager-agenda-day-view',
......
252 265
            current_date += interval
253 266
            first = False
254 267

  
255
    def get_days(self):
256
        return [str(x) for x in range(1, 32)]
257

  
258
    def get_months(self):
259
        return [(str(x), MONTHS[x]) for x in range(1, 13)]
260

  
261
    def get_years(self):
262
        year = now().year
263
        return [str(x) for x in range(year-1, year+5)]
264

  
265 268
agenda_day_view = AgendaDayView.as_view()
266 269

  
267 270

  
268
-