119 |
119 |
model = Agenda
|
120 |
120 |
|
121 |
121 |
def get_queryset(self):
|
122 |
|
queryset = super(HomepageView, self).get_queryset()
|
|
122 |
queryset = super().get_queryset()
|
123 |
123 |
if not self.request.user.is_staff:
|
124 |
124 |
group_ids = [x.id for x in self.request.user.groups.all()]
|
125 |
125 |
queryset = queryset.filter(Q(view_role_id__in=group_ids) | Q(edit_role_id__in=group_ids))
|
... | ... | |
749 |
749 |
def dispatch(self, request, *args, **kwargs):
|
750 |
750 |
if not request.user.is_staff:
|
751 |
751 |
raise PermissionDenied()
|
752 |
|
return super(AgendaAddView, self).dispatch(request, *args, **kwargs)
|
|
752 |
return super().dispatch(request, *args, **kwargs)
|
753 |
753 |
|
754 |
754 |
def get_success_url(self):
|
755 |
755 |
return reverse('chrono-manager-agenda-settings', kwargs={'pk': self.object.id})
|
... | ... | |
773 |
773 |
def dispatch(self, request, *args, **kwargs):
|
774 |
774 |
if not request.user.is_staff:
|
775 |
775 |
raise PermissionDenied()
|
776 |
|
return super(AgendasImportView, self).dispatch(request, *args, **kwargs)
|
|
776 |
return super().dispatch(request, *args, **kwargs)
|
777 |
777 |
|
778 |
778 |
def form_valid(self, form):
|
779 |
779 |
try:
|
... | ... | |
849 |
849 |
if global_noop:
|
850 |
850 |
messages.info(self.request, _('No data found.'))
|
851 |
851 |
|
852 |
|
return super(AgendasImportView, self).form_valid(form)
|
|
852 |
return super().form_valid(form)
|
853 |
853 |
|
854 |
854 |
|
855 |
855 |
agendas_import = AgendasImportView.as_view()
|
... | ... | |
865 |
865 |
self.set_agenda(**kwargs)
|
866 |
866 |
if not self.check_permissions(request.user):
|
867 |
867 |
raise PermissionDenied()
|
868 |
|
return super(ViewableAgendaMixin, self).dispatch(request, *args, **kwargs)
|
|
868 |
return super().dispatch(request, *args, **kwargs)
|
869 |
869 |
|
870 |
870 |
def check_permissions(self, user):
|
871 |
871 |
return self.agenda.can_be_viewed(user)
|
872 |
872 |
|
873 |
873 |
def get_context_data(self, **kwargs):
|
874 |
|
context = super(ViewableAgendaMixin, self).get_context_data(**kwargs)
|
|
874 |
context = super().get_context_data(**kwargs)
|
875 |
875 |
context['agenda'] = self.agenda
|
876 |
876 |
return context
|
877 |
877 |
|
... | ... | |
944 |
944 |
def dispatch(self, request, *args, **kwargs):
|
945 |
945 |
if not request.user.is_staff:
|
946 |
946 |
raise PermissionDenied()
|
947 |
|
return super(AgendaDeleteView, self).dispatch(request, *args, **kwargs)
|
|
947 |
return super().dispatch(request, *args, **kwargs)
|
948 |
948 |
|
949 |
949 |
def get_context_data(self, **kwargs):
|
950 |
|
context = super(AgendaDeleteView, self).get_context_data(**kwargs)
|
|
950 |
context = super().get_context_data(**kwargs)
|
951 |
951 |
context['cannot_delete'] = Booking.objects.filter(
|
952 |
952 |
event__agenda=self.get_object(),
|
953 |
953 |
event__start_datetime__gt=now(),
|
... | ... | |
961 |
961 |
context = self.get_context_data()
|
962 |
962 |
if context['cannot_delete']:
|
963 |
963 |
raise PermissionDenied()
|
964 |
|
return super(AgendaDeleteView, self).delete(request, *args, **kwargs)
|
|
964 |
return super().delete(request, *args, **kwargs)
|
965 |
965 |
|
966 |
966 |
|
967 |
967 |
agenda_delete = AgendaDeleteView.as_view()
|
... | ... | |
1043 |
1043 |
kwargs={'pk': kwargs['pk'], 'year': date.year, 'month': date.month, 'day': date.day},
|
1044 |
1044 |
)
|
1045 |
1045 |
)
|
1046 |
|
return super(AgendaDateView, self).dispatch(request, *args, **kwargs)
|
|
1046 |
return super().dispatch(request, *args, **kwargs)
|
1047 |
1047 |
|
1048 |
1048 |
def get_context_data(self, **kwargs):
|
1049 |
|
context = super(AgendaDateView, self).get_context_data(**kwargs)
|
|
1049 |
context = super().get_context_data(**kwargs)
|
1050 |
1050 |
context['agenda'] = self.agenda
|
1051 |
1051 |
if self.agenda.kind != 'events':
|
1052 |
1052 |
try:
|
... | ... | |
1209 |
1209 |
|
1210 |
1210 |
class AgendaMonthView(AgendaDateView, MonthArchiveView):
|
1211 |
1211 |
def get_queryset(self):
|
1212 |
|
qs = super(AgendaMonthView, self).get_queryset()
|
|
1212 |
qs = super().get_queryset()
|
1213 |
1213 |
if self.agenda.kind != 'events':
|
1214 |
1214 |
return qs
|
1215 |
1215 |
return Event.annotate_queryset(qs).order_by('start_datetime', 'label')
|
... | ... | |
1236 |
1236 |
return ['chrono/manager_%s_agenda_month_view.html' % self.agenda.kind]
|
1237 |
1237 |
|
1238 |
1238 |
def get_context_data(self, **kwargs):
|
1239 |
|
context = super(AgendaMonthView, self).get_context_data(**kwargs)
|
|
1239 |
context = super().get_context_data(**kwargs)
|
1240 |
1240 |
if self.agenda.kind == 'events':
|
1241 |
1241 |
context['cancellation_reports'] = EventCancellationReport.objects.filter(
|
1242 |
1242 |
event__agenda=self.agenda,
|
... | ... | |
1439 |
1439 |
self.agenda = self.get_object().agenda
|
1440 |
1440 |
if not self.agenda.can_be_managed(request.user):
|
1441 |
1441 |
raise PermissionDenied()
|
1442 |
|
return super(ManagedAgendaSubobjectMixin, self).dispatch(request, *args, **kwargs)
|
|
1442 |
return super().dispatch(request, *args, **kwargs)
|
1443 |
1443 |
|
1444 |
1444 |
def get_context_data(self, **kwargs):
|
1445 |
|
context = super(ManagedAgendaSubobjectMixin, self).get_context_data(**kwargs)
|
|
1445 |
context = super().get_context_data(**kwargs)
|
1446 |
1446 |
context['agenda'] = self.object.agenda
|
1447 |
1447 |
return context
|
1448 |
1448 |
|
... | ... | |
1460 |
1460 |
raise Http404()
|
1461 |
1461 |
if not self.desk.agenda.can_be_managed(request.user):
|
1462 |
1462 |
raise PermissionDenied()
|
1463 |
|
return super(ManagedDeskMixin, self).dispatch(request, *args, **kwargs)
|
|
1463 |
return super().dispatch(request, *args, **kwargs)
|
1464 |
1464 |
|
1465 |
1465 |
def get_form_kwargs(self):
|
1466 |
1466 |
kwargs = super().get_form_kwargs()
|
... | ... | |
1470 |
1470 |
return kwargs
|
1471 |
1471 |
|
1472 |
1472 |
def get_context_data(self, **kwargs):
|
1473 |
|
context = super(ManagedDeskMixin, self).get_context_data(**kwargs)
|
|
1473 |
context = super().get_context_data(**kwargs)
|
1474 |
1474 |
context['desk'] = self.desk
|
1475 |
1475 |
context['agenda'] = self.desk.agenda
|
1476 |
1476 |
return context
|
... | ... | |
1486 |
1486 |
self.desk = self.get_object().desk
|
1487 |
1487 |
if not self.desk.agenda.can_be_managed(request.user):
|
1488 |
1488 |
raise PermissionDenied()
|
1489 |
|
return super(ManagedDeskSubobjectMixin, self).dispatch(request, *args, **kwargs)
|
|
1489 |
return super().dispatch(request, *args, **kwargs)
|
1490 |
1490 |
|
1491 |
1491 |
def get_context_data(self, **kwargs):
|
1492 |
|
context = super(ManagedDeskSubobjectMixin, self).get_context_data(**kwargs)
|
|
1492 |
context = super().get_context_data(**kwargs)
|
1493 |
1493 |
context['desk'] = self.object.desk
|
1494 |
1494 |
context['agenda'] = self.object.desk.agenda
|
1495 |
1495 |
return context
|
... | ... | |
1509 |
1509 |
|
1510 |
1510 |
if not self.agenda.can_be_managed(request.user):
|
1511 |
1511 |
raise PermissionDenied()
|
1512 |
|
return super(ManagedTimePeriodMixin, self).dispatch(request, *args, **kwargs)
|
|
1512 |
return super().dispatch(request, *args, **kwargs)
|
1513 |
1513 |
|
1514 |
1514 |
def get_context_data(self, **kwargs):
|
1515 |
|
context = super(ManagedTimePeriodMixin, self).get_context_data(**kwargs)
|
|
1515 |
context = super().get_context_data(**kwargs)
|
1516 |
1516 |
context['agenda'] = self.agenda
|
1517 |
1517 |
return context
|
1518 |
1518 |
|
... | ... | |
1571 |
1571 |
return self.agenda
|
1572 |
1572 |
|
1573 |
1573 |
def get_context_data(self, **kwargs):
|
1574 |
|
context = super(AgendaSettings, self).get_context_data(**kwargs)
|
|
1574 |
context = super().get_context_data(**kwargs)
|
1575 |
1575 |
if self.agenda.accept_meetings():
|
1576 |
1576 |
context['meeting_types'] = self.object.iter_meetingtypes()
|
1577 |
1577 |
if self.agenda.kind == 'virtual':
|
... | ... | |
1661 |
1661 |
content_type = 'text/csv'
|
1662 |
1662 |
|
1663 |
1663 |
def get_context_data(self, **kwargs):
|
1664 |
|
context = super(AgendaImportEventsSampleView, self).get_context_data(**kwargs)
|
|
1664 |
context = super().get_context_data(**kwargs)
|
1665 |
1665 |
some_future_date = datetime.datetime.now() + datetime.timedelta(days=10)
|
1666 |
1666 |
some_future_date = some_future_date.replace(hour=14, minute=0, second=0)
|
1667 |
1667 |
context['some_future_date'] = some_future_date
|
... | ... | |
1697 |
1697 |
_('Event "%s" start date has changed. Do not forget to notify the registrants.')
|
1698 |
1698 |
% (event.label or event.slug),
|
1699 |
1699 |
)
|
1700 |
|
return super(AgendaImportEventsView, self).form_valid(form)
|
|
1700 |
return super().form_valid(form)
|
1701 |
1701 |
|
1702 |
1702 |
|
1703 |
1703 |
agenda_import_events = AgendaImportEventsView.as_view()
|
... | ... | |
1884 |
1884 |
return ['chrono/manager_event_detail.html']
|
1885 |
1885 |
|
1886 |
1886 |
def get_context_data(self, **kwargs):
|
1887 |
|
context = super(EventDetailView, self).get_context_data(**kwargs)
|
|
1887 |
context = super().get_context_data(**kwargs)
|
1888 |
1888 |
context['user_can_manage'] = self.agenda.can_be_managed(self.request.user)
|
1889 |
1889 |
event = self.get_object()
|
1890 |
1890 |
context['booked'] = event.booking_set.filter(
|
... | ... | |
1924 |
1924 |
pk_url_kwarg = 'event_pk'
|
1925 |
1925 |
|
1926 |
1926 |
def get_context_data(self, **kwargs):
|
1927 |
|
context = super(EventDeleteView, self).get_context_data(**kwargs)
|
|
1927 |
context = super().get_context_data(**kwargs)
|
1928 |
1928 |
context['cannot_delete'] = bool(
|
1929 |
1929 |
self.object.booking_set.filter(cancellation_datetime__isnull=True).exists()
|
1930 |
1930 |
and self.object.start_datetime > now()
|
... | ... | |
1937 |
1937 |
context = self.get_context_data()
|
1938 |
1938 |
if context['cannot_delete']:
|
1939 |
1939 |
raise PermissionDenied()
|
1940 |
|
return super(EventDeleteView, self).delete(request, *args, **kwargs)
|
|
1940 |
return super().delete(request, *args, **kwargs)
|
1941 |
1941 |
|
1942 |
1942 |
def get_success_url(self):
|
1943 |
1943 |
if self.request.GET.get('next') == 'settings' or self.request.POST.get('next') == 'settings':
|
... | ... | |
2189 |
2189 |
model = MeetingType
|
2190 |
2190 |
|
2191 |
2191 |
def get_context_data(self, **kwargs):
|
2192 |
|
context = super(MeetingTypeDeleteView, self).get_context_data(**kwargs)
|
|
2192 |
context = super().get_context_data(**kwargs)
|
2193 |
2193 |
meeting_type = self.get_object()
|
2194 |
2194 |
context['cannot_delete'] = False
|
2195 |
2195 |
|
... | ... | |
2257 |
2257 |
process_time_period_add_form(form, desk=desk)
|
2258 |
2258 |
else:
|
2259 |
2259 |
process_time_period_add_form(form, desk=self.desk)
|
2260 |
|
return super(AgendaAddTimePeriodView, self).form_valid(form)
|
|
2260 |
return super().form_valid(form)
|
2261 |
2261 |
|
2262 |
2262 |
|
2263 |
2263 |
agenda_add_time_period = AgendaAddTimePeriodView.as_view()
|
... | ... | |
2272 |
2272 |
|
2273 |
2273 |
def form_valid(self, form):
|
2274 |
2274 |
process_time_period_add_form(form, agenda=self.agenda)
|
2275 |
|
return super(VirtualAgendaAddTimePeriodView, self).form_valid(form)
|
|
2275 |
return super().form_valid(form)
|
2276 |
2276 |
|
2277 |
2277 |
|
2278 |
2278 |
virtual_agenda_add_time_period = VirtualAgendaAddTimePeriodView.as_view()
|
... | ... | |
2353 |
2353 |
return super().get_queryset().filter(agenda__kind='meetings')
|
2354 |
2354 |
|
2355 |
2355 |
def get_context_data(self, **kwargs):
|
2356 |
|
context = super(DeskDeleteView, self).get_context_data(**kwargs)
|
|
2356 |
context = super().get_context_data(**kwargs)
|
2357 |
2357 |
context['cannot_delete'] = Booking.objects.filter(
|
2358 |
2358 |
event__desk=self.get_object(), event__start_datetime__gt=now(), cancellation_datetime__isnull=True
|
2359 |
2359 |
).exists()
|
... | ... | |
2365 |
2365 |
context = self.get_context_data()
|
2366 |
2366 |
if context['cannot_delete']:
|
2367 |
2367 |
raise PermissionDenied()
|
2368 |
|
return super(DeskDeleteView, self).delete(request, *args, **kwargs)
|
|
2368 |
return super().delete(request, *args, **kwargs)
|
2369 |
2369 |
|
2370 |
2370 |
|
2371 |
2371 |
desk_delete = DeskDeleteView.as_view()
|
... | ... | |
2393 |
2393 |
self.agenda = self.get_object().virtual_agenda
|
2394 |
2394 |
if not self.agenda.can_be_managed(request.user):
|
2395 |
2395 |
raise PermissionDenied()
|
2396 |
|
return super(VirtualMemberDeleteView, self).dispatch(request, *args, **kwargs)
|
|
2396 |
return super().dispatch(request, *args, **kwargs)
|
2397 |
2397 |
|
2398 |
2398 |
def get_context_data(self, **kwargs):
|
2399 |
|
context = super(VirtualMemberDeleteView, self).get_context_data(**kwargs)
|
|
2399 |
context = super().get_context_data(**kwargs)
|
2400 |
2400 |
context['agenda'] = self.agenda
|
2401 |
2401 |
return context
|
2402 |
2402 |
|
... | ... | |
2481 |
2481 |
)
|
2482 |
2482 |
|
2483 |
2483 |
def get_context_data(self, **kwargs):
|
2484 |
|
context = super(TimePeriodExceptionListView, self).get_context_data(**kwargs)
|
|
2484 |
context = super().get_context_data(**kwargs)
|
2485 |
2485 |
context['user_can_manage'] = self.desk.agenda.can_be_managed(self.request.user)
|
2486 |
2486 |
return context
|
2487 |
2487 |
|
... | ... | |
2494 |
2494 |
|
2495 |
2495 |
def get_queryset(self):
|
2496 |
2496 |
# but limit queryset
|
2497 |
|
return super(TimePeriodExceptionExtractListView, self).get_queryset()[:10]
|
|
2497 |
return super().get_queryset()[:10]
|
2498 |
2498 |
|
2499 |
2499 |
|
2500 |
2500 |
time_period_exception_extract_list = TimePeriodExceptionExtractListView.as_view()
|
... | ... | |
2511 |
2511 |
if success_url in referer:
|
2512 |
2512 |
return success_url
|
2513 |
2513 |
|
2514 |
|
success_url = super(TimePeriodExceptionDeleteView, self).get_success_url()
|
|
2514 |
success_url = super().get_success_url()
|
2515 |
2515 |
if self.desk and 'from_popup' in self.request.GET:
|
2516 |
2516 |
success_url = '{}?display_exceptions={}'.format(success_url, self.desk.pk)
|
2517 |
2517 |
return success_url
|
... | ... | |
2551 |
2551 |
template_name = 'chrono/manager_import_exceptions.html'
|
2552 |
2552 |
|
2553 |
2553 |
def get_context_data(self, **kwargs):
|
2554 |
|
context = super(DeskImportTimePeriodExceptionsView, self).get_context_data(**kwargs)
|
|
2554 |
context = super().get_context_data(**kwargs)
|
2555 |
2555 |
desk = self.get_object()
|
2556 |
2556 |
context['exception_sources'] = desk.timeperiodexceptionsource_set.all()
|
2557 |
2557 |
context['desk'] = desk
|
... | ... | |
2599 |
2599 |
return self.form_invalid(form)
|
2600 |
2600 |
|
2601 |
2601 |
messages.info(self.request, _('Exceptions will be imported in a few minutes.'))
|
2602 |
|
return super(DeskImportTimePeriodExceptionsView, self).form_valid(form)
|
|
2602 |
return super().form_valid(form)
|
2603 |
2603 |
|
2604 |
2604 |
|
2605 |
2605 |
desk_import_time_period_exceptions = DeskImportTimePeriodExceptionsView.as_view()
|
... | ... | |
2640 |
2640 |
template_name = 'chrono/manager_replace_exceptions.html'
|
2641 |
2641 |
|
2642 |
2642 |
def get_queryset(self):
|
2643 |
|
queryset = super(TimePeriodExceptionSourceReplaceView, self).get_queryset()
|
|
2643 |
queryset = super().get_queryset()
|
2644 |
2644 |
return queryset.filter(ics_filename__isnull=False)
|
2645 |
2645 |
|
2646 |
2646 |
def import_file(self, desk, form):
|
... | ... | |
2663 |
2663 |
return self.form_invalid(form)
|
2664 |
2664 |
|
2665 |
2665 |
messages.info(self.request, _('Exceptions will be synchronized in a few minutes.'))
|
2666 |
|
return super(TimePeriodExceptionSourceReplaceView, self).form_valid(form)
|
|
2666 |
return super().form_valid(form)
|
2667 |
2667 |
|
2668 |
2668 |
|
2669 |
2669 |
time_period_exception_source_replace = TimePeriodExceptionSourceReplaceView.as_view()
|
... | ... | |
2673 |
2673 |
model = TimePeriodExceptionSource
|
2674 |
2674 |
|
2675 |
2675 |
def get_queryset(self):
|
2676 |
|
queryset = super(TimePeriodExceptionSourceRefreshView, self).get_queryset()
|
|
2676 |
queryset = super().get_queryset()
|
2677 |
2677 |
return queryset.filter(ics_url__isnull=False)
|
2678 |
2678 |
|
2679 |
2679 |
def import_file(self, desk):
|
... | ... | |
3062 |
3062 |
model = UnavailabilityCalendar
|
3063 |
3063 |
|
3064 |
3064 |
def get_context_data(self, **kwargs):
|
3065 |
|
context = super(UnavailabilityCalendarSettings, self).get_context_data(**kwargs)
|
|
3065 |
context = super().get_context_data(**kwargs)
|
3066 |
3066 |
context['unavailability_calendar'] = self.object
|
3067 |
3067 |
return context
|
3068 |
3068 |
|
... | ... | |
3101 |
3101 |
return kwargs
|
3102 |
3102 |
|
3103 |
3103 |
def get_context_data(self, **kwargs):
|
3104 |
|
context = super(UnavailabilityCalendarAddUnavailabilityView, self).get_context_data(**kwargs)
|
|
3104 |
context = super().get_context_data(**kwargs)
|
3105 |
3105 |
context['base_template'] = 'chrono/manager_unavailability_calendar_settings.html'
|
3106 |
3106 |
context['cancel_url'] = reverse(
|
3107 |
3107 |
'chrono-manager-unavailability-calendar-settings', kwargs={'pk': self.unavailability_calendar.pk}
|