diff --git a/symposion/schedule/views.py b/symposion/schedule/views.py index 35f9e4326c24acbd4d1a3a0c4b8bec988475681e..98771b597088f9913392131f2ee44d182f0ba16e 100644 --- a/symposion/schedule/views.py +++ b/symposion/schedule/views.py @@ -1,4 +1,3 @@ -from django.core.exceptions import ObjectDoesNotExist from django.http import Http404, HttpResponse from django.shortcuts import render, get_object_or_404, redirect from django.template import loader, Context @@ -12,7 +11,7 @@ from symposion.schedule.timetable import TimeTable def fetch_schedule(slug): qs = Schedule.objects.all() - + if slug is None: if qs.count() > 1: raise Http404() @@ -21,14 +20,14 @@ def fetch_schedule(slug): raise Http404() else: schedule = get_object_or_404(qs, section__slug=slug) - + return schedule def schedule_conference(request): - + schedules = Schedule.objects.filter(published=True, hidden=False) - + sections = [] for schedule in schedules: days_qs = Day.objects.filter(schedule=schedule) @@ -37,7 +36,7 @@ def schedule_conference(request): "schedule": schedule, "days": days, }) - + ctx = { "sections": sections, } @@ -45,14 +44,14 @@ def schedule_conference(request): def schedule_detail(request, slug=None): - + schedule = fetch_schedule(slug) if not schedule.published and not request.user.is_staff: raise Http404() - + days_qs = Day.objects.filter(schedule=schedule) days = [TimeTable(day) for day in days_qs] - + ctx = { "schedule": schedule, "days": days, @@ -62,10 +61,10 @@ def schedule_detail(request, slug=None): def schedule_list(request, slug=None): schedule = fetch_schedule(slug) - + presentations = Presentation.objects.filter(section=schedule.section) presentations = presentations.exclude(cancelled=True) - + ctx = { "schedule": schedule, "presentations": presentations, @@ -75,32 +74,32 @@ def schedule_list(request, slug=None): def schedule_list_csv(request, slug=None): schedule = fetch_schedule(slug) - + presentations = Presentation.objects.filter(section=schedule.section) presentations = presentations.exclude(cancelled=True).order_by("id") - + response = HttpResponse(mimetype="text/csv") if slug: file_slug = slug else: file_slug = "presentations" response["Content-Disposition"] = 'attachment; filename="%s.csv"' % file_slug - + response.write(loader.get_template("schedule/schedule_list.csv").render(Context({ "presentations": presentations, - + }))) return response @login_required def schedule_edit(request, slug=None): - + if not request.user.is_staff: raise Http404() - + schedule = fetch_schedule(slug) - + days_qs = Day.objects.filter(schedule=schedule) days = [TimeTable(day) for day in days_qs] ctx = { @@ -112,12 +111,12 @@ def schedule_edit(request, slug=None): @login_required def schedule_slot_edit(request, slug, slot_pk): - + if not request.user.is_staff: raise Http404() - + slot = get_object_or_404(Slot, day__schedule__section__slug=slug, pk=slot_pk) - + if request.method == "POST": form = SlotEditForm(request.POST, slot=slot) if form.is_valid(): @@ -145,13 +144,13 @@ def schedule_slot_edit(request, slug, slot_pk): def schedule_presentation_detail(request, pk): - + presentation = get_object_or_404(Presentation, pk=pk) if presentation.slot: schedule = presentation.slot.day.schedule else: schedule = None - + ctx = { "presentation": presentation, "schedule": schedule,