3 Ce module contient tout ce qui est nécessaire pour qualifier une MO
5 On distingue deux grands rôles qui sont les MOE et les MOA :
7 MOE = Maîtrise d'oeuvre (ceuf qui font)
8 MOA = Maîtrise d'ouvrage (ceux qui demandent et contrôlent)
11 from openerp.osv import osv, fields
14 class RoleMO(osv.Model):
15 """Role MO: différents types de MOE et MOA"""
17 _name = "cmmi.mo.role"
19 _statuts = [("actif", "Actif"), ("inactif", "Inactif")]
21 _types_mo = [("MOE", "MOE"), ("MOA", "MOA")]
24 "name": fields.char(string="Title", size=64, required=True),
25 "code": fields.char(string="Code", size=8, required=True),
26 "description": fields.text(string="Description"),
27 "statut": fields.selection(_statuts, string="Statut"),
28 "type_mo": fields.selection(_types_mo,
31 "structures": fields.one2many("cmmi.mo.structure",
34 "mo_ids": fields.one2many("cmmi.mo",
43 _rangs = [("primaire", "Primaire"),
44 ("secondaire", "Secondaire"),
45 ("generique", "Générique")]
48 "name": fields.char(string="Title"),
49 "description": fields.text(string="Description"),
50 "rang": fields.selection(_rangs, string="Rang", required=True),
51 "role_mo_id": fields.many2one("cmmi.mo.role", string="Role"),
52 "charges": fields.one2many("cmmi.evolution.charge",
66 "projets": fields.one2many("cmmi.projet",
78 "projets": fields.one2many("cmmi.projet",
84 class Structure(osv.Model):
86 _name = "cmmi.mo.structure"
88 _statuts = [("actif", "Actif"), ("inactif", "Inactif")]
91 "name": fields.char(string="Title", size=64, required=True),
92 "code": fields.char(string="Code", size=8, required=True),
93 "description": fields.text(string="Description"),
94 "parent_id": fields.many2one("cmmi.mo.structure", string="Parent_id"),
95 "statut": fields.selection(_statuts, string="Statut"),
96 "role_mo_id": fields.many2one("cmmi.mo.role", string="Role MO"),
97 "projets": fields.many2many("cmmi.projet",
98 "projet_projet_structure_rel",