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 Charge(osv.Model):
169 _name = "projet.charge"
172 "name": fields.char(string="Title", size=64, required=True),
173 "description": fields.text(string="Description"),
174 "teammember_id": fields.many2one("projet.teammember",
175 string="Team Member",
177 "phase_id": fields.many2one("projet.phase",
180 "evolution_id": fields.many2one("projet.evolution",
183 "mo_id": fields.many2one("projet.mo",