Changement de méthode pour la visualisation dans l'admin
authorPA Parent <paparent@paparent.me>
Mon, 25 Jul 2011 19:52:34 +0000 (15:52 -0400)
committerPA Parent <paparent@paparent.me>
Mon, 25 Jul 2011 19:52:34 +0000 (15:52 -0400)
auf_savoirs_en_partage/chercheurs/admin.py
auf_savoirs_en_partage/chercheurs/models.py
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

index 0886c3f..d2c2107 100644 (file)
@@ -8,7 +8,9 @@ from django.http import HttpResponseRedirect
 from django.utils.encoding import smart_str
 from django_exportateur.exportateur import exportateur
 
-from chercheurs.models import Chercheur, Publication, GroupeChercheur, DomaineRecherche, ChercheurGroupe, ChercheurQuerySet, These
+from chercheurs.models import Chercheur, ChercheurVoir, Publication, \
+                              GroupeChercheur, DomaineRecherche, \
+                              ChercheurGroupe, ChercheurQuerySet, These
 from savoirs.models import Search
 
 class ChercheurAdmin(admin.ModelAdmin):
@@ -20,19 +22,6 @@ class ChercheurAdmin(admin.ModelAdmin):
     actions = ('remove_from_group', 'export_as_ods', 'export_as_csv')
     search_fields = ('nom', 'prenom')
 
