Ajout de la classe phase
[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="MoEs", required=True),
38         "moa_id": fields.many2one("projet.moa", string="MoAs", 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     }
49
50
51 class Structure(osv.Model):
52     _name = "projet.structure"
53
54     _columns = {
55         "name": fields.char(string="Title", size=64, required=True),
56         "description": fields.text(string="Description"),
57         "projets": fields.many2many("projet.projet",
58                                     "projet_projet_structure_rel",
59                                     "structures",
60                                     string="Projets (structure)")
61     }
62
63
64 class Module(osv.Model):
65     _name = "projet.module"
66
67     _columns = {
68         "name": fields.char(string="Title", size=64, required=True),
69         "description": fields.text(string="Description"),
70         "projet_id": fields.many2one("projet.projet",
71                                      string="Projet (module)",
72                                      required=True),
73     }
74
75
76 class Domaine(osv.Model):
77     _name = "projet.domaine"
78
79     _columns = {
80         "name": fields.char(string="Title", size=64, required=True),
81         "description": fields.text(string="Description"),
82         "parent_id": fields.many2one("projet.domaine", string="Parent_id"),
83         "projets": fields.many2many("projet.projet",
84                                     "projet_projet_structure_rel",
85                                     "domaines",
86                                     string="Projets"),
87     }
88
89
90 class Teammember(osv.Model):
91     _name = "projet.teammember"
92
93     _inherit = "res.partner"
94
95     _columns = {
96         "projets": fields.many2many("projet.projet",
97                                     "projet_projet_teammember_rel",
98                                     "team_members",
99                                     string="Projets"),
100         "charges": fields.one2many("projet.projet",
101                                    "team_members",
102                                    string="Charges"),
103     }
104
105
106 class Phase(osv.Model):
107     _name = "projet.phase"
108
109     _columns = {
110         "name": fields.char(string="Title", size=64, required=True),
111         "description": fields.text(string="Description"),
112         "projet_id": fields.many2one("projet.projet",
113                                      string="Projet",
114                                      required=True),
115     }
116
117 #TODO trouver un nom a cette chose
118 class qqch(osv.Model):
119     _name = "projet.qqch"
120
121     _columns = {
122         "name": fields.char(string="Title", size=64, required=True),
123         "description": fields.text(string="Description"),
124         "date_jalon": fields.date(sring="Jalon"),
125         "date_init_deb": fields.date(sring="Date initiale début"),
126         "date_init_fin": fields.date(sring="Date initiale de fin"),
127         "date_plan_deb": fields.date(string="Date plannifiée début"),
128         "date_plan_fin": fields.date(string="Date plannifiée de fin"),
129         "date_reel_deb": fields.date(string="Data réelle début"),
130         "date_reel_fin": fields.date(string="Data réelle fin"),
131     }
132
133
134 class Chantier(osv.Model):
135     _name = "projet.chantier"
136
137     _inherit = "projet.qqch"
138
139     _columns = {
140         "projet_id": fields.many2one("projet.projet",
141                                      string="Projet",
142                                      required=True),
143     }
144
145
146 class Palier(osv.Model):
147     _name = "projet.palier"
148
149     _inherit = "projet.qqch"
150
151     _columns = {
152         "projet_id": fields.many2one("projet.projet",
153                                      string="Projet",
154                                      required=True),
155     }
156
157
158 class Charge(osv.Model):
159     _name = "projet.charge"
160
161     _columns = {
162         "name": fields.char(string="Title", size=64, required=True),
163         "description": fields.text(string="Description"),
164         "teammember_id": fields.many2one("projet.teammember",
165                                          string="Team Member",
166                                          required=True),
167     }
168
169 class mo(osv.Model):
170     _name = "projet.mo"
171
172     _choses = [("primaire", "Primaire"), ("secondaire", "Secondaire"), ("generique", "Générique")]
173
174     _columns = {
175         "name": fields.char(string="Title"),
176         "description": fields.text(string="Description"),
177         "chose": fields.selection(_choses, string="Chose", required=True),
178     }
179
180     _defaults = {
181         "chose": "generique"}
182
183
184 class moe(osv.Model):
185     _name = "projet.moe"
186     _inherit = "projet.mo"
187
188     _columns = {
189         "projets": fields.one2many("projet.projet",
190                                      "moe_id",
191                                      string="MoE"),
192     }
193
194
195 class moa(osv.Model):
196     _name= "projet.moa"
197     _inherit = "projet.mo"
198
199     _columns = {
200         "projets": fields.one2many("projet.projet",
201                                      "moa_id",
202                                      string="MoA"),
203     }