class PosteAdmin(VersionAdmin):
list_display = ('nom', 'implantation', 'etat', )
+
class DossierAdmin(VersionAdmin):
list_display = ('_poste', '_implantation', 'employe', 'etat', )
list_filter = ('etat', )
def _implantation(self, obj):
return obj.poste.implantation
+
class ProxyDossierStatut(Dossier):
class Meta:
proxy = True
verbose_name_plural = "Statut des dossiers"
-class StatutDossierForm(forms.ModelForm):
-
+class ProxyPosteStatut(Poste):
+ class Meta:
+ proxy = True
+ verbose_name = "Statut du poste"
+ verbose_name_plural = "Statut des postes"
+
+
+class StatutForm(forms.ModelForm):
+
commentaire = forms.CharField(label="Commentaire",
widget=forms.widgets.Textarea())
- class Meta:
- model = ProxyDossierStatut
- fields = ('etat', )
-
def __init__(self, *args, **kwargs):
- super(StatutDossierForm, self).__init__(*args, **kwargs)
+ super(StatutForm, self).__init__(*args, **kwargs)
# On retire le controle check des états pour faire ce qu'on veut
self._meta.model.__setattr__ = object.__setattr__
def save(self, *args, **kwargs):
# Le dossier se voit attribuée un commentaire WF verbeux
- obj = super(StatutDossierForm, self).save(*args, **kwargs)
+ obj = super(StatutForm, self).save(*args, **kwargs)
self.wf.content_object = obj
self.wf.etat_final = obj.etat
commentaire = u"%s => %s : %s" % (self.wf.etat_initial, self.wf.etat_final,
self.wf.texte = commentaire
self.wf.save()
return obj
-
-class DossierStatutAdmin(VersionAdmin):
- search_fields = ('employe__nom', 'employe__prenom', 'poste__nom', )
- list_display = ('_poste', '_implantation', 'employe', '_etat', )
- form = StatutDossierForm
- action = None
+class StatutDossierForm(StatutForm):
+
+ class Meta:
+ model = ProxyDossierStatut
+ fields = ('etat', )
- def _poste(self, obj):
- return obj.poste.nom
- def _implantation(self, obj):
- return obj.poste.implantation
+class StatutPosteForm(StatutForm):
+
+ class Meta:
+ model = ProxyPosteStatut
+ fields = ('etat', )
- def _etat(self, obj):
- return obj.get_etat_display()
+
+class StatutAdmin(VersionAdmin):
+ action = None
def has_delete_permission(self, request, obj=None):
return False
return request.user.is_superuser
def get_form(self, request, obj=None, **kwargs):
- form = super(DossierStatutAdmin, self).get_form(request,
+ form = super(StatutAdmin, self).get_form(request,
obj, **kwargs)
form.user = request.user
return form
+ def _etat(self, obj):
+ return obj.get_etat_display()
+
+
+class DossierStatutAdmin(StatutAdmin):
+ search_fields = ('employe__nom', 'employe__prenom', 'poste__nom', )
+ list_display = ('_poste', '_implantation', 'employe', '_etat', )
+ form = StatutDossierForm
+
+ def _poste(self, obj):
+ return obj.poste.nom
+
+ def _implantation(self, obj):
+ return obj.poste.implantation
+
+
+
+class PosteStatutAdmin(StatutAdmin):
+ search_fields = ('nom', )
+ list_display = ('nom', 'implantation', '_etat', )
+ form = StatutPosteForm
+
+
admin.site.register(Poste, PosteAdmin)
admin.site.register(Dossier, DossierAdmin)
admin.site.register(ProxyDossierStatut, DossierStatutAdmin)
+admin.site.register(ProxyPosteStatut, PosteStatutAdmin)