Déplacement du fichier demo dans son dossier
[OpenERP/cmmi.git] / projet.py
index c8e80e7..12ec84e 100644 (file)
--- a/projet.py
+++ b/projet.py
@@ -3,8 +3,10 @@
 '''
 
 from openerp.osv import osv, fields
+from gtk import TRUE
 
 class Projet(osv.Model):
+
     _name = "projet.projet"
 
     _columns = {
@@ -18,6 +20,16 @@ class Projet(osv.Model):
                                        "projet_projet_structure_rel",
                                        "projets",
                                        string="Structures"),
+        "structures_moe": fields.many2many("projet.structure",
+                                           "projet_projet_structure_rel",
+                                           "projets",
+                                           string="Structures",
+                                           domain=[('role_mo_id.type_mo', '=', "MOE")]),
+        "structures_moa": fields.many2many("projet.structure",
+                                           "projet_projet_structure_rel",
+                                           "projets",
+                                           string="Structures",
+                                           domain=[('role_mo_id.type_mo', '=', "MOA")]),
         "team_members": fields.many2many("projet.teammember",
                                          "projet_projet_teammember_rel",
                                          "projets",
@@ -34,36 +46,95 @@ class Projet(osv.Model):
         "phases": fields.one2many("projet.phase",
                                    "projet_id",
                                    string="Phases"),
-        "moe_id": fields.many2one("projet.moe", string="MoEs", required=True),
-        "moa_id": fields.many2one("projet.moa", string="MoAs", required=True),
+        "evolutions":fields.one2many("projet.evolution",
+                                     "projet_id",
+                                     string="Evolutions"),
+        "moe_id": fields.many2one("projet.moe", string="MoE", required=True),
+        "moa_id": fields.many2one("projet.moa", string="MoA", required=True),
+        "main_domain": fields.many2one("projet.domaine",
+                                       string="Domaine principal"),
+        "main_structure": fields.many2one("projet.structure",
+                                          string="Structure principale"),
     }
 
 
 class Evolution(osv.Model):
     _name = "projet.evolution"
 
+    _priorites = [("incontournable", "Incontournable"),
+                  ("necessaire", "Nécéssaire"),
+                  ("utile", "Utile")]
+
+    _statuts = [("cree", "Crée"), ("encours", "En cours"),
+                ("termine", "Terminé"), ("abandonne", "Abandonné"),
+                ("suspendu", "Suspendu")]
+
     _columns = {
+        "pid": fields.integer(string="PID"),
         "name": fields.char(string="Title", size=64, required=True),
         "description": fields.text(string="Description"),
+        "objectif": fields.text(string="Objectif"),
+        "commentaire": fields.text(string="Commentaire"),
+        "keywords": fields.text(string="Mots clés"),
+        "priorite": fields.selection(_priorites, string="Priorité"),
+        "statut": fields.selection(_statuts, string="Statut"),
         "charges": fields.one2many("projet.charge",
                                    "evolution_id",
                                    string="Charges"),
+        "module_id": fields.many2one("projet.module",
+                                     string="Modules"),
+        "chantier_id": fields.many2one("projet.chantier",
+                                    string="Chantier"),
+        "palier_id": fields.many2one("projet.palier",
+                                     string="Palier"),
+        "phase_id": fields.many2one("projet.phase",
+                                    string="Phase"),
+        "projet_id": fields.many2one("projet.projet",
+                                     string="Projet"),
     }
 
 
 class Structure(osv.Model):
+
     _name = "projet.structure"
 
+    _statuts = [("actif", "Actif"), ("inactif", "Inactif")]
+
     _columns = {
         "name": fields.char(string="Title", size=64, required=True),
+        "code": fields.char(string="Code", size=8, required=True),
         "description": fields.text(string="Description"),
+        "parent_id": fields.many2one("projet.structure", string="Parent_id"),
+        "statut": fields.selection(_statuts, string="Statut"),
+        "role_mo_id":fields.many2one("projet.role_mo", string="Role MO"),
         "projets": fields.many2many("projet.projet",
                                     "projet_projet_structure_rel",
                                     "structures",
-                                    string="Projets (structure)"),
+                                    string="Projets"),
     }
 
 
+class Role_MO(osv.Model):
+    _name = "projet.role_mo"
+
+    _statuts = [("actif", "Actif"), ("inactif", "Inactif")]
+
+    _types_mo = [("MOE", "MOE"), ("MOA", "MOA")]
+
+    _columns = {
+        "name": fields.char(string="Title", size=64, required=True),
+        "code": fields.char(string="Code", size=8, required=True),
+        "description": fields.text(string="Description"),
+        "statut": fields.selection(_statuts, string="Statut"),
+        "type_mo": fields.selection(_types_mo, string="Type de MO", required=True),
+        "structures": fields.one2many("projet.structure",
+                                   "role_mo_id",
+                                   string="MOs"),
+        "mo_ids": fields.one2many("projet.mo",
+                                   "role_mo_id",
+                                   string="MOs"),
+    }
+
 class Module(osv.Model):
     _name = "projet.module"
 
@@ -71,18 +142,26 @@ class Module(osv.Model):
         "name": fields.char(string="Title", size=64, required=True),
         "description": fields.text(string="Description"),
         "projet_id": fields.many2one("projet.projet",
-                                     string="Projet (module)",
+                                     string="Projet",
                                      required=True),
+        "evolutions": fields.one2many("projet.evolution",
+                                      "module_id",
+                                      string="Evolutions")
     }
 
 
 class Domaine(osv.Model):
     _name = "projet.domaine"
 
+    _statuts = [("actif", "Actif"), ("inactif", "Inactif")]
+
     _columns = {
         "name": fields.char(string="Title", size=64, required=True),
+        "code": fields.char(string="Code", size=8),
         "description": fields.text(string="Description"),
+        "ordre": fields.integer(string="Ordre"),
         "parent_id": fields.many2one("projet.domaine", string="Parent_id"),
+        "statut": fields.selection(_statuts, string="Statut"),
         "projets": fields.many2many("projet.projet",
                                     "projet_projet_structure_rel",
                                     "domaines",
@@ -106,27 +185,57 @@ class Teammember(osv.Model):
     }
 
 
+class Type_Phase(osv.Model):
+    _name = "projet.type_phase"
+
+    _statuts = [("actif", "Actif"), ("inactif", "Inactif")]
+
+    _columns = {
+        "name": fields.char(string="Title", size=64, required=True),
+        "description": fields.text(string="Description"),
+        "statut": fields.selection(_statuts, string="Statut"),
+    }
+
+
 class Phase(osv.Model):
     _name = "projet.phase"
 
+    _statuts = [("actif", "Actif"), ("inactif", "Inactif")]
+
+
     _columns = {
         "name": fields.char(string="Title", size=64, required=True),
         "description": fields.text(string="Description"),
+        "statut": fields.selection(_statuts, string="Statut"),
+        "type_phase_id": fields.many2one("projet.type_phase",
+                                         string="Type phase"),
         "projet_id": fields.many2one("projet.projet",
                                      string="Projet",
                                      required=True),
         "charges": fields.one2many("projet.charge",
                                    "phase_id",
                                    string="Charges"),
+        "evolutions": fields.one2many("projet.evolution",
+                                      "phase_id",
+                                      string="Evolutions"),
+        "palier_id": fields.many2one("projet.palier",
+                                     string="Palier"),
     }
 
 #TODO trouver un nom a cette chose
 class qqch(osv.Model):
     _name = "projet.qqch"
 
+    _statuts = [("cree", "Crée"), ("encours", "En cours"),
+                ("termine", "Terminé"), ("abandonne", "Abandonné"),
+                ("suspendu", "Suspendu"), ("generique", "Générique")]
+
     _columns = {
         "name": fields.char(string="Title", size=64, required=True),
         "description": fields.text(string="Description"),
+        "commentaire": fields.text(string="Commentaire"),
+        "statut": fields.selection(_statuts, string="Statut"),
+        "version": fields.char(string="Version", size=16),
         "date_jalon": fields.date(sring="Jalon"),
         "date_init_deb": fields.date(sring="Date initiale début"),
         "date_init_fin": fields.date(sring="Date initiale de fin"),
@@ -144,7 +253,7 @@ class qqch(osv.Model):
         ),
         (
             "date_plan_deb_before_date_plan_fin",
-            "CHECK(date_plan_deb<> date_plan_fin)",
+            "CHECK(date_plan_deb <> date_plan_fin)",
             "The date_plan_deb should be previous date_plan_fin",
         ),
         (
@@ -164,18 +273,31 @@ class Chantier(osv.Model):
         "projet_id": fields.many2one("projet.projet",
                                      string="Projet",
                                      required=True),
+        "evolutions": fields.one2many("projet.evolution",
+                                      "chantier_id",
+                                      string="Evolutions"),
     }
 
 
 class Palier(osv.Model):
     _name = "projet.palier"
 
+    _types_palier = [("normal", "Normal"), ("exceptionnel", "Exceptionnel"),
+                     ("correctif", "Correctif"), ("autre", "Autre")]
+
     _inherit = "projet.qqch"
 
     _columns = {
+        "type_palier": fields.selection(_types_palier, string="Type"),
         "projet_id": fields.many2one("projet.projet",
                                      string="Projet",
                                      required=True),
+        "evolutions": fields.one2many("projet.evolution",
+                                      "palier_id",
+                                      string="Evolutions"),
+        "phases": fields.one2many("projet.phase",
+                                  "palier_id",
+                                  string="Phases"),
     }
 
 
@@ -194,17 +316,25 @@ class Charge(osv.Model):
         "evolution_id": fields.many2one("projet.evolution",
                                     string="Evolution",
                                     required=True),
+        "mo_id": fields.many2one("projet.mo",
+                                 string="Mo"),
     }
 
 class mo(osv.Model):
     _name = "projet.mo"
 
-    _choses = [("primaire", "Primaire"), ("secondaire", "Secondaire"), ("generique", "Générique")]
+    _choses = [("primaire", "Primaire"),
+               ("secondaire", "Secondaire"),
+               ("generique", "Générique")]
 
     _columns = {
         "name": fields.char(string="Title"),
         "description": fields.text(string="Description"),
         "chose": fields.selection(_choses, string="Chose", required=True),
+        "role_mo_id": fields.many2one("projet.role_mo", string="Role"),
+        "charges": fields.one2many("projet.charge",
+                                   "mo_id",
+                                   string="Charges"),
     }
 
     _defaults = {
@@ -218,7 +348,7 @@ class moe(osv.Model):
     _columns = {
         "projets": fields.one2many("projet.projet",
                                      "moe_id",
-                                     string="MoE"),
+                                     string="Projets"),
     }
 
 
@@ -229,5 +359,5 @@ class moa(osv.Model):
     _columns = {
         "projets": fields.one2many("projet.projet",
                                      "moa_id",
-                                     string="MoA"),
+                                     string="Projets"),
     }