Séparation MO
[OpenERP/cmmi.git] / mo.py
1 #-*- coding: utf8 -*-
2 '''
3 Ce module contient tout ce qui est nécessaire pour qualifier une MO
4
5 On distingue deux grands rôles qui sont les MOE et les MOA :
6
7 MOE = Maîtrise d'oeuvre (ceuf qui font)
8 MOA = Maîtrise d'ouvrage (ceux qui demandent et contrôlent)
9 '''
10
11 from openerp.osv import osv, fields
12
13
14 class Role_MO(osv.Model):
15     """Role MO: différents types de MOE et MOA"""
16
17     _name = "projet.role_mo"
18
19     _statuts = [("actif", "Actif"), ("inactif", "Inactif")]
20
21     _types_mo = [("MOE", "MOE"), ("MOA", "MOA")]
22
23     _columns = {
24         "name": fields.char(string="Title", size=64, required=True),
25         "code": fields.char(string="Code", size=8, required=True),
26         "description": fields.text(string="Description"),
27         "statut": fields.selection(_statuts, string="Statut"),
28         "type_mo": fields.selection(_types_mo, string="Type de MO", required=True),
29         "structures": fields.one2many("projet.structure",
30                                    "role_mo_id",
31                                    string="MOs"),
32         "mo_ids": fields.one2many("projet.mo",
33                                    "role_mo_id",
34                                    string="MOs"),
35     }
36
37
38 class mo(osv.Model):
39     _name = "projet.mo"
40
41     _choses = [("primaire", "Primaire"),
42                ("secondaire", "Secondaire"),
43                ("generique", "Générique")]
44
45     _columns = {
46         "name": fields.char(string="Title"),
47         "description": fields.text(string="Description"),
48         "chose": fields.selection(_choses, string="Chose", required=True),
49         "role_mo_id": fields.many2one("projet.role_mo", string="Role"),
50         "charges": fields.one2many("projet.charge",
51                                    "mo_id",
52                                    string="Charges"),
53     }
54
55     _defaults = {
56         "chose": "generique"}
57
58
59 class moe(osv.Model):
60     _name = "projet.moe"
61     _inherit = "projet.mo"
62
63     _columns = {
64         "projets": fields.one2many("projet.projet",
65                                      "moe_id",
66                                      string="Projets"),
67     }
68
69
70 class moa(osv.Model):
71     _name= "projet.moa"
72     _inherit = "projet.mo"
73
74     _columns = {
75         "projets": fields.one2many("projet.projet",
76                                      "moa_id",
77                                      string="Projets"),
78     }