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):
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',
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):
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())
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)')
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):
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']
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']
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):
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):
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']
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)
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)