From 23ffa3d57c7fe4f575595e52f0a3cc872fb40122 Mon Sep 17 00:00:00 2001 From: Alicia FLOREZ Date: Thu, 23 May 2013 15:01:55 +0200 Subject: [PATCH] =?utf8?q?Modification=20de=20la=20relation=20projet/phase=20?= =?utf8?q?en=20many2many=20:=20cr=C3=A9ation=20d'une=20table=20de=20relation?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- description.py | 2 +- phase.py | 3 --- projet.py | 31 +++++++++++++++++++++++++++---- views/phase.xml | 1 - views/projet.xml | 7 +------ 5 files changed, 29 insertions(+), 15 deletions(-) diff --git a/description.py b/description.py index 0683d46..96516a3 100644 --- a/description.py +++ b/description.py @@ -32,7 +32,7 @@ class Domaine(osv.Model): "ordre": fields.integer(string="Ordre"), "parent_id": fields.many2one("cmmi.description.domaine", string="Parent_id"), "statut": fields.selection(_statuts, string="Statut"), - "projets": fields.many2many("cmmi.projet", + "projets": fields.many2many("cmmi.projet", #TODO enlever ? string="Projets"), } diff --git a/phase.py b/phase.py index 7647037..13392df 100644 --- a/phase.py +++ b/phase.py @@ -28,9 +28,6 @@ class Phase(osv.Model): "statut": fields.selection(_statuts, string="Statut"), "type_phase_id": fields.many2one("cmmi.phase.type", string="Type phase"), - "projet_id": fields.many2one("cmmi.projet", - string="Projet", - required=True), "charges": fields.one2many("cmmi.evolution.charge", "phase_id", string="Charges"), diff --git a/projet.py b/projet.py index dd108b2..4bade4a 100644 --- a/projet.py +++ b/projet.py @@ -42,7 +42,7 @@ class Projet(osv.Model): "paliers": fields.one2many("cmmi.axes.palier", "projet_id", string="Paliers"), - "phases": fields.one2many("cmmi.phase", + "phases": fields.one2many("cmmi.projet.phase", "projet_id", string="Phases"), "evolutions": fields.one2many("cmmi.evolution", @@ -59,6 +59,7 @@ class Projet(osv.Model): def action_add_domain(self, cr, uid, ids, context=None): pass + class ProjetDomaine(osv.Model): _name = "cmmi.projet.domaine" @@ -122,13 +123,13 @@ class ProjetMoe(osv.Model): def _get_name(self, cr, uid, ids, field_name=None, arg=None, context=None): if isinstance(ids, (int, long)): ids = [ids] - return dict([(i, r.domaine_id.name) for i, r in + return dict([(i, r.moe_id.name) for i, r in zip(ids, self.browse(cr, uid, ids, context=context))]) _columns = { "name": fields.function(_get_name, type='char', - store=True, + store=True, # Permet d'enregistrer le champ. string="Nom de la MOE"), "main": fields.boolean(string="MOE principale ?"), "project_id": fields.many2one("cmmi.projet", @@ -144,7 +145,7 @@ class ProjetMoa(osv.Model): def _get_name(self, cr, uid, ids, field_name=None, arg=None, context=None): if isinstance(ids, (int, long)): ids = [ids] - return dict([(i, r.domaine_id.name) for i, r in + return dict([(i, r.moa_id.name) for i, r in zip(ids, self.browse(cr, uid, ids, context=context))]) _columns = { @@ -157,4 +158,26 @@ class ProjetMoa(osv.Model): string="Projet"), "moa_id": fields.many2one("cmmi.mo.moa", string="MOA"), + } + + +class ProjetPhase(osv.Model): + _name = "cmmi.projet.phase" + + def _get_name(self, cr, uid, ids, field_name=None, arg=None, context=None): + if isinstance(ids, (int, long)): + ids = [ids] + return dict([(i, r.phase_id.name) for i, r in + zip(ids, self.browse(cr, uid, ids, context=context))]) + + _columns = { + "name": fields.function(_get_name, + type='char', + store=True, + string="Nom de la phase"), + "selectionne": fields.boolean(string="Phase sélectionnée ?"), + "projet_id": fields.many2one("cmmi.projet", + string="Projet"), + "phase_id": fields.many2one("cmmi.phase", + string="Phase"), } \ No newline at end of file diff --git a/views/phase.xml b/views/phase.xml index 4abee83..b6bfd69 100644 --- a/views/phase.xml +++ b/views/phase.xml @@ -22,7 +22,6 @@ - diff --git a/views/projet.xml b/views/projet.xml index 892c107..1c282a3 100644 --- a/views/projet.xml +++ b/views/projet.xml @@ -106,12 +106,7 @@ - - - - - - + -- 1.7.10.4