Modifications de libelles incorrects
[OpenERP/cmmi.git] / projet.py
1 #-*- coding: utf8 -*-
2 '''
3 '''
4
5 from openerp.osv import osv, fields
6
7 class Projet(osv.Model):
8     _name = "projet.projet"
9
10     _columns = {
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",
15                                      "projets",
16                                      string="Domaines"),
17         "structures": fields.many2many("projet.structure",
18                                        "projet_projet_structure_rel",
19                                        "projets",
20                                        string="Structures"),
21         "team_members": fields.many2many("projet.teammember",
22                                          "projet_projet_teammember_rel",
23                                          "projets",
24                                          string="Team Members"),
25         "modules": fields.one2many("projet.module",
26                                    "projet_id",
27                                    string="Modules"),
28         "chantiers": fields.one2many("projet.chantier",
29                                      "projet_id",
30                                      string="Chantiers"),
31         "paliers": fields.one2many("projet.palier",
32                                    "projet_id",
33                                    string="Paliers"),
34         "phases": fields.one2many("projet.phase",
35                                    "projet_id",
36                                    string="Phases"),
37         "moe_id": fields.many2one("projet.moe", string="MoE", required=True),
38         "moa_id": fields.many2one("projet.moa", string="MoA", required=True),
39     }
40
41
42 class Evolution(osv.Model):
43     _name = "projet.evolution"
44
45     _columns = {
46         "name": fields.char(string="Title", size=64, required=True),
47         "description": fields.text(string="Description"),
48         "charges": fields.one2many("projet.charge",
49                                    "evolution_id",
50                                    string="Charges"),
51         "module_id": fields.many2one("projet.module",
52                                      string="Modules"),
53         "chantier_id": fields.many2one("projet.chantier",
54                                     string="Chantier"),
55         "palier_id": fields.many2one("projet.palier",
56                                      string="Palier"),
57         "phase_id": fields.many2one("projet.phase",
58                                     string="Phase"),
59     }
60
61
62 class Structure(osv.Model):
63     _name = "projet.structure"
64
65     _columns = {
66         "name": fields.char(string="Title", size=64, required=True),
67         "description": fields.text(string="Description"),
68         "projets": fields.many2many("projet.projet",
69                                     "projet_projet_structure_rel",
70                                     "structures",
71                                     string="Projets (structure)"),
72     }
73
74
75 class Module(osv.Model):
76     _name = "projet.module"
77
78     _columns = {
79         "name": fields.char(string="Title", size=64, required=True),
80         "description": fields.text(string="Description"),
81         "projet_id": fields.many2one("projet.projet",
82                                      string="Projet (module)",
83                                      required=True),
84         "evolutions": fields.one2many("projet.evolution",
85                                       "module_id",
86                                       string="Evolutions")
87     }
88
89
90 class Domaine(osv.Model):
91     _name = "projet.domaine"
92
93     _columns = {
94         "name": fields.char(string="Title", size=64, required=True),
95         "description": fields.text(string="Description"),
96         "parent_id": fields.many2one("projet.domaine", string="Parent_id"),
97         "projets": fields.many2many("projet.projet",
98                                     "projet_projet_structure_rel",
99                                     "domaines",
100                                     string="Projets"),
101     }
102
103
104 class Teammember(osv.Model):
105     _name = "projet.teammember"
106
107     _inherit = "res.partner"
108
109     _columns = {
110         "projets": fields.many2many("projet.projet",
111                                     "projet_projet_teammember_rel",
112                                     "team_members",
113                                     string="Projets"),
114         "charges": fields.one2many("projet.projet",
115                                    "team_members",
116                                    string="Charges"),
117     }
118
119
120 class Phase(osv.Model):
121     _name = "projet.phase"
122
123     _columns = {
124         "name": fields.char(string="Title", size=64, required=True),
125         "description": fields.text(string="Description"),
126         "projet_id": fields.many2one("projet.projet",
127                                      string="Projet",
128                                      required=True),
129         "charges": fields.one2many("projet.charge",
130                                    "phase_id",
131                                    string="Charges"),
132         "evolutions": fields.one2many("projet.evolution",
133                                       "phase_id",
134                                       string="Evolutions"),
135         "palier_id": fields.many2one("projet.palier",
136                                      string="Palier"),
137     }
138
139 #TODO trouver un nom a cette chose
140 class qqch(osv.Model):
141     _name = "projet.qqch"
142
143     _columns = {
144         "name": fields.char(string="Title", size=64, required=True),
145         "description": fields.text(string="Description"),
146         "date_jalon": fields.date(sring="Jalon"),
147         "date_init_deb": fields.date(sring="Date initiale début"),
148         "date_init_fin": fields.date(sring="Date initiale de fin"),
149         "date_plan_deb": fields.date(string="Date plannifiée début"),
150         "date_plan_fin": fields.date(string="Date plannifiée de fin"),
151         "date_reel_deb": fields.date(string="Data réelle début"),
152         "date_reel_fin": fields.date(string="Data réelle fin"),
153     }
154
155     _sql_constraints = [
156         (
157             "date_init_deb_before_date_init_fin",
158             "CHECK(date_init_deb<> date_init_fin)",
159             "The date_init_deb should be previous date_init_fin",
160         ),
161         (
162             "date_plan_deb_before_date_plan_fin",
163             "CHECK(date_plan_deb<> date_plan_fin)",
164             "The date_plan_deb should be previous date_plan_fin",
165         ),
166         (
167             "date_reel_deb_before_date_reel_fin",
168             "CHECK(date_reel_deb<> date_reel_fin)",
169             "The date_reel_deb should be previous date_reel_fin",
170         ),
171     ]
172
173
174 class Chantier(osv.Model):
175     _name = "projet.chantier"
176
177     _inherit = "projet.qqch"
178
179     _columns = {
180         "projet_id": fields.many2one("projet.projet",
181                                      string="Projet",
182                                      required=True),
183         "evolutions": fields.one2many("projet.evolution",
184                                       "chantier_id",
185                                       string="Evolutions"),
186     }
187
188
189 class Palier(osv.Model):
190     _name = "projet.palier"
191
192     _inherit = "projet.qqch"
193
194     _columns = {
195         "projet_id": fields.many2one("projet.projet",
196                                      string="Projet",
197                                      required=True),
198         "evolutions": fields.one2many("projet.evolution",
199                                       "palier_id",
200                                       string="Evolutions"),
201         "phases": fields.one2many("projet.phase",
202                                   "palier_id",
203                                   string="Phases"),
204     }
205
206
207 class Charge(osv.Model):
208     _name = "projet.charge"
209
210     _columns = {
211         "name": fields.char(string="Title", size=64, required=True),
212         "description": fields.text(string="Description"),
213         "teammember_id": fields.many2one("projet.teammember",
214                                          string="Team Member",
215                                          required=True),
216         "phase_id": fields.many2one("projet.phase",
217                                     string="Phase",
218                                     required=True),
219         "evolution_id": fields.many2one("projet.evolution",
220                                     string="Evolution",
221                                     required=True),
222         "mo_id": fields.many2one("projet.mo",
223                                  string="Mo"),
224     }
225
226 class mo(osv.Model):
227     _name = "projet.mo"
228
229     _choses = [("primaire", "Primaire"), ("secondaire", "Secondaire"), ("generique", "Générique")]
230
231     _columns = {
232         "name": fields.char(string="Title"),
233         "description": fields.text(string="Description"),
234         "chose": fields.selection(_choses, string="Chose", required=True),
235         "charges": fields.one2many("projet.charge",
236                                    "mo_id",
237                                    string="Charges"),
238     }
239
240     _defaults = {
241         "chose": "generique"}
242
243
244 class moe(osv.Model):
245     _name = "projet.moe"
246     _inherit = "projet.mo"
247
248     _columns = {
249         "projets": fields.one2many("projet.projet",
250                                      "moe_id",
251                                      string="Projets"),
252     }
253
254
255 class moa(osv.Model):
256     _name= "projet.moa"
257     _inherit = "projet.mo"
258
259     _columns = {
260         "projets": fields.one2many("projet.projet",
261                                      "moa_id",
262                                      string="Projets"),
263     }