]> git.0d.be Git - panikweb.git/blobdiff - panikweb/views.py
feeds: include fragment id in guid
[panikweb.git] / panikweb / views.py
index 1b8b0f4066190fdbfd0c6c115848c18b99e6f09e..6e5209bbf0707175b5e8d167b126f9d4423fe3e0 100644 (file)
@@ -104,7 +104,11 @@ class EmissionDetailView(DetailView, EmissionMixin):
         context = super(EmissionDetailView, self).get_context_data(**kwargs)
         context['schedules'] = Schedule.objects.select_related().filter(
                 emission=self.object).order_by('rerun', 'datetime')
-        context['news'] = NewsItem.objects.all().filter(emission=self.object.id).order_by('-date')[:3]
+        context['news'] = NewsItem.objects.all(
+                ).filter(emission=self.object.id
+                ).exclude(expiration_date__lt=date.today()  # expiration date
+                ).exclude(date__lt=date.today() - timedelta(days=60)
+                ).order_by('-date')[:3]
         try:
             nonstop_object = Nonstop.objects.get(slug=self.object.slug)
         except Nonstop.DoesNotExist:
@@ -262,6 +266,9 @@ class TimeCell:
                 end_time.minute)
         self.schedules.append(schedule)
 
+    def sorted_schedules(self):
+        return sorted(self.schedules, key=lambda x: x.week_sort_key())
+
     def __str__(self):
         if self.schedules:
             return ', '.join([x.emission.title for x in self.schedules])
@@ -745,7 +752,9 @@ class PodcastsFeed(Feed):
         return '[%s] %s' % (item.episode.emission.title, item.episode.title)
 
     def item_link(self, item):
-        return item.episode.get_absolute_url()
+        if item.fragment:
+            return item.episode.get_absolute_url() + '#%s' % item.id
+        return item.episode.get_absolute_url() + '#%s' % item.id
 
     def item_enclosure_url(self, item):
         current_site = Site.objects.get(id=settings.SITE_ID)