Ajout de filtres discipline/région dans l'admin pour tous les modèles.
authorEric Mc Sween <eric.mcsween@gmail.com>
Tue, 2 Nov 2010 20:46:31 +0000 (16:46 -0400)
committerEric Mc Sween <eric.mcsween@gmail.com>
Tue, 2 Nov 2010 20:46:31 +0000 (16:46 -0400)
Demande #632

auf_savoirs_en_partage/savoirs/admin.py
auf_savoirs_en_partage/savoirs/models.py
auf_savoirs_en_partage/sitotheque/admin.py
auf_savoirs_en_partage/sitotheque/models.py
auf_savoirs_en_partage/templates/admin/filter.html

index d334516..d7c1bc5 100644 (file)
@@ -84,39 +84,16 @@ class ReadOnlyAdminFields(object):
 
 
 class RecordAdmin(ReadOnlyAdminFields, admin.ModelAdmin):
-    fields = [
-        'server',
-        'title',
-        'creator',
-        'description',
-        'modified',
-        'identifier',
-        'uri',
-        'source',
-        'contributor',
-        'publisher',
-        'type',
-        'format',
-        'language',
-        'disciplines',
-        'thematiques',
-        'pays',
-        'regions',
-        'validated',
-        ]
+    fields = ['server', 'title', 'creator', 'description', 'modified',
+              'identifier', 'uri', 'source', 'contributor', 'publisher',
+              'type', 'format', 'language', 'disciplines', 'thematiques',
+              'pays', 'regions', 'validated']
 
     search_fields = []
     readonly_fields = []
 
-    list_filter = (
-      'validated',
-      'server',
-      'listsets',
-      'pays',
-      'regions',
-      'disciplines',
-      'thematiques',
-      )
+    list_filter = ('validated', 'server', 'listsets', 'pays', 'regions',
+                   'disciplines', 'thematiques')
     list_display = (
       #OAI et extra AUF
       'title',
@@ -144,11 +121,8 @@ class RecordAdmin(ReadOnlyAdminFields, admin.ModelAdmin):
       'est_complet',
       'validated',
     )
