X-Git-Url: http://git.inspyration.org/?a=blobdiff_plain;f=projet.py;h=91c6e8bd386c4f51d288c29bcb568781a07491b0;hb=14aafa7e6d8a1a68914a98f680e5dd5417a7591d;hp=9381694edf96004f8495ebe713e87344104282e7;hpb=30b2c4797523153d79a0c8d6bbce5bcdb20c8a10;p=OpenERP%2Fcmmi.git diff --git a/projet.py b/projet.py index 9381694..91c6e8b 100644 --- a/projet.py +++ b/projet.py @@ -69,13 +69,18 @@ class Projet(osv.Model): _columns = { "name": fields.char(string="Title", size=64, required=True), "description": fields.text(string="Description"), + # Backrefs "domains": fields.one2many("cmmi.projet.domaine", "project_id", string="Domaines"), - "team_members": fields.many2many("res.partner", - "cmmi_projet_teammember_rel", + "moe_ids": fields.one2many("cmmi.projet.moe", + "project_id", + string="MOEs"), + "moa_ids": fields.one2many("cmmi.projet.moa", + "project_id", + string="MOAs"), + "team_members": fields.one2many("cmmi.projet.teammember", "projet_id", - "partner_id", string="Team Members"), "modules": fields.one2many("cmmi.description.module", "projet_id", @@ -92,12 +97,9 @@ class Projet(osv.Model): "evolutions": fields.one2many("cmmi.evolution", "projet_id", string="Evolutions"), - "moe_ids": fields.one2many("cmmi.projet.moe", - "project_id", - string="MOEs"), - "moa_ids": fields.one2many("cmmi.projet.moa", - "project_id", - string="MOAs"), + # TODO: faire un champs fonction qui renvoie uniquement les domaines sélectionnés + + # Champs fonction rapatriant les mo ou domaine principaux "moe_id": fields.function(_get_main_moe, type="string", string="MOE principale"), @@ -114,7 +116,7 @@ class Projet(osv.Model): project_id = osv.Model.create(self, cr, uid, vals, context=context) # Récupération des ids de toutes les phases - phase_model = self.pool.get("cmmi.phase.type") + phase_model = self.pool.get("cmmi.phase") phases_ids = phase_model.search(cr, uid, []) # Création des relations @@ -312,6 +314,8 @@ class ProjetMoa(osv.Model): class ProjetPhase(osv.Model): _name = "cmmi.projet.phase" + _description = "Rattachement des Phases aux projets" + def _get_name(self, cr, uid, ids, field_name=None, arg=None, context=None): if isinstance(ids, (int, long)): ids = [ids] @@ -323,11 +327,47 @@ class ProjetPhase(osv.Model): type='char', store=True, string="Nom de la phase"), + "phase_id": fields.many2one("cmmi.phase", + string="Phase", + required=True), + "projet_id": fields.many2one("cmmi.projet", + string="Projet", + required=True), "selectionne": fields.boolean(string="Phase sélectionnée ?"), + } + + +class ProjetTeammember(osv.Model): + _name = "cmmi.projet.teammember" + + def _get_partner_name(self, cr, uid, ids, field_name=None, arg=None, context=None): + if isinstance(ids, (int, long)): + ids = [ids] + return dict([(i, r.partner_id.name) for i, r in + zip(ids, self.browse(cr, uid, ids, context=context))]) + + def _get_project_name(self, cr, uid, ids, field_name=None, arg=None, context=None): + if isinstance(ids, (int, long)): + ids = [ids] + return dict([(i, r.projet_id.name) for i, r in + zip(ids, self.browse(cr, uid, ids, context=context))]) + + _columns = { + "name": fields.function(_get_partner_name, + type='char', + store=True, + string="Nom du partner"), + "projet_name": fields.function(_get_project_name, + type='char', + store=True, + string="Nom du projet"), + "affecte": fields.integer(string="Affecté à"), + "depuis": fields.date(string="Depuis"), + "jusqua": fields.date(string="Jusqu'à"), "projet_id": fields.many2one("cmmi.projet", string="Projet", required=True), - "phase_id": fields.many2one("cmmi.phase.type", - string="Phase", + "partner_id": fields.many2one("res.partner", + string="Team Member", required=True), - } \ No newline at end of file + }