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