5 from openerp.osv import osv, fields
7 class Projet(osv.Model):
9 _name = "projet.projet"
12 "name": fields.char(string="Title", size=64, required=True),
13 "description": fields.text(string="Description"),
14 "domaines": fields.many2many("projet.domaine",
15 "projet_projet_domaine_rel",
18 "structures": fields.many2many("projet.structure",
19 "projet_projet_structure_rel",
22 "structures_moe": fields.many2many("projet.structure",
23 "projet_projet_structure_rel",
26 domain=[('role_mo_id.type_mo', '=', "MOE")]),
27 "structures_moa": fields.many2many("projet.structure",
28 "projet_projet_structure_rel",
31 domain=[('role_mo_id.type_mo', '=', "MOA")]),
32 "team_members": fields.many2many("projet.teammember",
33 "projet_projet_teammember_rel",
35 string="Team Members"),
36 "modules": fields.one2many("projet.module",
39 "chantiers": fields.one2many("projet.chantier",
42 "paliers": fields.one2many("projet.palier",
45 "phases": fields.one2many("projet.phase",
48 "evolutions":fields.one2many("projet.evolution",
51 "moe_id": fields.many2one("projet.moe", string="MoE", required=True),
52 "moa_id": fields.many2one("projet.moa", string="MoA", required=True),
53 "main_domain": fields.many2one("projet.domaine",
54 string="Domaine principal"),
55 "main_structure": fields.many2one("projet.structure",
56 string="Structure principale"),
60 class Evolution(osv.Model):
61 _name = "projet.evolution"
63 _priorites = [("incontournable", "Incontournable"),
64 ("necessaire", "Nécéssaire"),
67 _statuts = [("cree", "Crée"), ("encours", "En cours"),
68 ("termine", "Terminé"), ("abandonne", "Abandonné"),
69 ("suspendu", "Suspendu")]
72 "pid": fields.integer(string="PID"),
73 "name": fields.char(string="Title", size=64, required=True),
74 "description": fields.text(string="Description"),
75 "objectif": fields.text(string="Objectif"),
76 "commentaire": fields.text(string="Commentaire"),
77 "keywords": fields.text(string="Mots clés"),
78 "priorite": fields.selection(_priorites, string="Priorité"),
79 "statut": fields.selection(_statuts, string="Statut"),
80 "charges": fields.one2many("projet.charge",
83 "module_id": fields.many2one("projet.module",
85 "chantier_id": fields.many2one("projet.chantier",
87 "palier_id": fields.many2one("projet.palier",
89 "phase_id": fields.many2one("projet.phase",
91 "projet_id": fields.many2one("projet.projet",
96 class Structure(osv.Model):
98 _name = "projet.structure"
100 _statuts = [("actif", "Actif"), ("inactif", "Inactif")]
103 "name": fields.char(string="Title", size=64, required=True),
104 "code": fields.char(string="Code", size=8, required=True),
105 "description": fields.text(string="Description"),
106 "parent_id": fields.many2one("projet.structure", string="Parent_id"),
107 "statut": fields.selection(_statuts, string="Statut"),
108 "role_mo_id":fields.many2one("projet.role_mo", string="Role MO"),
109 "projets": fields.many2many("projet.projet",
110 "projet_projet_structure_rel",
116 class Module(osv.Model):
117 _name = "projet.module"
120 "name": fields.char(string="Title", size=64, required=True),
121 "description": fields.text(string="Description"),
122 "projet_id": fields.many2one("projet.projet",
125 "evolutions": fields.one2many("projet.evolution",
131 class Domaine(osv.Model):
132 _name = "projet.domaine"
134 _statuts = [("actif", "Actif"), ("inactif", "Inactif")]
137 "name": fields.char(string="Title", size=64, required=True),
138 "code": fields.char(string="Code", size=8),
139 "description": fields.text(string="Description"),
140 "ordre": fields.integer(string="Ordre"),
141 "parent_id": fields.many2one("projet.domaine", string="Parent_id"),
142 "statut": fields.selection(_statuts, string="Statut"),
143 "projets": fields.many2many("projet.projet",
144 "projet_projet_structure_rel",
152 class Teammember(osv.Model):
153 _name = "projet.teammember"
155 _inherit = "res.partner"
158 "projets": fields.many2many("projet.projet",
159 "projet_projet_teammember_rel",
162 "charges": fields.one2many("projet.projet",
168 class Type_Phase(osv.Model):
169 _name = "projet.type_phase"
171 _statuts = [("actif", "Actif"), ("inactif", "Inactif")]
174 "name": fields.char(string="Title", size=64, required=True),
175 "description": fields.text(string="Description"),
176 "statut": fields.selection(_statuts, string="Statut"),
180 class Phase(osv.Model):
181 _name = "projet.phase"
183 _statuts = [("actif", "Actif"), ("inactif", "Inactif")]
186 "name": fields.char(string="Title", size=64, required=True),
187 "description": fields.text(string="Description"),
188 "statut": fields.selection(_statuts, string="Statut"),
189 "type_phase_id": fields.many2one("projet.type_phase",
190 string="Type phase"),
191 "projet_id": fields.many2one("projet.projet",
194 "charges": fields.one2many("projet.charge",
197 "evolutions": fields.one2many("projet.evolution",
199 string="Evolutions"),
200 "palier_id": fields.many2one("projet.palier",
205 class Charge(osv.Model):
206 _name = "projet.charge"
209 "name": fields.char(string="Title", size=64, required=True),
210 "description": fields.text(string="Description"),
211 "teammember_id": fields.many2one("projet.teammember",
212 string="Team Member",
214 "phase_id": fields.many2one("projet.phase",
217 "evolution_id": fields.many2one("projet.evolution",
220 "mo_id": fields.many2one("projet.mo",