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