Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
1 Odpowiedz
8135 Widoki

I would like to customize the Project Task model's user_id field , so that it only allows to select only from the Task project's team members.

I already tried adding this to the field in the form's XML:

domain="[('id','child_of',project_id.members)]"

But no success. Any suggestions?

Awatar
Odrzuć

You can use the role in group to do this.

Autor

Role in group? I'm not familiar with that.

You access menu Settings - Users - Groups. In group which you want to fix, do this on tab Rules (add new rule with "Rule Definition (Domain Filter)"). Link: https://lh5.googleusercontent.com/-I9cHAewfEIY/UiBZy5QrfQI/AAAAAAAAANg/-U8kVoHsctM/w1044-h569-no/rule.png

any other simpler solution for this question?

Najlepsza odpowiedź

Hi Daniel,

what is overriding "onchange_project(project_id)" method and adding: domain for user_id there? you have the project_id so you can load the members and can add the list in return

As i read https://doc.openerp.com/6.0/developer/2_6_views_events/events/events/ correctly onchange methods can return not only values and warning but also "domain"

EDIT i just test my idea with a short modul for OpenERP 7 and it works, look at the code:

from openerp.osv import fields, osv
from openerp.addons.base_status.base_stage import base_stage

class task(base_stage, osv.osv):
    _name = "project.task"
    _inherit = "project.task"

    def onchange_project(self, cr, uid, id, project_id, context=None):
        if project_id:
            project = self.pool.get('project.project').browse(cr, uid, project_id, context=context)
            members = []            
            for m in project.members:
                members.append(m.id)
            if project and project.partner_id:
                return {'value': {'partner_id': project.partner_id.id},
                        'domain': {'user_id':[('id','in',members)]}}
            return {'domain': {'user_id':[('id','in',members)]}}
        return {}

task()

Greetings Markus

Awatar
Odrzuć
Autor

Nice hack. I wish there could be a simpler solution though. But if there isn't I'll try that. +1

Daniel, I use this hack to because I found no working domain filter to do the job ...

This won't work when the project has not been changed. i.e opening an existing record in form view. In this case, one can select any user as member...

any other simpler solution for the above question other than this one?

Powiązane posty Odpowiedzi Widoki Czynność
1
sty 23
2561
1
lip 25
623
2
cze 25
2595
1
cze 25
1003
3
maj 25
2559