-    def has_change_permission(self, request, obj=None):
-        if not obj and request.user.has_perm('chercheurs.view_chercheur'):
-            return True
-
-        return super(ChercheurAdmin, self).has_change_permission(request, obj)
-
-    def change_view(self, request, obj=None):
-        if request.user.has_perm('chercheurs.view_chercheur') and \
-            not super(ChercheurAdmin, self).has_change_permission(request, obj):
-            return HttpResponseRedirect(url('admin:chercheurs_chercheur_changelist'))
-
-        return super(ChercheurAdmin, self).change_view(request, obj)
-
     def lookup_allowed(self, lookup, value):
         return lookup in ['genre', 'statut', 'membre_reseau_institutionnel', 
                           'membre_instance_auf', 'discipline', 'region', 'pays', 
@@ -145,6 +134,34 @@ class ChercheurAdmin(admin.ModelAdmin):
         return self.export(queryset, 'ods')
     export_as_ods.short_description = 'Export ODS'
 
+
+class ChercheurVoirAdmin(ChercheurAdmin):
+
+    list_editable = []
+    fields = ['salutation', 'nom', 'prenom', 'courriel', 'afficher_courriel',
+              'fonction', 'date_naissance', 'sousfonction', 'telephone',
+              'adresse_postale', 'genre', 'commentaire',
+             
+              'nationalite', 'statut', 'diplome', 'etablissement',
+              'etablissement_autre_nom', 'etablissement_autre_pays',
+              'attestation', 'thematique', 'mots_cles', 'discipline',
+              'theme_recherche', 'groupe_recherche', 'url_site_web',
+              'url_blog', 'url_reseau_social', 
+              'membre_instance_auf', 'membre_instance_auf_nom',
+              'membre_instance_auf_fonction', 'membre_instance_auf_dates',
+              'expert_oif', 'expert_oif_details', 'expert_oif_dates',
+              'membre_association_francophone', 'membre_association_francophone_details',
+              'membre_reseau_institutionnel', 'membre_reseau_institutionnel_nom',
+              'membre_reseau_institutionnel_fonction', 'membre_reseau_institutionnel_dates',
+              'expertises_auf']
+
+    def __init__(self, model, admin_site):
+        super(ChercheurVoirAdmin, self).__init__(model, admin_site)
+        self.readonly_fields = self.fields
+
+
+admin.site.register(ChercheurVoir, ChercheurVoirAdmin)
+
 class ChercheurAdminQuerySet(ChercheurQuerySet):
 
     def filter(self, *args, **kwargs):
index ceb42a2..767f925 100644 (file)
@@ -264,11 +264,6 @@ class Chercheur(Personne):
     objects = ChercheurManager()
     all_objects = models.Manager()
 
-    class Meta:
-        permissions = (
-            ("view_chercheur", "Peut visualiser la liste des chercheurs"),
-        )
-
     def __unicode__(self):
         return u"%s %s" % (self.nom.upper(), self.prenom.title())
         
@@ -315,6 +310,13 @@ class Chercheur(Personne):
     def get_absolute_url(self):
         return url('chercheur', kwargs={'id': self.id})
 
+class ChercheurVoir(Chercheur):
+
+    class Meta:
+        proxy = True
+        verbose_name = '(visualisation) chercheur'
+        verbose_name_plural = '(visualisation) chercheur'
+
 class Publication(models.Model):
     chercheur = models.ForeignKey(Chercheur, related_name='publications')
     auteurs = models.CharField(max_length=255, blank=True, verbose_name='auteur(s)')
index e1fa3f5..60cf7af 100644 (file)
@@ -15,8 +15,10 @@ from django.utils.translation import ugettext as _
 from django.utils.encoding import smart_unicode, iri_to_uri
 from django.http import HttpResponseRedirect
 
-from models import SourceActualite, Actualite, Discipline, Evenement, \
-                   Record, RecordCategorie, ListSet, HarvestLog, Profile, PageStatique
+from models import SourceActualite, Actualite, ActualiteVoir, Discipline, \
+                   Evenement, EvenementVoir, Record, RecordCategorie, \
+                   ListSet, HarvestLog, Profile, PageStatique
+
 from savoirs.globals import META
 
 class ListSetFilterSpec(RelatedFilterSpec):
@@ -257,6 +259,20 @@ class ActualiteAdmin(admin.ModelAdmin):
 
 admin.site.register(Actualite, ActualiteAdmin)
 
+class ActualiteVoirAdmin(ActualiteAdmin):
+
+    actions = None
+    list_editable = []
+    fields = ['titre', 'texte', 'url', 'date', 'visible', 'ancienid', 'source', 'disciplines', 'regions']
+
+    def __init__(self, model, admin_site):
+        super(ActualiteVoirAdmin, self).__init__(model, admin_site)
+
+        self.readonly_fields = self.fields
+
+
+admin.site.register(ActualiteVoir, ActualiteVoirAdmin)
+
 class SourceActualiteAdmin(admin.ModelAdmin):
     actions = ['update_sources']
     list_display = ['nom', 'url', 'type']
@@ -307,6 +323,19 @@ class EvenementAdmin(admin.ModelAdmin):
 
 admin.site.register(Evenement, EvenementAdmin)
 
+class EvenementVoirAdmin(EvenementAdmin):
+
+    actions = None
+    list_editable = []
+
+    def __init__(self, model, admin_site):
+        super(EvenementVoirAdmin, self).__init__(model, admin_site)
+
+        self.readonly_fields = self.fields
+
+
+admin.site.register(EvenementVoir, EvenementVoirAdmin)
+
 class PageStatiqueAdmin(admin.ModelAdmin):
     list_display = ['titre', 'id']
     list_display_links = ['titre', 'id']
index 7e66dac..cf850c5 100644 (file)
@@ -249,6 +249,14 @@ class Actualite(models.Model):
     def assigner_regions(self, regions):
         self.regions.add(*regions)
 
+
+class ActualiteVoir(Actualite):
+
+    class Meta:
+        proxy = True
+        verbose_name = '(visualisation) actualité'
+        verbose_name_plural = '(visualisation) actualités'
+
 # Agenda
 
 class EvenementQuerySet(SEPQuerySet):
@@ -513,6 +521,13 @@ def delete_vevent(sender, instance, *args, **kwargs):
     instance.delete_vevent()
 pre_delete.connect(delete_vevent, sender=Evenement) 
 
+class EvenementVoir(Evenement):
+
+    class Meta:
+        proxy = True
+        verbose_name = '(visualisation) événement'
+        verbose_name_plural = '(visualisation) événement'
+
 # Ressources
 
 class ListSet(models.Model):
index 08382df..39674ea 100644 (file)
@@ -2,7 +2,7 @@
 from django.contrib import admin
 from django.core.urlresolvers import reverse as url
 from django.http import HttpResponseRedirect
-from models import Site
+from models import Site, SiteVoir
 
 class SiteAdmin(admin.ModelAdmin):
     list_display = ['titre', 'recherche_google']
@@ -24,3 +24,16 @@ class SiteAdmin(admin.ModelAdmin):
     assigner_disciplines.short_description = u'Assigner des disciplines'
 
 admin.site.register(Site, SiteAdmin)
+
+class SiteVoirAdmin(SiteAdmin):
+
+    actions = None
+    list_editable = []
+
+    def __init__(self, model, admin_site):
+        super(SiteAdmin, self).__init__(model, admin_site)
+
+        self.readonly_fields = self.fields
+
+
+admin.site.register(SiteVoir, SiteVoirAdmin)
index 6182738..abbee7d 100644 (file)
@@ -105,6 +105,13 @@ class Site(models.Model):
     def assigner_disciplines(self, disciplines):
         self.discipline.add(*disciplines)
 
+class SiteVoir(Site):
+
+    class Meta:
+        proxy = True
+        verbose_name = '(visualisation) sites'
+        verbose_name_plural = '(visualisation) sites'
+
 class SiteSearch(Search):
     pays = models.ForeignKey(Pays, blank=True, null=True)