]> git.parisson.com Git - teleforma.git/commitdiff
rearrange views
authorGuillaume Pellerin <yomguy@parisson.com>
Thu, 11 Jul 2013 22:06:48 +0000 (00:06 +0200)
committerGuillaume Pellerin <yomguy@parisson.com>
Thu, 11 Jul 2013 22:06:48 +0000 (00:06 +0200)
teleforma/urls.py
teleforma/views/core.py

index bc83091fad16724a157f16db9878f8e5976fabac..4a37504e3c7b54338ad8716d7ab8cad25e3cb0ab 100644 (file)
@@ -64,8 +64,8 @@ urlpatterns = patterns('',
 
     # Desk
     url(r'^desk/$', HomeRedirectView.as_view(), name="teleforma-desk"),
-    url(r'^desk/periods/(?P<period_id>.*)/courses/$', PeriodListView.as_view(), name="teleforma-desk-period-list"),
-    url(r'^desk/periods/(?P<period_id>.*)/courses/(?P<pk>.*)/detail/$', PeriodCourseView.as_view(),
+    url(r'^desk/periods/(?P<period_id>.*)/courses/$', CourseListView.as_view(), name="teleforma-desk-period-list"),
+    url(r'^desk/periods/(?P<period_id>.*)/courses/(?P<pk>.*)/detail/$', CourseView.as_view(),
         name="teleforma-desk-period-course"),
 
     url(r'^desk/periods/(?P<period_id>.*)/medias/(?P<pk>.*)/detail/$', MediaView.as_view(), name="teleforma-media-detail"),
index e7e79cf049078c86d2736bac2e2abc974c5c6ce5..26bcfc880daa471055545a43d096f4907bd17a81 100644 (file)
@@ -180,38 +180,6 @@ class HomeRedirectView(View):
             return HttpResponseRedirect(reverse('teleforma-login'))
 
 
-class CourseAccessMixin(View):
-
-    def get_context_data(self, **kwargs):
-        context = super(CourseAccessMixin, self).get_context_data(**kwargs)
-        context['all_courses'] = get_courses(self.request.user, num_order=True)
-        return context
-
-
-class CourseView(CourseAccessMixin, DetailView):
-
-    model = Course
-
-    def get_context_data(self, **kwargs):
-        context = super(CourseView, self).get_context_data(**kwargs)
-        course = self.get_object()
-        courses = []
-        for c in context['all_courses']:
-            if c['course'] == course:
-                courses = format_courses(courses, course=course, types=c['types'])
-        context['courses'] = courses
-        # context['notes'] = course.notes.all().filter(author=self.request.user)
-        content_type = ContentType.objects.get(app_label="teleforma", model="course")
-        context['room'] = get_room(name=course.title, content_type=content_type,
-                                   id=course.id)
-        context['doc_types'] = DocumentType.objects.all()
-        return context
-
-    @method_decorator(login_required)
-    def dispatch(self, *args, **kwargs):
-        return super(CourseView, self).dispatch(*args, **kwargs)
-
-
 class PeriodAccessMixin(View):
 
     period = None
@@ -232,48 +200,60 @@ class PeriodAccessMixin(View):
         return super(PeriodAccessMixin, self).render_to_response(context)
 
 
-class PeriodCourseView(PeriodAccessMixin, CourseView):
-    pass
+class CourseAccessMixin(View):
+
+    def get_context_data(self, **kwargs):
+        context = super(CourseAccessMixin, self).get_context_data(**kwargs)
+        context['all_courses'] = get_courses(self.request.user, num_order=True)
+        return context
 
 
-class CoursesView(CourseAccessMixin, ListView):
+class CourseListView(PeriodAccessMixin, CourseAccessMixin, ListView):
 
     model = Course
     template_name='teleforma/courses.html'
 
     def get_queryset(self):
-        courses = sorted(self.all_courses, key=lambda k: k['date_order'])
+        # courses = sorted(self.all_courses, key=lambda k: k['date_order'])
+        courses = get_courses(self.request.user, date_order=True, period=self.period)
         return courses[:5]
 
     def get_context_data(self, **kwargs):
-        context = super(CoursesView, self).get_context_data(**kwargs)
+        context = super(CourseListView, self).get_context_data(**kwargs)
         context['notes'] = Note.objects.filter(author=self.request.user)
         context['room'] = get_room(name='site')
         context['doc_types'] = DocumentType.objects.all()
+        context['list_view'] = True
         return context
 
     @method_decorator(login_required)
     def dispatch(self, *args, **kwargs):
-        return super(CoursesView, self).dispatch(*args, **kwargs)
-
+        return super(CourseListView, self).dispatch(*args, **kwargs)
 
-class PeriodListView(PeriodAccessMixin, CoursesView):
 
-    def get_queryset(self):
-        self.period = None
-        period = Period.objects.filter(id=int(self.kwargs['period_id']))
-        if period:
-            self.period = period[0]
+class CourseView(PeriodAccessMixin, CourseAccessMixin, DetailView):
 
-        self.all_courses = get_courses(self.request.user, date_order=True, period=self.period)
-        return self.all_courses[:5]
+    model = Course
 
     def get_context_data(self, **kwargs):
-        context = super(PeriodListView, self).get_context_data(**kwargs)
-        context['period'] = self.period
-        context['list_view'] = True
+        context = super(CourseView, self).get_context_data(**kwargs)
+        course = self.get_object()
+        courses = []
+        for c in context['all_courses']:
+            if c['course'] == course:
+                courses = format_courses(courses, course=course, types=c['types'])
+        context['courses'] = courses
+        # context['notes'] = course.notes.all().filter(author=self.request.user)
+        content_type = ContentType.objects.get(app_label="teleforma", model="course")
+        context['room'] = get_room(name=course.title, content_type=content_type,
+                                   id=course.id)
+        context['doc_types'] = DocumentType.objects.all()
         return context
 
+    @method_decorator(login_required)
+    def dispatch(self, *args, **kwargs):
+        return super(CourseView, self).dispatch(*args, **kwargs)
+
 
 class MediaView(PeriodAccessMixin, CourseAccessMixin, DetailView):