resolution conflits
authorAli Jetha <ali@U-AJ.(none)>
Thu, 30 Sep 2010 13:57:49 +0000 (09:57 -0400)
committerAli Jetha <ali@U-AJ.(none)>
Thu, 30 Sep 2010 13:57:49 +0000 (09:57 -0400)
auf_savoirs_en_partage/media/css/global.css
auf_savoirs_en_partage/savoirs/admin.py
auf_savoirs_en_partage/savoirs/admin_views.py
auf_savoirs_en_partage/savoirs/models.py
auf_savoirs_en_partage/savoirs/rss.py [new file with mode: 0644]
auf_savoirs_en_partage/scripts/articles.in
auf_savoirs_en_partage/templates/savoirs/index.html
auf_savoirs_en_partage/urls.py

index 4b002d8..2dd0ef2 100644 (file)
@@ -167,7 +167,11 @@ 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 }
 
+
 .errorlist {color:red}
 select     { width:100%; overflow:hidden }
 
 .publications_autre {border:1px solid #CCC; background:#FAFAFA; margin:10px; padding:10px; display:none;}
+
+#actualites {position: relative;}
+#rss-actualites {position: absolute; right: 26px; top: 10px;}
index 6159888..7ee1ec0 100644 (file)
@@ -237,7 +237,7 @@ admin.site.register(User, UserProfileAdmin)
 
 class ActualiteAdmin(admin.ModelAdmin):
     list_filter = ('visible',)
-    list_display = ('titre', 'date', 'visible')
+    list_display = ('titre', 'source', 'date', 'visible')
     actions = ['rendre_visible', 'rendre_invisible']
 
     # actions
index 1e6795d..497c049 100644 (file)
@@ -7,7 +7,7 @@ from django.template import Context, RequestContext
 from django.shortcuts import render_to_response
 
 from datamaster_modeles.models import Thematique, Pays, Region
-from savoirs.models import Record, Discipline, Actualite
+from savoirs.models import Record, Discipline, Actualite, Serveur
 
 # Dashboard
 class RecordDashboard:
index d0d4980..d042724 100644 (file)
@@ -23,6 +23,9 @@ class Discipline(models.Model):
 class SourceActualite(models.Model):
     nom = models.CharField(max_length=255)
     url = models.CharField(max_length=255)
+    
+    def __unicode__(self,):
+        return u"%s" % self.nom
 
 class Actualite(models.Model):
     id = models.AutoField(primary_key=True, db_column='id_actualite')
@@ -32,6 +35,7 @@ class Actualite(models.Model):
     date = models.DateField(db_column='date_actualite')
     visible = models.BooleanField(db_column='visible_actualite', default = False)
     ancienid = models.IntegerField(db_column='ancienId_actualite', blank = True, null = True)
+    source = models.ForeignKey(SourceActualite, blank = True, null = True)
 
     def __unicode__ (self):
         return "%s" % (self.titre)
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 c2f9494..3cc4bd3 100644 (file)
@@ -16,9 +16,9 @@ from django.conf import settings
 from savoirs.models import SourceActualite, Actualite
 import feedparser, datetime
 
-sources = [x.url for x in SourceActualite.objects.all()]
-for url in sources:
-    d = feedparser.parse(url)
+sources = SourceActualite.objects.all()
+for src in sources:
+    d = feedparser.parse(src.url)
     for entry in d.entries:
         if len(Actualite.objects.filter(url = entry.link)) == 0:
             print entry.updated_parsed
@@ -30,5 +30,6 @@ for url in sources:
                           url = entry.link,
                           date = date,
                           visible = False,
+                          source = src,
                           ancienid = 0)
             print a.save()
index 7965b31..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 %}
@@ -11,6 +12,9 @@
             <li class="clearfix">
             <span class="la-date">{{ article.date|date:"d F Y" }}</span>
             <a href="{{ article.url }}" class="le-titre">{{ article.titre }}</a>
+            {% if article.source %}
+            <span class="la-date">source: {{ article.source.nom }}</span>
+            {% endif %}
             {% comment %}
             <span class="le-resume">{{ article.texte }} -&nbsp;<a href="{{ article.url }}">Lire</a></span>
             {% 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: