Skip to content
Snippets Groups Projects
Commit 0479a170 authored by Ernesto Rico Schmidt's avatar Ernesto Rico Schmidt
Browse files

added current/next/after show view & day/today schedule view.

parent df277467
No related branches found
No related tags found
No related merge requests found
* current/next/after next show view
* day schedule view
* week schedule view
* integrate calendar into day schedule view
* integrate tinyMCE into admin site
......
......@@ -3,14 +3,17 @@ from django.views.generic.detail import DetailView
from django.views.generic.list import ListView
from models import Host, Show, TimeSlot
from views import RecommendationsView, ShowListView
from views import CurrentShowView, DayScheduleView, RecommendationsView, ShowListView, TodayScheduleView
urlpatterns = patterns('',
('^hosts/$', ListView.as_view(model=Host, context_object_name='host_list')),
('^$', TodayScheduleView.as_view()),
('^(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/$', DayScheduleView.as_view()),
('^current/$', CurrentShowView.as_view()),
('^hosts/$', ListView.as_view(model=Host, context_object_name='hosts')),
url('^host/(?P<pk>\d+)/$', DetailView.as_view(model=Host), name='host-detail'),
('^recommendations/$', RecommendationsView.as_view()),
('^recommendations_box/$', RecommendationsView.as_view(template_name='program/recommendations_box.html')),
('^shows/$', ShowListView.as_view()),
url('^show/(?P<slug>[\w-]+)/$', DetailView.as_view(model=Show), name='show-detail'),
url('^timeslot/(?P<pk>\d+)/$', DetailView.as_view(model=TimeSlot), name='timeslot-detail'),
url('^(?P<pk>\d+)/$', DetailView.as_view(model=TimeSlot), name='timeslot-detail'),
)
\ No newline at end of file
from django.views.generic.list import ListView
from django.views.generic.base import TemplateView
from django.views.generic.dates import DayArchiveView, TodayArchiveView
from django.shortcuts import get_object_or_404
from models import BroadcastFormat, MusicFocus, Note, Show, ShowInformation, ShowTopic
from models import BroadcastFormat, MusicFocus, Note, Show, ShowInformation, ShowTopic, TimeSlot
from datetime import datetime, timedelta
from datetime import date, datetime, time, timedelta
class ShowListView(ListView):
context_object_name = 'show_list'
context_object_name = 'shows'
def get_context_data(self, **kwargs):
context = super(ShowListView, self).get_context_data(**kwargs)
context['broadcastformat_list'] = BroadcastFormat.objects.all()
context['musicfocus_list'] = MusicFocus.objects.all()
context['showinformation_list'] = ShowInformation.objects.all()
context['showtopic_list'] = ShowTopic.objects.all()
context['broadcastformats'] = BroadcastFormat.objects.all()
context['musicfoci'] = MusicFocus.objects.all()
context['showinformations'] = ShowInformation.objects.all()
context['showtopics'] = ShowTopic.objects.all()
return context
......@@ -47,3 +49,53 @@ class RecommendationsView(ListView):
in_one_week = now + timedelta(weeks=1)
return Note.objects.filter(status=1, timeslot__start__range=(now, in_one_week))[:10]
class TodayScheduleView(TodayArchiveView):
model = TimeSlot
allow_future = True
date_field = 'start'
context_object_name = 'timeslots'
template_name = 'program/today_schedule.html'
def get_context_data(self, **kwargs):
context = super(TodayScheduleView, self).get_context_data(**kwargs)
now = datetime.now()
midnight = datetime.combine(date.today(), time(23, 59))
context['broadcastformats'] = BroadcastFormat.objects.all()
context['recommendations'] = Note.objects.filter(status=1, timeslot__start__range=(now, midnight))
return context
class DayScheduleView(DayArchiveView):
model = TimeSlot
allow_future = True
date_field = 'start'
month_format = '%m'
context_object_name = 'timeslots'
template_name = 'program/day_schedule.html'
def get_context_data(self, **kwargs):
context = super(DayScheduleView, self).get_context_data(**kwargs)
year, month, day = map(int, [self.get_year(), self.get_month(), self.get_day()])
this_day = datetime(year, month, day, 0, 0)
midnight = datetime(year, month, day, 23, 59)
context['broadcastformats'] = BroadcastFormat.objects.all()
context['recommendations'] = Note.objects.filter(status=1, timeslot__start__range=(this_day, midnight))
return context
class CurrentShowView(TemplateView):
template_name = 'program/current.html'
def get_context_data(self, **kwargs):
context = super(CurrentShowView, self).get_context_data(**kwargs)
context['current'] = TimeSlot.objects.get_or_create_current()
context['next'] = TimeSlot.objects.get_or_create_current().get_next_by_start()
context['after_next'] = TimeSlot.objects.get_or_create_current().get_next_by_start().get_next_by_start()
return context
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment