code initialisé a la creation, avec admin permet de changer ces codes
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 28 Mar 2011 21:13:01 +0000 (17:13 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 28 Mar 2011 21:13:01 +0000 (17:13 -0400)
project/gcast/admin.py
project/gcast/models.py

index 744b3d4..22ea6fb 100644 (file)
@@ -11,9 +11,16 @@ class CompteAdmin(admin.ModelAdmin):
 
     search_fields = ('exten', )
     fields = ['exten', 'categorie', 'nat', 'fullname', 'email', 'bureau']
-    list_display = ('exten', 'fullname', 'calcul_cidname', 'email', 'categorie', 'calcul_secret', 'calcul_voicemailcode', 'nat', 'bureau', 'pavillon')
+    list_display = ('exten', 'fullname', 'calcul_cidname', 'email', 'categorie', 'secret', 'voicemailcode', 'nat', 'bureau', 'pavillon')
     list_filter = ['categorie']
     list_search = (['exten', 'fullname'])
     list_per_page = sys.maxint
 
+    def change_view(self, *args, **kwargs):
+        """
+        La modification permet de changer les codes générés.
+        """
+        self.fields = self.fields + ['secret', 'voicemailcode', ]
+        return super(CompteAdmin, self).change_view(*args, **kwargs)
+
 admin.site.register(Compte, CompteAdmin)
index 1050f63..f7481a8 100644 (file)
@@ -48,23 +48,13 @@ class Compte(models.Model):
     def calcul_cidname(self):
         return self.fullname
 
-    def save(self, force_insert=False, force_update=False, force_source=False):
+    def save(self, *args, **kwargs):
         """Enregistrer ou modifier un compte dans la BD après avoir calculé certains champs qui dérivent de d'autres"""
-        
-        try:
-              # si l'objet existe déjà, on récupère ses données actuelles
-              current = Compte.objects.get(pk=self.pk) 
-              if not current.fullname == fullname:
-                  fullname_change = True
-        except:
-              # Si le compte n'existe pas, pas de soucis, on continue
-              fullname_change = True
-
-        if fullname_change:
-              # soit le fullname a changé, ou c'est un nouveau compte
-              self.cidname = self.calcul_cidname()
-              self.voicemailcode = self.calcul_voicemailcode()
-              self.secret = self.calcul_secret()                       # inutile dans le cas d'un changement de fullname
-
-        #On lance l'enregistrement via la méthode mère
-        return super(Compte, self).save(force_insert, force_update)
+        if not self.id:
+            self.cidname = self.calcul_cidname()
+            self.voicemailcode = self.calcul_voicemailcode()
+            self.secret = self.calcul_secret()
+            # TODO : moussa
+            # envoi par courriel des changements 
+
+        return super(Compte, self).save(*args, **kwargs)