From: Guillaume Pellerin Date: Thu, 11 Jul 2013 22:06:48 +0000 (+0200) Subject: rearrange views X-Git-Tag: 1.1~569 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=60b2e5d30369c4b880dad7a3be71968acd76e14e;p=teleforma.git rearrange views --- diff --git a/teleforma/urls.py b/teleforma/urls.py index bc83091f..4a37504e 100644 --- a/teleforma/urls.py +++ b/teleforma/urls.py @@ -64,8 +64,8 @@ urlpatterns = patterns('', # Desk url(r'^desk/$', HomeRedirectView.as_view(), name="teleforma-desk"), - url(r'^desk/periods/(?P.*)/courses/$', PeriodListView.as_view(), name="teleforma-desk-period-list"), - url(r'^desk/periods/(?P.*)/courses/(?P.*)/detail/$', PeriodCourseView.as_view(), + url(r'^desk/periods/(?P.*)/courses/$', CourseListView.as_view(), name="teleforma-desk-period-list"), + url(r'^desk/periods/(?P.*)/courses/(?P.*)/detail/$', CourseView.as_view(), name="teleforma-desk-period-course"), url(r'^desk/periods/(?P.*)/medias/(?P.*)/detail/$', MediaView.as_view(), name="teleforma-media-detail"), diff --git a/teleforma/views/core.py b/teleforma/views/core.py index e7e79cf0..26bcfc88 100644 --- a/teleforma/views/core.py +++ b/teleforma/views/core.py @@ -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):