"commentaire": fields.text(string="Commentaire"),
"keywords": fields.text(string="Mots clés"),
"priorite": fields.selection(_priorites, string="Priorité"),
- "statut": fields.selection(_statuts, string="Statut"),
+ "state": fields.selection(_statuts, string="Statut"),
# "charges": fields.one2many("cmmi.evolution.charge", # Supprimé !
# "evolution_id",
# string="Charges"),
domain=_domains['human']),
}
+ _defaults = {
+ "state": "cree",
+ }
-# ================================== PHASE ================================== #
+ def action_commencer(self, cr, uid, ids, context=None):
+ if type(ids) == list:
+ if len(ids) != 1:
+ return # TODO: message d'avertissement
+ ids = ids[0]
+
+ evo = self.read(cr, uid, ids, ['state'], context)
+
+ if evo['state'] != 'cree':
+ return
+ self.write(
+ cr,
+ uid,
+ ids,
+ {'state': 'encours'},
+ context,
+ )
+ return self
+
+ def action_suspendre(self, cr, uid, ids, context=None):
+ if type(ids) == list:
+ if len(ids) != 1:
+ return # TODO: message d'avertissement
+ ids = ids[0]
+
+ evo = self.read(cr, uid, ids, ['state'], context)
+ if evo['state'] != 'encours':
+ return
+ self.write(
+ cr,
+ uid,
+ ids,
+ {'state': 'suspendu'},
+ context,
+ )
+ return self
+
+ def action_terminer(self, cr, uid, ids, context=None):
+ if type(ids) == list:
+ if len(ids) != 1:
+ return # TODO: message d'avertissement
+ ids = ids[0]
+
+ evo = self.read(cr, uid, ids, ['state'], context)
+ if evo['state'] != 'encours':
+ return
+ self.write(
+ cr,
+ uid,
+ ids,
+ {'state': 'termine'},
+ context,
+ )
+ return self
+
+ def action_abandonner(self, cr, uid, ids, context=None):
+ if type(ids) == list:
+ if len(ids) != 1:
+ return # TODO: message d'avertissement
+ ids = ids[0]
+
+ evo = self.read(cr, uid, ids, ['state'], context)
+
+ if not ('encours', 'cree').__contains__(evo['state']):
+ return
+ self.write(
+ cr,
+ uid,
+ ids,
+ {'state': 'abandonne'},
+ context,
+ )
+ return self
+
+ def action_reprendre(self, cr, uid, ids, context=None):
+ if type(ids) == list:
+ if len(ids) != 1:
+ return # TODO: message d'avertissement
+ ids = ids[0]
+
+ evo = self.read(cr, uid, ids, ['state'], context)
+
+ if evo['state'] != 'suspendu':
+ return
+ self.write(
+ cr,
+ uid,
+ ids,
+ {'state': 'encours'},
+ context,
+ )
+ return self
+
+
+# =========================== EVOLUTION PHASE =============================== #
class Phase(osv.Model):
_name = "cmmi.evolution.phase"
type='char',
store=True,
string="Nom de la phase"),
+ "description": fields.text(string="Description"),
"phase_id": fields.many2one("cmmi.axes.palier.phase",
string="Phase"),
"evolution_id": fields.many2one("cmmi.evolution",
# Vérifier les valeurs contenues dans vals et les modifier / rajouter si nécessaire selon les cas suivants
# Si description est vide, alors par défaut, recopie de la description de l'evolution et de la phase (concaténés avec un retour à la ligne entre les deux).
- # Si commentaire est vide, alors par défaut, recopie du commentaire du palier.
- # Si version est vide, alors par dégaut, recopie de la version du palier.
+ # Si commentaire est vide, alors par défaut, recopie du commentaire de ?
+ # Si version est vide, alors par dégaut, recopie de la version de ?
+# phase_model = self.pool.get("cmmi.axes.palier.phase")
+# evolution_model = self.pool.get("cmmi.evolution")
+#
+# phase = phase_model.read(cr, vals["phase_id"], fields=None,context=None)
+# evolution = evolution_model.read(cr, vals["evolution_id"], fields=None,context=None)
+
+# if vals["description"] == "":
+# vals["description"] = "" + evolution["description"] + "\n" + phase["description"]
+
+# if vals["commentaire"] == "" # cmmi.evolution.phase n'a pas de commentaire
+# vals["commentaire"] = evolution["commentaire"]
+
+# if vals["version"] == "" # cmmi.evolution.phase n'a pas de version
+# vals["version"] = phase["version"]
return osv.Model.create(self, cr, uid, vals, context=context)
-# ================================== CHARGE ================================= #
+# =========================== EVOLUTION CHARGE ============================== #
class Charge(osv.Model):
_name = "cmmi.evolution.charge"