from openerp.osv import osv, fields
+# ================================ EVOLUTION ================================ #
class Evolution(osv.Model):
_name = "cmmi.evolution"
+ _description = "Table de reference des evolutions."
+
+ _domains = {
+ 'human': [('is_company', '=', "False")],
+ }
+
_priorites = [("incontournable", "Incontournable"),
("necessaire", "Nécéssaire"),
("utile", "Utile")]
"keywords": fields.text(string="Mots clés"),
"priorite": fields.selection(_priorites, string="Priorité"),
"statut": fields.selection(_statuts, string="Statut"),
- "charges": fields.one2many("projet.charge",
- "evolution_id",
- string="Charges"),
- "module_id": fields.many2one("projet.module",
+# "charges": fields.one2many("cmmi.evolution.charge", # Supprimé !
+# "evolution_id",
+# string="Charges"),
+ # Backrefs
+ "module_id": fields.many2one("cmmi.description.module",
string="Modules"),
- "chantier_id": fields.many2one("projet.chantier",
- string="Chantier"),
- "palier_id": fields.many2one("projet.palier",
+ "chantier_id": fields.many2one("cmmi.axes.chantier",
+ string="Chantier"),
+ "palier_id": fields.many2one("cmmi.axes.palier",
string="Palier"),
- "phase_id": fields.many2one("projet.phase",
- string="Phase"),
- "projet_id": fields.many2one("projet.projet",
+ "projet_id": fields.many2one("cmmi.projet",
string="Projet"),
+ "demandeur": fields.many2one("res.partner",
+ string="Demandeur",
+ domain=_domains['human']),
+ }
+
+
+# ================================== PHASE ================================== #
+class Phase(osv.Model):
+ _name = "cmmi.evolution.phase"
+
+ _description = "Phase d'une evolution."
+
+ def _get_name(self, cr, uid, ids, field_name=None, arg=None, context=None):
+ if isinstance(ids, (int, long)):
+ ids = [ids]
+ return dict([(i, r.phase_id.name) for i, r in
+ zip(ids, self.browse(cr, uid, ids, context=context))])
+
+
+ _columns = {
+ "name": fields.function(_get_name,
+ 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",
+ string="Evolution"),
}
+ def create(self, cr, uid, vals, context=None):
+ # TODO: gérer la création d'une phase d'évolution.
+ # 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 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 ================================= #
class Charge(osv.Model):
_name = "cmmi.evolution.charge"
+ _description = "Charge d'une evolution."
+
_columns = {
"name": fields.char(string="Title", size=64, required=True),
"description": fields.text(string="Description"),
- "teammember_id": fields.many2one("projet.teammember",
+ "evolution_id": fields.many2one("cmmi.evolution",
+ string="Palier"),
+ "phase_id": fields.many2one("cmmi.evolution.phase",
+ string="Phase de l'évolution",
+ required=True),
+ "teammember_id": fields.many2one("res.partner", # TODO: Vers l'association teammember MO plutôt que MO.
string="Team Member",
required=True),
- "phase_id": fields.many2one("projet.phase",
- string="Phase",
- required=True),
- "evolution_id": fields.many2one("projet.evolution",
- string="Evolution",
- required=True),
- "mo_id": fields.many2one("projet.mo",
- string="Mo"),
}