from django.contrib.auth.decorators import login_required
from django.core.exceptions import PermissionDenied
from django.core.urlresolvers import reverse
-from django.template import loader, Context
+from django.template import loader
from django.views.generic.base import TemplateView, RedirectView
from django.views.generic.list import ListView
+from django.contrib import messages
+from django.shortcuts import redirect
from emissions.models import *
from emissions.utils import period_program
+from panikombo.models import Topik
+from combo.data.models import Page
import emissions.views
import newsletter.views
+from .poll.models import Vote
+
class Home(TemplateView):
template_name = 'home.html'
def get_context_data(self, **kwargs):
context = super(Home, self).get_context_data(**kwargs)
+ try:
+ vote = Vote.objects.get(user=self.request.user)
+ except Vote.DoesNotExist:
+ context['display_poll_button'] = True
context['emissions'] = self.request.user.emissions.all().order_by('title')
context['news_categories'] = self.request.user.news_categories.all().order_by('title')
if self.request.user.has_perm('emissions.add_focus'):
- context['focused_items'] = Focus.objects.select_related()
+ context['focused_items'] = Focus.objects.select_related().filter(current=True)
+ context['recent_episodes'] = Episode.objects.select_related(
+ ).order_by('-last_update_timestamp')
+ context['recent_newsitems'] = NewsItem.objects.select_related(
+ ).order_by('-last_update_timestamp')
+ context['recent_soundfiles'] = SoundFile.objects.select_related(
+ ).order_by('-last_update_timestamp')
return context
class EmissionListView(emissions.views.EmissionListView):
pass
-emissions = login_required(EmissionListView.as_view())
+emissions_list = login_required(EmissionListView.as_view())
newsletter_body = loader.get_template('newsletter/body.html')
newsletter_subject = loader.get_template('newsletter/subject.txt')
- context = Context()
+ context = {}
date = datetime.datetime.today()
if date.weekday() > 0:
def get_redirect_url(self, object_type, object_id):
if not self.request.user.has_perm('emissions.add_focus'):
raise PermissionDenied()
+ messages.success(self.request, emissions.views.SUCCESS_MESSAGE)
if object_type == 'emission':
emission = Emission.objects.get(id=object_id)
try:
'slug': soundfile.episode.slug,
'emission_slug': soundfile.episode.emission.slug,
})
+ if object_type == 'page':
+ page = Page.objects.get(id=object_id)
+ try:
+ f = Focus.objects.get(page=page)
+ except Focus.DoesNotExist:
+ f = Focus()
+ f.current = True
+ f.page = page
+ f.save()
+ return reverse('combo-manager-page-view', kwargs={'pk': object_id})
focus_set = FocusSetView.as_view()
def get_redirect_url(self, object_type, object_id):
if not self.request.user.has_perm('emissions.delete_focus'):
raise PermissionDenied()
+ messages.success(self.request, emissions.views.SUCCESS_MESSAGE)
if object_type == 'emission':
emission = Emission.objects.get(id=object_id)
focus = Focus.objects.get(emission=emission)
'slug': soundfile.episode.slug,
'emission_slug': soundfile.episode.emission.slug,
})
+ if object_type == 'page':
+ focus = Focus.objects.get(page=object_id)
+ focus.current = False
+ focus.save()
+ return reverse('combo-manager-page-view', kwargs={'pk': object_id})
focus_unset = FocusUnsetView.as_view()
+
+def make_topik(request, page_pk):
+ if Topik.objects.filter(page__id=page_pk).count():
+ raise Exception('page already associated to topik')
+ topik = Topik(page_id=page_pk)
+ topik.save()
+ return redirect('combo-manager-page-view', pk=page_pk)