From 0a4e626dfe9b5887291259849368dabf6c7d4043 Mon Sep 17 00:00:00 2001 From: Brian Rosner Date: Thu, 30 Aug 2012 00:21:48 -0600 Subject: [PATCH] Started detail and edit views with slug field to Schedule --- symposion/schedule/models.py | 1 + symposion/schedule/urls.py | 9 +++++++++ symposion/schedule/views.py | 31 +++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 symposion/schedule/urls.py create mode 100644 symposion/schedule/views.py diff --git a/symposion/schedule/models.py b/symposion/schedule/models.py index 2e885bd9..151ecab2 100644 --- a/symposion/schedule/models.py +++ b/symposion/schedule/models.py @@ -7,6 +7,7 @@ from symposion.schedule.utils import InlineSet class Schedule(models.Model): section = models.OneToOneField(Section) + slug = models.SlugField(unique=True) class Day(models.Model): diff --git a/symposion/schedule/urls.py b/symposion/schedule/urls.py new file mode 100644 index 00000000..8b0450b0 --- /dev/null +++ b/symposion/schedule/urls.py @@ -0,0 +1,9 @@ +from django.conf.urls.defaults import url, patterns + + +urlpatterns = patterns("symposion.schedule.views", + url(r"^$", "schedule_detail", name="schedule_detail_singleton"), + url(r"^edit/$", "schedule_edit", name="schedule_edit_singleton"), + url(r"^(\w+)/edit/$", "schedule_detail", name="schedule_detail"), + url(r"^(\w+)/edit/$", "schedule_edit", name="schedule_edit"), +) diff --git a/symposion/schedule/views.py b/symposion/schedule/views.py new file mode 100644 index 00000000..248db247 --- /dev/null +++ b/symposion/schedule/views.py @@ -0,0 +1,31 @@ +from django.shortcuts import render, get_object_or_404 + +from symposion.schedule.models import Schedule + + +def schedule_detail(request, slug=None): + qs = Schedule.objects.all() + if pk is None: + schedule = next(iter(qs), None) + if schedule is None: + raise Http404() + else: + schedule = get_object_or_404(qs, slug=slug) + ctx = { + "schedule": schedule, + } + return render(request, "schedule/schedule_detail.html") + + +def schedule_edit(request, slug=None): + qs = Schedule.objects.all() + if pk is None: + schedule = next(iter(qs), None) + if schedule is None: + raise Http404() + else: + schedule = get_object_or_404(qs, slug=slug) + ctx = { + "schedule": schedule, + } + return render(request, "schedule/schedule_edit.html")