]> git.0d.be Git - panikdb.git/blobdiff - panikdb/views.py
load-piwik-stats: make request using requests module
[panikdb.git] / panikdb / views.py
index 6c82015ca6f84ae346a0a42a19cb9481f5f7a293..ec08d9b7460ab1bffde165994b93f9e82f1c84d2 100644 (file)
@@ -3,25 +3,41 @@ import datetime
 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
 
@@ -31,7 +47,7 @@ home = login_required(Home.as_view())
 class EmissionListView(emissions.views.EmissionListView):
     pass
 
-emissions = login_required(EmissionListView.as_view())
+emissions_list = login_required(EmissionListView.as_view())
 
 
 
@@ -55,7 +71,7 @@ class NewsletterCreateView(newsletter.views.NewsletterCreateView):
 
         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:
@@ -95,6 +111,7 @@ class FocusSetView(RedirectView):
     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:
@@ -139,6 +156,16 @@ class FocusSetView(RedirectView):
                 '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()
 
@@ -149,6 +176,7 @@ class FocusUnsetView(RedirectView):
     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)
@@ -177,5 +205,17 @@ class FocusUnsetView(RedirectView):
                 '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)