Ajout d'un menu pour les moes
[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 RoleMO(osv.Model):
15     """Role MO: différents types de MOE et MOA"""
16
17     _name = "cmmi.mo.role"
18
19     _description = "Rattachement des MOs et des roles."
20
21     _statuts = [("actif", "Actif"), ("inactif", "Inactif")]
22
23     _types_mo = [("MOE", "MOE"), ("MOA", "MOA")]
24
25     _columns = {
26         "name": fields.char(string="Title", size=64, required=True),
27         "code": fields.char(string="Code", size=8, required=True),
28         "description": fields.text(string="Description"),
29         "statut": fields.selection(_statuts, string="Statut"),
30         "type_mo": fields.selection(_types_mo,
31                                     string="Type de MO",
32                                     required=True),
33         "mo_ids": fields.one2many("cmmi.mo",
34                                   "role_mo_id",
35                                   string="MOs"),
36     }
37
38
39 class Mo(osv.Model):
40     _name = "cmmi.mo"
41
42     _description = "Table de reference des MOs."
43
44     _rangs = [("primaire", "Primaire"),
45               ("secondaire", "Secondaire"),
46               ("generique", "Générique")]
47
48     _columns = {
49         "name": fields.char(string="Title"),
50         "description": fields.text(string="Description"),
51         "rang": fields.selection(_rangs, string="Rang", required=True),
52         "role_mo_id": fields.many2one("cmmi.mo.role", string="Role"),
53 #        "charges": fields.one2many("cmmi.evolution.charge", # TODO: Faire l'association teammember MO plutôt que MO.
54 #                                   "mo_id",
55 #                                   string="Charges"),
56     }
57
58     _defaults = {
59         "rang": "primaire"}
60
61
62 class Moe(osv.Model):
63     _name = "cmmi.mo.moe"
64
65     _description = "Table de referencement des MOEs."
66
67     _inherit = "cmmi.mo"
68
69     _columns = {
70         "projets": fields.one2many("cmmi.projet",
71                                    "moe_id",
72                                    string="Projets"),
73     }
74
75
76
77 class Moa(osv.Model):
78     _name = "cmmi.mo.moa"
79
80     _description = "Table de referencement des MOAs."
81
82     _inherit = "cmmi.mo"
83
84     _columns = {
85         "projets": fields.one2many("cmmi.projet",
86                                    "moa_id",
87                                    string="Projets"),
88     }