[ADD] Add project_id and section_id on user object
[ADD] Add rules on crm, project, crm_project, sale_crm to open with user preference domain [IMP] section_id no more required=True now [ADD] add object message on project module [ADD] add default values for project and section with all objects related with it using user prefernce fields [IMP] overall changes on crm and project bzr revid: mra@tinyerp.com-20100108110505-pp2s1x0bjcy0edun
This commit is contained in:
parent
8fe7d4c0a7
commit
dec803c584
|
@ -408,6 +408,11 @@ class crm_case(osv.osv):
|
|||
if context.get('portal', False):
|
||||
return False
|
||||
return uid
|
||||
|
||||
def _get_section(self, cr, uid, context):
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid)
|
||||
return user.section_id.id
|
||||
|
||||
_defaults = {
|
||||
'active': lambda *a: 1,
|
||||
'user_id': _get_default_user,
|
||||
|
@ -417,6 +422,7 @@ class crm_case(osv.osv):
|
|||
'state': lambda *a: 'draft',
|
||||
'priority': lambda *a: AVAILABLE_PRIORITIES[2][0],
|
||||
'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'section_id': _get_section,
|
||||
}
|
||||
_order = 'priority, date_deadline desc, date desc,id desc'
|
||||
|
||||
|
@ -946,5 +952,15 @@ class crm_email_add_cc_wizard(osv.osv_memory):
|
|||
return {}
|
||||
|
||||
crm_email_add_cc_wizard()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
class res_users(osv.osv):
|
||||
_inherit = "res.users"
|
||||
_description = "users"
|
||||
|
||||
_columns = {
|
||||
'section_id': fields.many2one('crm.case.section', 'Sales Section', required=False)
|
||||
}
|
||||
|
||||
res_users()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -103,7 +103,7 @@ class crm_claim_assign_wizard(osv.osv_memory):
|
|||
_name = 'crm.claim.assign_wizard'
|
||||
|
||||
_columns = {
|
||||
'section_id': fields.many2one('crm.case.section', 'Section', required=True),
|
||||
'section_id': fields.many2one('crm.case.section', 'Section', required=False),
|
||||
'user_id': fields.many2one('res.users', 'Responsible'),
|
||||
}
|
||||
|
||||
|
|
|
@ -104,7 +104,7 @@ class crm_helpdesk_assign_wizard(osv.osv_memory):
|
|||
_name = 'crm.helpdesk.assign_wizard'
|
||||
|
||||
_columns = {
|
||||
'section_id': fields.many2one('crm.case.section', 'Section', required=True),
|
||||
'section_id': fields.many2one('crm.case.section', 'Section', required=False),
|
||||
'user_id': fields.many2one('res.users', 'Responsible'),
|
||||
}
|
||||
|
||||
|
|
|
@ -465,7 +465,7 @@ class crm_meeting_generic_wizard(osv.osv_memory):
|
|||
_name = 'crm.meeting.generic_wizard'
|
||||
|
||||
_columns = {
|
||||
'section_id': fields.many2one('crm.case.section', 'Section', required=True),
|
||||
'section_id': fields.many2one('crm.case.section', 'Section', required=False),
|
||||
'user_id': fields.many2one('res.users', 'Responsible'),
|
||||
}
|
||||
|
||||
|
|
|
@ -107,7 +107,7 @@ class crm_phonecall_assign_wizard(osv.osv_memory):
|
|||
_name = 'crm.phonecall.assign_wizard'
|
||||
|
||||
_columns = {
|
||||
'section_id': fields.many2one('crm.case.section', 'Section', required=True),
|
||||
'section_id': fields.many2one('crm.case.section', 'Section', required=False),
|
||||
'user_id': fields.many2one('res.users', 'Responsible'),
|
||||
}
|
||||
|
||||
|
|
|
@ -624,5 +624,31 @@
|
|||
|
||||
<act_window domain="[('user_id', '=', active_id),('state','<>','done'),('state','<>','cancel'),('state','<>','pending')]" id="act_res_users_2_crm_case_opened" name="Open cases" res_model="crm.case" src_model="res.users" view_mode="tree,form,calendar" view_type="form"/>
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="view_users_form_simple_modif_inherited1">
|
||||
<field name="name">view.users.form.crm.modif.inherited1</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form_simple_modif" />
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<page string="Current Activity" position="inside">
|
||||
<field name="section_id" widget="selection"/>
|
||||
</page>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_users_form_simple_modif_inherited2" model="ir.ui.view">
|
||||
<field name="name">view.users.form.crm.modif.inherited2</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field eval="18" name="priority"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="password" position="after">
|
||||
<field name="section_id" widget="selection" />
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -18,5 +18,130 @@
|
|||
<field name="groups_id" eval="[(6,0,[ref('group_crm_manager')])]"/>
|
||||
</record>
|
||||
|
||||
<!--rule for meeting-->
|
||||
<record model="ir.rule.group" id="crm_meeting_rule_group">
|
||||
<field name="name">crm.meeting.rule</field>
|
||||
<field name="model_id" search="[('model','=','crm.meeting')]" model="ir.model"/>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
<record id="crm_meeting_rule" model="ir.rule">
|
||||
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.case'),('name','=','section_id')]"/>
|
||||
<field name="operator">=</field>
|
||||
<field name="operand">user.section_id.id</field>
|
||||
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
|
||||
<field name="rule_group" ref="crm_meeting_rule_group"/>
|
||||
</record>
|
||||
|
||||
<!--rule for Claims-->
|
||||
<record model="ir.rule.group" id="crm_claim_rule_group">
|
||||
<field name="name">crm.claim.rule</field>
|
||||
<field name="model_id" search="[('model','=','crm.claim')]" model="ir.model"/>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
<record id="crm_claim_rule" model="ir.rule">
|
||||
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.case'),('name','=','section_id')]"/>
|
||||
<field name="operator">=</field>
|
||||
<field name="operand">user.section_id.id</field>
|
||||
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
|
||||
<field name="rule_group" ref="crm_claim_rule_group"/>
|
||||
</record>
|
||||
|
||||
<!--rule for Fund Raising-->
|
||||
<record model="ir.rule.group" id="crm_fundraising_rule_group">
|
||||
<field name="name">crm.fundraising.rule</field>
|
||||
<field name="model_id" search="[('model','=','crm.fundraising')]" model="ir.model"/>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
<record id="crm_fundraising_rule" model="ir.rule">
|
||||
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.case'),('name','=','section_id')]"/>
|
||||
<field name="operator">=</field>
|
||||
<field name="operand">user.section_id.id</field>
|
||||
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
|
||||
<field name="rule_group" ref="crm_fundraising_rule_group"/>
|
||||
</record>
|
||||
|
||||
<!--rule for HelpDesk-->
|
||||
<record model="ir.rule.group" id="crm_helpdesk_rule_group">
|
||||
<field name="name">crm.helpdesk.rule</field>
|
||||
<field name="model_id" search="[('model','=','crm.helpdesk')]" model="ir.model"/>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
<record id="crm_helpdesk_rule" model="ir.rule">
|
||||
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.case'),('name','=','section_id')]"/>
|
||||
<field name="operator">=</field>
|
||||
<field name="operand">user.section_id.id</field>
|
||||
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
|
||||
<field name="rule_group" ref="crm_helpdesk_rule_group"/>
|
||||
</record>
|
||||
|
||||
<!--rule for Jobs-->
|
||||
<record model="ir.rule.group" id="crm_job_rule_group">
|
||||
<field name="name">crm.meeting.rule</field>
|
||||
<field name="model_id" search="[('model','=','crm.job')]" model="ir.model"/>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
<record id="crm_job_rule" model="ir.rule">
|
||||
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.case'),('name','=','section_id')]"/>
|
||||
<field name="operator">=</field>
|
||||
<field name="operand">user.section_id.id</field>
|
||||
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
|
||||
<field name="rule_group" ref="crm_job_rule_group"/>
|
||||
</record>
|
||||
|
||||
<!--rule for leads-->
|
||||
<record model="ir.rule.group" id="crm_leads_rule_group">
|
||||
<field name="name">crm.leads.rule</field>
|
||||
<field name="model_id" search="[('model','=','crm.lead')]" model="ir.model"/>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
<record id="crm_leads_rule" model="ir.rule">
|
||||
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.case'),('name','=','section_id')]"/>
|
||||
<field name="operator">=</field>
|
||||
<field name="operand">user.section_id.id</field>
|
||||
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
|
||||
<field name="rule_group" ref="crm_leads_rule_group"/>
|
||||
</record>
|
||||
|
||||
<!--rule for business opportunities-->
|
||||
<record model="ir.rule.group" id="crm_opportunities_rule_group">
|
||||
<field name="name">crm.opportunities.rule</field>
|
||||
<field name="model_id" search="[('model','=','crm.opportunity')]" model="ir.model"/>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
<record id="crm_opportunities_rule" model="ir.rule">
|
||||
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.case'),('name','=','section_id')]"/>
|
||||
<field name="operator">=</field>
|
||||
<field name="operand">user.section_id.id</field>
|
||||
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
|
||||
<field name="rule_group" ref="crm_opportunities_rule_group"/>
|
||||
</record>
|
||||
|
||||
<!--rule for phone calls-->
|
||||
<record model="ir.rule.group" id="crm_phone_calls_rule_group">
|
||||
<field name="name">crm.phone.calls.rule</field>
|
||||
<field name="model_id" search="[('model','=','crm.phonecall')]" model="ir.model"/>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
<record id="crm_phone_calls_rule" model="ir.rule">
|
||||
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.case'),('name','=','section_id')]"/>
|
||||
<field name="operator">=</field>
|
||||
<field name="operand">user.section_id.id</field>
|
||||
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
|
||||
<field name="rule_group" ref="crm_phone_calls_rule_group"/>
|
||||
</record>
|
||||
|
||||
<!--rule for cases-->
|
||||
<record model="ir.rule.group" id="crm_case_rule_group">
|
||||
<field name="name">crm.case.rule</field>
|
||||
<field name="model_id" search="[('model','=','crm.case')]" model="ir.model"/>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
<record id="crm_case_rule" model="ir.rule">
|
||||
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.case'),('name','=','section_id')]"/>
|
||||
<field name="operator">=</field>
|
||||
<field name="operand">user.section_id.id</field>
|
||||
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
|
||||
<field name="rule_group" ref="crm_case_rule_group"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
'crm_bugs_menu.xml',
|
||||
'crm_feature_view.xml',
|
||||
'crm_feature_menu.xml',
|
||||
'security/crm_project_security.xml'
|
||||
],
|
||||
'demo_xml': ['crm_bugs_demo.xml'],
|
||||
'installable': True,
|
||||
|
|
|
@ -42,6 +42,13 @@ class crm_project_bug(osv.osv):
|
|||
'project_id':fields.many2one('project.project', 'Project'),
|
||||
}
|
||||
|
||||
def _get_project(self, cr, uid, context):
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid)
|
||||
return user.project_id.id
|
||||
|
||||
_defaults = {
|
||||
'project_id':_get_project
|
||||
}
|
||||
def _map_ids(self, method, cr, uid, ids, *args, **argv):
|
||||
if isinstance(ids, (str, int, long)):
|
||||
select = [ids]
|
||||
|
|
|
@ -41,7 +41,12 @@ class crm_project_future_request(osv.osv):
|
|||
'inherit_case_id':fields.many2one('crm.case','Case'),
|
||||
'project_id':fields.many2one('project.project', 'Project'),
|
||||
}
|
||||
|
||||
def _get_project(self, cr, uid, context):
|
||||
user = self.pool.get('res.users').browse(cr,uid,uid)
|
||||
return user.project_id.id
|
||||
_defaults = {
|
||||
'project_id':_get_project
|
||||
}
|
||||
def _map_ids(self, method, cr, uid, ids, *args, **argv):
|
||||
if isinstance(ids, (str, int, long)):
|
||||
select = [ids]
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
|
||||
|
||||
<record model="ir.rule.group" id="crm_project_bug_rule_group">
|
||||
<field name="name">crm.project.bug.rule.group</field>
|
||||
<field name="model_id" search="[('model','=','crm.project.bug')]" model="ir.model"/>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
<record id="crm_project_bug_rule" model="ir.rule">
|
||||
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.project.bug'),('name','=','project_id')]"/>
|
||||
<field name="operator">=</field>
|
||||
<field name="operand">user.project_id.id</field>
|
||||
<field name="domain_force">['|',('project_id','=',False),('project_id','=',[user.project_id.id])]</field>
|
||||
<field name="rule_group" ref="crm_project_bug_rule_group"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule.group" id="crm_project_feature_rule_group">
|
||||
<field name="name">crm.project.feature.rule.group</field>
|
||||
<field name="model_id" search="[('model','=','crm.project.future')]" model="ir.model"/>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
<record id="crm_project_feature_rule" model="ir.rule">
|
||||
<field model="ir.model.fields" name="field_id" search="[('model','=','crm.project.future'),('name','=','project_id')]"/>
|
||||
<field name="operator">=</field>
|
||||
<field name="operand">user.project_id.id</field>
|
||||
<field name="domain_force">['|',('project_id','=',False),('project_id','=',[user.project_id.id])]</field>
|
||||
<field name="rule_group" ref="crm_project_feature_rule_group"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -495,5 +495,24 @@ class config_compute_remaining(osv.osv_memory):
|
|||
}
|
||||
config_compute_remaining()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
class message(osv.osv):
|
||||
_name = "project.message"
|
||||
_description = "Message"
|
||||
_columns = {
|
||||
'subject': fields.char('Subject', size=128),
|
||||
'description': fields.char('Description', size =128),
|
||||
'project_id': fields.many2one('project.project', 'Project', ondelete='cascade'),
|
||||
'date': fields.date('Date'),
|
||||
'user_id': fields.many2one('res.users', 'User'),
|
||||
}
|
||||
message()
|
||||
|
||||
class users(osv.osv):
|
||||
_inherit = 'res.users'
|
||||
_description ="User"
|
||||
_columns = {
|
||||
'project_id': fields.many2one('project.project', 'Project'),
|
||||
}
|
||||
|
||||
users()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -484,7 +484,6 @@
|
|||
<field name="view_mode">tree,form,calendar,gantt,graph</field>
|
||||
<field eval="False" name="view_id"/>
|
||||
<field eval="True" name="filter"/>
|
||||
<field name="search_view_id" ref="view_task_search_form"/>
|
||||
</record>
|
||||
<menuitem action="action_view_task" id="menu_action_view_task" parent="project.menu_tasks"/>
|
||||
|
||||
|
@ -560,7 +559,7 @@
|
|||
<field name="search_view_id" ref="view_task_search_form"/>
|
||||
<field name="domain">[('state','=','open')]</field>
|
||||
</record>
|
||||
|
||||
menu_main
|
||||
<record id="action_view_task7" model="ir.actions.act_window">
|
||||
<field name="name">Unassigned Tasks</field>
|
||||
<field name="res_model">project.task</field>
|
||||
|
@ -661,6 +660,77 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- User Form-->
|
||||
<record id="view_project_users_form_simple" model="ir.ui.view">
|
||||
<field name="name">res.users.project.form1</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field eval="18" name="priority"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="password" position="after">
|
||||
<field name="project_id" widget="selection" />
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_users_form_project_modif_inherited1">
|
||||
<field name="name">view.users.form.project.modif.inherited1</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form_simple_modif" />
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<page string="Current Activity" position="inside">
|
||||
<field name="project_id" widget="selection"/>
|
||||
</page>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!--- Messages-->
|
||||
<record id="view_project_message_form" model="ir.ui.view">
|
||||
<field name="name">project.message.form</field>
|
||||
<field name="model">project.message</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Messages">
|
||||
<group colspan="6">
|
||||
<field name="subject" select="1"/>
|
||||
<field name="description"/>
|
||||
<field name="project_id" />
|
||||
<field name="date" select="2"/>
|
||||
<field name="user_id" select="1"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_project_message_tree" model="ir.ui.view">
|
||||
<field name="name">project.message.form</field>
|
||||
<field name="model">project.message</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Messages">
|
||||
<field name="subject" select="1"/>
|
||||
<field name="description" select="1"/>
|
||||
<field name="project_id" select="1"/>
|
||||
<field name="date" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_view_project_messages_tree" model="ir.actions.act_window">
|
||||
<field name="name">Messages</field>
|
||||
<field name="res_model">project.message</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_project_message_tree"/>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_message_main" name="Message" parent="menu_main"/>
|
||||
<menuitem action="action_view_project_messages_tree" id="menu_message_tree" parent="menu_message_main"/>
|
||||
|
||||
<act_window domain="[('user_id', '=', active_id),('state', '<>', 'cancelled'),('state', '<>', 'done')]" id="act_res_users_2_project_task_opened" name="Assigned tasks" res_model="project.task" src_model="res.users" view_mode="tree,form,gantt,calendar,graph" view_type="form"/>
|
||||
|
||||
<act_window domain="[('user_id', '=', active_id),('date', '>=', time.strftime('%Y-%m-01'))]" id="act_res_users_2_project_task_work_month" name="Month works" res_model="project.task.work" src_model="res.users" view_mode="tree,form" view_type="form"/>
|
||||
|
|
|
@ -36,5 +36,60 @@
|
|||
<field name="rule_group" ref="task_comp_rule_group"/>
|
||||
</record>
|
||||
|
||||
|
||||
<!--rule for Tasks-->
|
||||
<record model="ir.rule.group" id="project_task_rule_group">
|
||||
<field name="name">project.task.rule.group</field>
|
||||
<field name="model_id" search="[('model','=','project.task')]" model="ir.model"/>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
<record id="project_task_rule" model="ir.rule">
|
||||
<field model="ir.model.fields" name="field_id" search="[('model','=','project.task'),('name','=','project_id')]"/>
|
||||
<field name="operator">=</field>
|
||||
<field name="operand">user.project_id.id</field>
|
||||
<field name="domain_force">['|',('project_id','=',False),('project_id','=',[user.project_id.id])]</field>
|
||||
<field name="rule_group" ref="project_task_rule_group"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule.group" id="project_task_work_rule_group">
|
||||
<field name="name">project.task.work.rule.group</field>
|
||||
<field name="model_id" search="[('model','=','project.task.work')]" model="ir.model"/>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
<record id="project_task_work_rule" model="ir.rule">
|
||||
<field model="ir.model.fields" name="field_id" search="[('model','=','project.task.work'),('name','=','task_id.project_id')]"/>
|
||||
<field name="operator">=</field>
|
||||
<field name="operand">user.project_id.id</field>
|
||||
<field name="domain_force">['|',('task_id.project_id','=',False),('task_id.project_id','=',[user.project_id.id])]</field>
|
||||
<field name="rule_group" ref="project_task_work_rule_group"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule.group" id="project_project_rule_group">
|
||||
<field name="name">project.project.work.rule.group</field>
|
||||
<field name="model_id" search="[('model','=','project.project')]" model="ir.model"/>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
<record id="project_project_rule" model="ir.rule">
|
||||
<field model="ir.model.fields" name="field_id" search="[('model','=','project.project'),('name','=','id')]"/>
|
||||
<field name="operator">=</field>
|
||||
<field name="operand">user.project_id.id</field>
|
||||
<field name="domain_force">['|',('id','=',False),('id','=',[user.project_id.id])]</field>
|
||||
<field name="rule_group" ref="project_project_rule_group"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule.group" id="project_message_rule_group">
|
||||
<field name="name">project.project.work.rule.group</field>
|
||||
<field name="model_id" search="[('model','=','project.message')]" model="ir.model"/>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
<record id="project_message_rule" model="ir.rule">
|
||||
<field model="ir.model.fields" name="field_id" search="[('model','=','project.message'),('name','=','project_id')]"/>
|
||||
<field name="operator">=</field>
|
||||
<field name="operand">user.project_id.id</field>
|
||||
<field name="domain_force">['|',('project_id','=',False),('project_id','=',[user.project_id.id])]</field>
|
||||
<field name="rule_group" ref="project_message_rule_group"/>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -38,7 +38,11 @@ crm modules.
|
|||
'website': 'http://www.openerp.com',
|
||||
'depends': ['sale', 'crm'],
|
||||
'init_xml': [],
|
||||
'update_xml': ['sale_crm_wizard.xml', 'sale_crm_view.xml', 'process/sale_crm_process.xml'],
|
||||
'update_xml': ['sale_crm_wizard.xml',
|
||||
'sale_crm_view.xml',
|
||||
'process/sale_crm_process.xml',
|
||||
'security/sale_crm_security.xml',
|
||||
],
|
||||
'demo_xml': [],
|
||||
'installable': True,
|
||||
'active': False,
|
||||
|
|
|
@ -23,10 +23,19 @@ from osv import osv,fields
|
|||
|
||||
class sale_order(osv.osv):
|
||||
_inherit = 'sale.order'
|
||||
_description = 'Sale orders'
|
||||
_columns = {
|
||||
'section_id': fields.many2one('crm.case.section', 'Section'),
|
||||
}
|
||||
|
||||
def _get_section(self, cr, uid, context):
|
||||
user = self.pool.get('res.users').browse(cr,uid,uid)
|
||||
return user.section_id.id
|
||||
|
||||
_defaults = {
|
||||
'section_id':_get_section
|
||||
}
|
||||
|
||||
sale_order()
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -25,7 +25,7 @@
|
|||
<field name="inherit_id" ref="sale.view_order_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="/form/notebook/page[@string='Other data']/field[@name='company_id']" position="after">
|
||||
<field name="section_id"/>
|
||||
<field name="section_id" widget='selection'/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="0">
|
||||
|
||||
<record model="ir.rule.group" id="sale_order_crm_rule_group">
|
||||
<field name="name">Sale Order sale_crm</field>
|
||||
<field name="model_id" search="[('model','=','sale.order')]" model="ir.model"/>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
<record model="ir.rule" id="sale_order_comp_rule">
|
||||
<field name="field_id" search="[('model','=','sale.order'),('name','=','section_id')]" model="ir.model.fields"/>
|
||||
<field name="operator">=</field>
|
||||
<field name="operand">user.section_id.id</field>
|
||||
<field name="rule_group" ref="sale_order_crm_rule_group"/>
|
||||
<field name="domain_force">['|',('section_id','=',False),('section_id','=',[user.section_id.id])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule.group" id="sale_order_line_crm_rule_group">
|
||||
<field name="name">Sale Order Line sale_crm</field>
|
||||
<field name="model_id" search="[('model','=','sale.order.line')]" model="ir.model"/>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
<record model="ir.rule" id="sale_order_line_comp_rule">
|
||||
<field name="field_id" search="[('model','=','sale.order.line'),('name','=','order_id.section_id')]" model="ir.model.fields"/>
|
||||
<field name="operator">=</field>
|
||||
<field name="operand">user.section_id.id</field>
|
||||
<field name="rule_group" ref="sale_order_line_crm_rule_group"/>
|
||||
<field name="domain_force">['|',('order_id.section_id','=',False),('order_id.section_id','=',[user.section_id.id])]</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
Loading…
Reference in New Issue