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",
76 string="Projets (structure)"),
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",
87 string="Projet (module)",
89 "evolutions": fields.one2many("projet.evolution",
95 class Domaine(osv.Model):
96 _name = "projet.domaine"
99 "name": fields.char(string="Title", size=64, required=True),
100 "description": fields.text(string="Description"),
101 "parent_id": fields.many2one("projet.domaine", string="Parent_id"),
102 "projets": fields.many2many("projet.projet",
103 "projet_projet_structure_rel",
109 class Teammember(osv.Model):
110 _name = "projet.teammember"
112 _inherit = "res.partner"
115 "projets": fields.many2many("projet.projet",
116 "projet_projet_teammember_rel",
119 "charges": fields.one2many("projet.projet",
125 class Phase(osv.Model):
126 _name = "projet.phase"
129 "name": fields.char(string="Title", size=64, required=True),
130 "description": fields.text(string="Description"),
131 "projet_id": fields.many2one("projet.projet",
134 "charges": fields.one2many("projet.charge",
137 "evolutions": fields.one2many("projet.evolution",
139 string="Evolutions"),
140 "palier_id": fields.many2one("projet.palier",
144 #TODO trouver un nom a cette chose
145 class qqch(osv.Model):
146 _name = "projet.qqch"
149 "name": fields.char(string="Title", size=64, required=True),
150 "description": fields.text(string="Description"),
151 "date_jalon": fields.date(sring="Jalon"),
152 "date_init_deb": fields.date(sring="Date initiale début"),
153 "date_init_fin": fields.date(sring="Date initiale de fin"),
154 "date_plan_deb": fields.date(string="Date plannifiée début"),
155 "date_plan_fin": fields.date(string="Date plannifiée de fin"),
156 "date_reel_deb": fields.date(string="Data réelle début"),
157 "date_reel_fin": fields.date(string="Data réelle fin"),
162 "date_init_deb_before_date_init_fin",
163 "CHECK(date_init_deb<> date_init_fin)",
164 "The date_init_deb should be previous date_init_fin",
167 "date_plan_deb_before_date_plan_fin",
168 "CHECK(date_plan_deb<> date_plan_fin)",
169 "The date_plan_deb should be previous date_plan_fin",
172 "date_reel_deb_before_date_reel_fin",
173 "CHECK(date_reel_deb<> date_reel_fin)",
174 "The date_reel_deb should be previous date_reel_fin",
179 class Chantier(osv.Model):
180 _name = "projet.chantier"
182 _inherit = "projet.qqch"
185 "projet_id": fields.many2one("projet.projet",
188 "evolutions": fields.one2many("projet.evolution",
190 string="Evolutions"),
194 class Palier(osv.Model):
195 _name = "projet.palier"
197 _inherit = "projet.qqch"
200 "projet_id": fields.many2one("projet.projet",
203 "evolutions": fields.one2many("projet.evolution",
205 string="Evolutions"),
206 "phases": fields.one2many("projet.phase",
212 class Charge(osv.Model):
213 _name = "projet.charge"
216 "name": fields.char(string="Title", size=64, required=True),
217 "description": fields.text(string="Description"),
218 "teammember_id": fields.many2one("projet.teammember",
219 string="Team Member",
221 "phase_id": fields.many2one("projet.phase",
224 "evolution_id": fields.many2one("projet.evolution",
227 "mo_id": fields.many2one("projet.mo",
234 _choses = [("primaire", "Primaire"), ("secondaire", "Secondaire"), ("generique", "Générique")]
237 "name": fields.char(string="Title"),
238 "description": fields.text(string="Description"),
239 "chose": fields.selection(_choses, string="Chose", required=True),
240 "charges": fields.one2many("projet.charge",
246 "chose": "generique"}
249 class moe(osv.Model):
251 _inherit = "projet.mo"
254 "projets": fields.one2many("projet.projet",
260 class moa(osv.Model):
262 _inherit = "projet.mo"
265 "projets": fields.one2many("projet.projet",