5 from openerp.osv import osv, fields
8 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 "team_members": fields.many2many("projet.teammember",
23 "projet_projet_teammember_rel",
25 string="Team Members"),
26 "modules": fields.one2many("projet.module",
29 "chantiers": fields.one2many("projet.chantier",
32 "paliers": fields.one2many("projet.palier",
35 "phases": fields.one2many("projet.phase",
38 "evolutions":fields.one2many("projet.evolution",
41 "moe_id": fields.many2one("projet.moe", string="MoE", required=True),
42 "moa_id": fields.many2one("projet.moa", string="MoA", required=True),
46 class Evolution(osv.Model):
47 _name = "projet.evolution"
50 "name": fields.char(string="Title", size=64, required=True),
51 "description": fields.text(string="Description"),
52 "charges": fields.one2many("projet.charge",
55 "module_id": fields.many2one("projet.module",
57 "chantier_id": fields.many2one("projet.chantier",
59 "palier_id": fields.many2one("projet.palier",
61 "phase_id": fields.many2one("projet.phase",
63 "projet_id": fields.many2one("projet.projet",
68 class Structure(osv.Model):
69 _name = "projet.structure"
71 _statuts = [("actif", "Actif"), ("inactif", "Inactif")]
74 "name": fields.char(string="Title", size=64, required=True),
75 "code": fields.char(string="Code", size=8, required=True),
76 "description": fields.text(string="Description"),
77 "parent_id": fields.many2one("projet.structure", string="Parent_id"),
78 "statut": fields.selection(_statuts, string="Statut"),
79 "projets": fields.many2many("projet.projet",
80 "projet_projet_structure_rel",
86 class Module(osv.Model):
87 _name = "projet.module"
90 "name": fields.char(string="Title", size=64, required=True),
91 "description": fields.text(string="Description"),
92 "projet_id": fields.many2one("projet.projet",
95 "evolutions": fields.one2many("projet.evolution",
101 class Domaine(osv.Model):
102 _name = "projet.domaine"
104 _statuts = [("actif", "Actif"), ("inactif", "Inactif")]
107 "name": fields.char(string="Title", size=64, required=True),
108 "code": fields.char(string="Code", size=8),
109 "description": fields.text(string="Description"),
110 "ordre": fields.integer(string="Ordre"),
111 "parent_id": fields.many2one("projet.domaine", string="Parent_id"),
112 "statut": fields.selection(_statuts, string="Statut"),
113 "projets": fields.many2many("projet.projet",
114 "projet_projet_structure_rel",
120 class Teammember(osv.Model):
121 _name = "projet.teammember"
123 _inherit = "res.partner"
126 "projets": fields.many2many("projet.projet",
127 "projet_projet_teammember_rel",
130 "charges": fields.one2many("projet.projet",
136 class Phase(osv.Model):
137 _name = "projet.phase"
139 _statuts = [("actif", "Actif"), ("inactif", "Inactif")]
143 "name": fields.char(string="Title", size=64, required=True),
144 "description": fields.text(string="Description"),
145 "statut": fields.selection(_statuts, string="Statut"),
146 "projet_id": fields.many2one("projet.projet",
149 "charges": fields.one2many("projet.charge",
152 "evolutions": fields.one2many("projet.evolution",
154 string="Evolutions"),
155 "palier_id": fields.many2one("projet.palier",
159 #TODO trouver un nom a cette chose
160 class qqch(osv.Model):
161 _name = "projet.qqch"
163 _statuts = [("cree", "Crée"), ("encours", "En cours"),
164 ("termine", "Terminé"), ("abandonne", "Abandonné"),
165 ("suspendu", "Suspendu"), ("generique", "Générique")]
168 "name": fields.char(string="Title", size=64, required=True),
169 "description": fields.text(string="Description"),
170 "commentaire": fields.text(string="Commentaire"),
171 "statut": fields.selection(_statuts, string="Statut"),
172 "version": fields.char(string="Version", size=16),
173 "date_jalon": fields.date(sring="Jalon"),
174 "date_init_deb": fields.date(sring="Date initiale début"),
175 "date_init_fin": fields.date(sring="Date initiale de fin"),
176 "date_plan_deb": fields.date(string="Date plannifiée début"),
177 "date_plan_fin": fields.date(string="Date plannifiée de fin"),
178 "date_reel_deb": fields.date(string="Data réelle début"),
179 "date_reel_fin": fields.date(string="Data réelle fin"),
184 "date_init_deb_before_date_init_fin",
185 "CHECK(date_init_deb<> date_init_fin)",
186 "The date_init_deb should be previous date_init_fin",
189 "date_plan_deb_before_date_plan_fin",
190 "CHECK(date_plan_deb <> date_plan_fin)",
191 "The date_plan_deb should be previous date_plan_fin",
194 "date_reel_deb_before_date_reel_fin",
195 "CHECK(date_reel_deb<> date_reel_fin)",
196 "The date_reel_deb should be previous date_reel_fin",
201 class Chantier(osv.Model):
202 _name = "projet.chantier"
204 _inherit = "projet.qqch"
207 "projet_id": fields.many2one("projet.projet",
210 "evolutions": fields.one2many("projet.evolution",
212 string="Evolutions"),
216 class Palier(osv.Model):
217 _name = "projet.palier"
219 _types_palier = [("normal", "Normal"), ("exceptionnel", "Exceptionnel"), ("correctif", "Correctif"), ("autre", "Autre")]
222 _inherit = "projet.qqch"
225 "type_palier": fields.selection(_types_palier, string="Type"),
226 "projet_id": fields.many2one("projet.projet",
229 "evolutions": fields.one2many("projet.evolution",
231 string="Evolutions"),
232 "phases": fields.one2many("projet.phase",
238 class Charge(osv.Model):
239 _name = "projet.charge"
242 "name": fields.char(string="Title", size=64, required=True),
243 "description": fields.text(string="Description"),
244 "teammember_id": fields.many2one("projet.teammember",
245 string="Team Member",
247 "phase_id": fields.many2one("projet.phase",
250 "evolution_id": fields.many2one("projet.evolution",
253 "mo_id": fields.many2one("projet.mo",
260 _choses = [("primaire", "Primaire"),
261 ("secondaire", "Secondaire"),
262 ("generique", "Générique")]
265 "name": fields.char(string="Title"),
266 "description": fields.text(string="Description"),
267 "chose": fields.selection(_choses, string="Chose", required=True),
268 "charges": fields.one2many("projet.charge",
274 "chose": "generique"}
277 class moe(osv.Model):
279 _inherit = "projet.mo"
282 "projets": fields.one2many("projet.projet",
288 class moa(osv.Model):
290 _inherit = "projet.mo"
293 "projets": fields.one2many("projet.projet",