ferme #425, flux agregees d'actualites
authorolivier larcheveque <olivier.larcheveque@u-ol.(none)>
Wed, 29 Sep 2010 19:44:32 +0000 (15:44 -0400)
committerolivier larcheveque <olivier.larcheveque@u-ol.(none)>
Wed, 29 Sep 2010 19:44:32 +0000 (15:44 -0400)
auf_savoirs_en_partage/media/css/global.css
auf_savoirs_en_partage/savoirs/rss.py [new file with mode: 0644]
auf_savoirs_en_partage/templates/savoirs/index.html
auf_savoirs_en_partage/urls.py

index 16a6675..0a48999 100644 (file)
@@ -166,3 +166,6 @@ ul.sous-menu li { display:inline; padding:0px 10px 0px 0px; font-size: 1.1em; }
 
 #repertoire { border:1px solid #bbb; padding:20px; margin: 10px; width:95% }
 #repertoire th, td { padding:5px }
+
+#actualites {position: relative;}
+#rss-actualites {position: absolute; right: 26px; top: 10px;}
diff --git a/auf_savoirs_en_partage/savoirs/rss.py b/auf_savoirs_en_partage/savoirs/rss.py
new file mode 100644 (file)
index 0000000..915577f
--- /dev/null
@@ -0,0 +1,32 @@
+# -*- encoding: utf-8 -*-
+from django.contrib.syndication.feeds import Feed
+from savoirs.models import Actualite
+from datetime import datetime, time
+from BeautifulSoup import BeautifulStoneSoup 
+
+class FilActualite(Feed):
+    title = "Dernières actualités du portail des ressources scientifiques et pédagogiques de l'AUF"
+    link = '/'
+    description = "Agrégateur de ressources scientifiques et pédagogiques de l'AUF"
+    limitation = 10
+
+    def items(self):
+        return Actualite.objects.filter(visible=True).order_by('-date')[:self.limitation]
+
+    def item_title(self, item):
+        return item.titre
+
+    def item_description(self, item):
+        return item.url
+
+    def item_link(self, item):
+        return item.url
+
+    def item_pubdate(self,item):
+        return  datetime.combine(item.date, time())
+
+
+    def item_author_name(self,item):
+        if item.source:
+            return item.source.nom
+
index 9fc51be..77a38d8 100644 (file)
@@ -2,8 +2,9 @@
 
 {% block contenu %}
 <div class="demi-gauche clearfix">
-    <div class="box">
+    <div id="actualites" class="box">
         <h4>Actualités</h4>
+        <a id="rss-actualites" href="/rss/actualites"><img src="/media/img/feed.png" /></a>
 
         <ul class="liste-de-l-accueil">
         {% comment %}<!-- dans la vue, cloner avoirListeActualitesAccueil -->{% endcomment %}
index ba979ca..3941d59 100644 (file)
@@ -1,11 +1,15 @@
 from django.conf.urls.defaults import patterns, include, handler500, url
 from django.conf import settings
 from django.contrib import admin
+from savoirs.rss import FilActualite
 
 admin.autodiscover()
 
 handler500 # Pyflakes
 
+site_feeds = {'actualites': FilActualite }
+
+
 urlpatterns = patterns(
     '',
     url(r'^admin_tools/', include('admin_tools.urls')),
@@ -45,6 +49,9 @@ urlpatterns = patterns(
 
     (r'^sites/$', 'sitotheque.views.index'),
     (r'^sites/(?P<id>\d+)/$', 'sitotheque.views.retrieve'),
+
+    (r'^rss/(.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict':site_feeds}),
+
 )
 
 if settings.DEBUG: