Champs des wizards maintenant obligatoires
[OpenERP/cmmi.git] / wizards / moe.py
index 02fc908..37399bc 100644 (file)
@@ -6,14 +6,21 @@ class ProjetMoeWizard(osv.TransientModel):
 
     _name = "cmmi.projet.moe.wizard"
 
+    def default_get(self, cr, uid, fields, context=None):
+        ret = osv.TransientModel.default_get(self, cr, uid, fields, context=context)
+        project_id = context.get('project_id', False)
+        if project_id:
+            ret['project_id'] = project_id
+        return ret
+
     def _moes_selection(self, cr, uid, context=None):
         model_base = self.pool.get("cmmi.mo.moe")
-        model_proj = self.pool.get("cmmi.projet.domaine")
+        model_proj = self.pool.get("cmmi.projet.moe")
 
         if context is None or not context.has_key("project_id"):
             return []
 
-        # recherche des lien entre le projet et les domaines
+        # recherche des lien entre le projet et les moes
         links_ids = model_proj.search(
             cr,
             uid,
@@ -31,7 +38,7 @@ class ProjetMoeWizard(osv.TransientModel):
         )]))
 
         # recherche des domaines autres que ceux déjà sélectionnés
-        domaines_ids = model_base.search(
+        moe_ids = model_base.search(
             cr,
             uid,
             [('id', 'not in', excluded_ids)],
@@ -42,22 +49,68 @@ class ProjetMoeWizard(osv.TransientModel):
         print [(r["id"], r["name"]) for r in model_base.read(
             cr,
             uid,
-            domaines_ids,
+            moe_ids,
             fields=["id", "name"],
             context=context
         )]
         return [(r["id"], r["name"]) for r in model_base.read(
             cr,
             uid,
-            domaines_ids,
+            moe_ids,
             fields=["id", "name"],
             context=context
         )]
 
+
+    def action_add_domain_to_project(self, cr, uid, ids, context=None):
+        # Récupération du modèle utile pour écrire les données
+        model = self.pool.get("cmmi.projet.moe")
+
+        # Un wizard, donc un seul identifiant
+        id = ids[0]
+
+        # Récupération des informations mises dans l'assistant
+        result = self.read(cr, uid, id, context=context)
+
+        # Si on a coché principal, on vire principal des autres moes
+        if result["main"]:
+            model.write(
+                cr,
+                uid,
+                model.search(
+                    cr,
+                    uid,
+                    [('project_id', '=', result["project_id"][0])],
+                    context=context,
+                ),
+                {'main': False},
+                context=context,
+            )
+
+        # Création de la donnée à partir de la donnée du magicien
+        model.create(cr, uid, {
+            "main": result["main"],
+            "project_id": result["project_id"][0],
+            "moe_id": result["moe_id"],
+            }, context=context)
+
+
+        # Renvoi vers la vue du modèle
+        return {
+            "type": 'ir.actions.act_window',
+            "res_model": "cmmi.projet",
+            'view_type': 'form',
+            'view_mode': 'form',
+            'res_id': result["project_id"][0],
+            'context': context,
+        }
+
     _columns = {
-        "main": fields.boolean(string="Domaine principal ?"),
+        "main": fields.boolean(string="MOE principale ?"),
         "project_id": fields.many2one("cmmi.projet",
-                                      string="Projet"),
-        "domaine_id": fields.selection(_domaines_selection,
-                                      string="Domaine"),
+                                      string="Projet",
+                                      required=True),
+        "moe_id": fields.selection(_moes_selection,
+                                   string="MOE",
+                                   required=True),
     }
\ No newline at end of file