-    actions = ['valider_references',
-               'invalider_references',
-               'assigner_pays',
-               'assigner_regions',
-               'assigner_disciplines',
+    actions = ['valider_references', 'invalider_references',
+               'assigner_pays', 'assigner_regions', 'assigner_disciplines',
                'assigner_thematiques']
 
     # fonctions pour présenter l'information
@@ -238,7 +212,7 @@ admin.site.unregister(User)
 admin.site.register(User, UserProfileAdmin)
 
 class ActualiteAdmin(admin.ModelAdmin):
-    list_filter = ('visible',)
+    list_filter = ('visible', 'disciplines', 'regions')
     list_display = ('titre', 'source', 'date', 'visible')
     actions = ['rendre_visible', 'rendre_invisible', 'assigner_regions', 'assigner_disciplines']
 
@@ -278,7 +252,7 @@ class EvenementAdminForm(forms.ModelForm):
 
 class EvenementAdmin(admin.ModelAdmin):
     form = EvenementAdminForm
-    list_filter = ('approuve',)
+    list_filter = ('approuve', 'regions', 'discipline', 'discipline_secondaire')
     list_display = ('titre', 'debut', 'fin', 'lieu', 'approuve')
     fields = ['titre', 'discipline', 'discipline_secondaire', 'mots_cles',
               'type', 'fuseau', 'debut', 'fin', 'lieu', 'regions',
index ddb0b78..31d5732 100644 (file)
@@ -53,7 +53,7 @@ class Actualite(models.Model):
     ancienid = models.IntegerField(db_column='ancienId_actualite', blank = True, null = True)
     source = models.ForeignKey(SourceActualite, blank = True, null = True)
     disciplines = models.ManyToManyField(Discipline, blank=True, related_name="actualites")
-    regions = models.ManyToManyField(Region, blank=True, related_name="actualites", verbose_name='Régions')
+    regions = models.ManyToManyField(Region, blank=True, related_name="actualites", verbose_name='régions')
 
     objects = ActualiteManager()
 
@@ -112,18 +112,16 @@ class Evenement(models.Model):
                     (None, u'Autre'))
                    
     uid = models.CharField(max_length = 255, default = str(uuid.uuid1()))
-    approuve = models.BooleanField(default = False)
+    approuve = models.BooleanField(default=False, verbose_name=u'approuvé')
     titre = models.CharField(max_length=255)
     discipline = models.ForeignKey('Discipline', related_name = "discipline", 
                                    blank = True, null = True)
-    discipline_secondaire = models.ForeignKey('Discipline', related_name = \
-                                              "discipline_secondaire", 
-                                              verbose_name = \
-                                              "Discipline secondaire", 
-                                              blank = True, null = True)
+    discipline_secondaire = models.ForeignKey('Discipline', related_name="discipline_secondaire", 
+                                              verbose_name=u"discipline secondaire", 
+                                              blank=True, null=True)
     mots_cles = models.TextField('Mots-Clés', blank = True, null = True)
     type = models.CharField(max_length=255, choices=TYPE_CHOICES)
-    fuseau = TimeZoneField(verbose_name = 'Fuseau horaire')
+    fuseau = TimeZoneField(verbose_name='fuseau horaire')
     debut = models.DateTimeField(default = datetime.datetime.now)
     fin = models.DateTimeField(default = datetime.datetime.now)
     lieu = models.TextField()
@@ -131,7 +129,7 @@ class Evenement(models.Model):
     #fichiers = TODO?
     contact = models.TextField(blank = True, null = True)
     url = models.CharField(max_length=255, blank = True, null = True)
-    regions = models.ManyToManyField(Region, blank=True, related_name="evenements", verbose_name='Régions')
+    regions = models.ManyToManyField(Region, blank=True, related_name="evenements", verbose_name='régions')
 
     objects = EvenementManager()
 
@@ -334,10 +332,10 @@ class Record(models.Model):
     
     #fonctionnement interne
     id = models.AutoField(primary_key = True)
-    server = models.CharField(max_length = 255)
+    server = models.CharField(max_length = 255, verbose_name=u'serveur')
     last_update = models.CharField(max_length = 255)
     last_checksum = models.CharField(max_length = 255)
-    validated = models.BooleanField(default = True)
+    validated = models.BooleanField(default=True, verbose_name=u'validé')
 
     #OAI
     title = models.TextField(null = True, blank = True)
index 0c075b3..2b447d0 100644 (file)
@@ -5,7 +5,8 @@ from django.http import HttpResponseRedirect
 from models import Site
 
 class SiteAdmin(admin.ModelAdmin):
-    actions = ['assigner_regions', 'assigner_disciplines']
+    actions = ('assigner_regions', 'assigner_disciplines')
+    list_filter = ('discipline', 'regions')
 
     def assigner_regions(self, request, queryset):
         selected = request.POST.getlist(admin.ACTION_CHECKBOX_NAME)
index 09735d6..0026250 100644 (file)
@@ -49,10 +49,10 @@ class SiteQuerySet(models.query.QuerySet):
 class Site(models.Model):
     """Fiche d'info d'un site web"""
     url = models.URLField(verify_exists=False)   # dc:identifier (dc:source?)
-    titre = models.CharField(max_length=255, verbose_name='Titre')   # dc.title
+    titre = models.CharField(max_length=255, verbose_name='titre')   # dc.title
     description = models.TextField(null=True, blank=True)
-    editeur = models.CharField(max_length=255, null=True, blank=True, verbose_name='Éditeur')    # dc.publisher : organisation resp
-    auteur = models.CharField(max_length=255, null=True, blank=True, verbose_name='Auteur')  # dc.creator : nom, prénom
+    editeur = models.CharField(max_length=255, null=True, blank=True, verbose_name='éditeur')    # dc.publisher : organisation resp
+    auteur = models.CharField(max_length=255, null=True, blank=True, verbose_name='auteur')  # dc.creator : nom, prénom
     
     #auf_partenaire = models.BooleanField()    # dc.contributor
     
@@ -65,8 +65,8 @@ class Site(models.Model):
     mots_cles =  models.TextField(verbose_name='Mots-clés', null=True, blank=True)    # dc:subject    # indexation libre
 
     # source    # dc:source (dc:relation?)
-    pays = models.ForeignKey(Pays, null = True, blank=True, db_column='pays', to_field='code', verbose_name = 'Pays')
-    regions = models.ManyToManyField(Region, blank=True, related_name="sites", verbose_name='Régions')
+    pays = models.ForeignKey(Pays, null = True, blank=True, db_column='pays', to_field='code', verbose_name = 'pays')
+    regions = models.ManyToManyField(Region, blank=True, related_name="sites", verbose_name='régions')
     
     # meta
     actif = models.BooleanField()
index c2811c6..eaf55ac 100644 (file)
@@ -2,7 +2,7 @@
 {% load smart_if %}
 
 <h3>{% blocktrans with title as filter_title %} By {{ filter_title }} {% endblocktrans %}</h3>
-{% if title == 'pays' or title == 'region' or title == 'discipline' or title == 'thematique' or title == 'list set' or title == 'server' %}
+{% if choices|length > 5 %}
 <select style="width: 160px;" onchange="window.location=window.location.pathname+this.options[this.selectedIndex].value">
 {% for choice in choices %}
     <option{% if choice.selected %} selected="selected"{% endif %} style="width: 130px;"