5 from openerp.osv import osv, fields
7 class Projet(osv.Model):
8 _name = "projet.projet"
11 "name": fields.char(string="Title", size=64, required=True),
12 "description": fields.text(string="Description"),
13 "domaines": fields.many2many("projet.domaine",
14 "projet_projet_domaine_rel",
17 "structures": fields.many2many("projet.structure",
18 "projet_projet_structure_rel",
21 "team_members": fields.many2many("projet.teammember",
22 "projet_projet_teammember_rel",
24 string="Team Members"),
25 "modules": fields.one2many("projet.module",
28 "chantiers": fields.one2many("projet.chantier",
31 "paliers": fields.one2many("projet.palier",
34 "phases": fields.one2many("projet.phase",
37 "evolutions":fields.one2many("projet.evolution",
40 "moe_id": fields.many2one("projet.moe", string="MoE", required=True),
41 "moa_id": fields.many2one("projet.moa", string="MoA", required=True),
45 class Evolution(osv.Model):
46 _name = "projet.evolution"
49 "name": fields.char(string="Title", size=64, required=True),
50 "description": fields.text(string="Description"),
51 "charges": fields.one2many("projet.charge",
54 "module_id": fields.many2one("projet.module",
56 "chantier_id": fields.many2one("projet.chantier",
58 "palier_id": fields.many2one("projet.palier",
60 "phase_id": fields.many2one("projet.phase",
62 "projet_id": fields.many2one("projet.projet",
67 class Structure(osv.Model):
68 _name = "projet.structure"
71 "name": fields.char(string="Title", size=64, required=True),
72 "description": fields.text(string="Description"),
73 "projets": fields.many2many("projet.projet",
74 "projet_projet_structure_rel",
80 class Module(osv.Model):
81 _name = "projet.module"
84 "name": fields.char(string="Title", size=64, required=True),
85 "description": fields.text(string="Description"),
86 "projet_id": fields.many2one("projet.projet",
89 "evolutions": fields.one2many("projet.evolution",
95 class Domaine(osv.Model):
96 _name = "projet.domaine"
98 _statuts = [("actif", "Actif"),
99 ("inactif", "Inactif")]
102 "name": fields.char(string="Title", size=64, required=True),
103 "code": fields.char(string="Code", size=8),
104 "description": fields.text(string="Description"),
105 "ordre": fields.integer(string="Ordre"),
106 "parent_id": fields.many2one("projet.domaine", string="Parent_id"),
107 "statut": fields.selection(_statuts, string="Statut"),
108 "projets": fields.many2many("projet.projet",
109 "projet_projet_structure_rel",
115 class Teammember(osv.Model):
116 _name = "projet.teammember"
118 _inherit = "res.partner"
121 "projets": fields.many2many("projet.projet",
122 "projet_projet_teammember_rel",
125 "charges": fields.one2many("projet.projet",
131 class Phase(osv.Model):
132 _name = "projet.phase"
135 "name": fields.char(string="Title", size=64, required=True),
136 "description": fields.text(string="Description"),
137 "projet_id": fields.many2one("projet.projet",
140 "charges": fields.one2many("projet.charge",
143 "evolutions": fields.one2many("projet.evolution",
145 string="Evolutions"),
146 "palier_id": fields.many2one("projet.palier",
150 #TODO trouver un nom a cette chose
151 class qqch(osv.Model):
152 _name = "projet.qqch"
155 "name": fields.char(string="Title", size=64, required=True),
156 "description": fields.text(string="Description"),
157 "date_jalon": fields.date(sring="Jalon"),
158 "date_init_deb": fields.date(sring="Date initiale début"),
159 "date_init_fin": fields.date(sring="Date initiale de fin"),
160 "date_plan_deb": fields.date(string="Date plannifiée début"),
161 "date_plan_fin": fields.date(string="Date plannifiée de fin"),
162 "date_reel_deb": fields.date(string="Data réelle début"),
163 "date_reel_fin": fields.date(string="Data réelle fin"),
168 "date_init_deb_before_date_init_fin",
169 "CHECK(date_init_deb<> date_init_fin)",
170 "The date_init_deb should be previous date_init_fin",
173 "date_plan_deb_before_date_plan_fin",
174 "CHECK(date_plan_deb <> date_plan_fin)",
175 "The date_plan_deb should be previous date_plan_fin",
178 "date_reel_deb_before_date_reel_fin",
179 "CHECK(date_reel_deb<> date_reel_fin)",
180 "The date_reel_deb should be previous date_reel_fin",
185 class Chantier(osv.Model):
186 _name = "projet.chantier"
188 _inherit = "projet.qqch"
191 "projet_id": fields.many2one("projet.projet",
194 "evolutions": fields.one2many("projet.evolution",
196 string="Evolutions"),
200 class Palier(osv.Model):
201 _name = "projet.palier"
203 _inherit = "projet.qqch"
206 "projet_id": fields.many2one("projet.projet",
209 "evolutions": fields.one2many("projet.evolution",
211 string="Evolutions"),
212 "phases": fields.one2many("projet.phase",
218 class Charge(osv.Model):
219 _name = "projet.charge"
222 "name": fields.char(string="Title", size=64, required=True),
223 "description": fields.text(string="Description"),
224 "teammember_id": fields.many2one("projet.teammember",
225 string="Team Member",
227 "phase_id": fields.many2one("projet.phase",
230 "evolution_id": fields.many2one("projet.evolution",
233 "mo_id": fields.many2one("projet.mo",
240 _choses = [("primaire", "Primaire"),
241 ("secondaire", "Secondaire"),
242 ("generique", "Générique")]
245 "name": fields.char(string="Title"),
246 "description": fields.text(string="Description"),
247 "chose": fields.selection(_choses, string="Chose", required=True),
248 "charges": fields.one2many("projet.charge",
254 "chose": "generique"}
257 class moe(osv.Model):
259 _inherit = "projet.mo"
262 "projets": fields.one2many("projet.projet",
268 class moa(osv.Model):
270 _inherit = "projet.mo"
273 "projets": fields.one2many("projet.projet",