[IMP] crm_claim: added crm.claim.stage views and menu entries; added code to handle 'refuse'.
bzr revid: tde@openerp.com-20120530135659-lfihy7f3io1y0mq5
This commit is contained in:
@@ -53,6 +53,8 @@ class crm_claim_stage(osv.osv):
|
||||
'section_ids':fields.many2many('crm.case.section', 'section_claim_stage_rel', 'stage_id', 'section_id', string='Sections',
|
||||
help="Link between stages and sales teams. When set, this limitate the current stage to the selected sales teams."),
|
||||
'state': fields.selection(crm.AVAILABLE_STATES, 'State', required=True, help="The related state for the stage. The state of your document will automatically change regarding the selected stage. For example, if a stage is related to the state 'Close', when your document reaches this stage, it will be automatically have the 'closed' state."),
|
||||
'case_refused': fields.boolean('Refused stage',
|
||||
help='Refused stages are specific stages for done.'),
|
||||
'case_default': fields.boolean('Common to All Teams',
|
||||
help="If you check this field, this stage will be proposed by default on each sales team. It will not assign this stage to existing teams."),
|
||||
'fold': fields.boolean('Hide in Views when Empty',
|
||||
@@ -63,6 +65,7 @@ class crm_claim_stage(osv.osv):
|
||||
'sequence': lambda *args: 1,
|
||||
'state': 'draft',
|
||||
'fold': False,
|
||||
'case_refused': False,
|
||||
}
|
||||
|
||||
class crm_claim(base_stage, osv.osv):
|
||||
@@ -150,6 +153,20 @@ class crm_claim(base_stage, osv.osv):
|
||||
def case_get_note_msg_prefix(self, cr, uid, id, context=None):
|
||||
return 'Claim'
|
||||
|
||||
def case_refuse_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = _('%s has been <b>refused</b>.') % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_refuse(self, cr, uid, ids, context=None):
|
||||
""" Mark the case as refused: state=done and case_refused=True """
|
||||
for lead in self.browse(cr, uid, ids):
|
||||
stage_id = self.stage_find(cr, uid, [lead], lead.section_id.id or False, ['&', ('state', '=', 'done'), ('case_refused', '=', True)], context=context)
|
||||
if stage_id:
|
||||
self.case_set(cr, uid, [lead.id], values_to_update={}, new_stage_id=stage_id, context=context)
|
||||
return self.case_refuse_send_note(cr, uid, ids, context=context)
|
||||
|
||||
def onchange_partner_id(self, cr, uid, ids, part, email=False):
|
||||
"""This function returns value of partner address based on partner
|
||||
:param part: Partner's id
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
-->
|
||||
|
||||
<record model="crm.claim.stage" id="stage_claim1">
|
||||
<field name="name">Draft</field>
|
||||
<field name="name">Draft claim</field>
|
||||
<field name="state">draft</field>
|
||||
<field name="sequence">26</field>
|
||||
<field name="case_default" eval="True"/>
|
||||
@@ -67,6 +67,7 @@
|
||||
<field name="state">done</field>
|
||||
<field name="sequence">29</field>
|
||||
<field name="case_default" eval="True"/>
|
||||
<field name="case_refused" eval="True"/>
|
||||
<field name="fold" eval="True"/>
|
||||
</record>
|
||||
<record model="crm.claim.stage" id="stage_claim3">
|
||||
|
||||
@@ -23,15 +23,47 @@
|
||||
|
||||
<!-- Claim Stages -->
|
||||
|
||||
<record id="crm_claim_stage_tree" model="ir.ui.view">
|
||||
<field name="name">crm.claim.stage.tree</field>
|
||||
<field name="model">crm.claim.stage</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Claim Stages">
|
||||
<field name="sequence"/>
|
||||
<field name="name"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_claim_stage_form" model="ir.ui.view">
|
||||
<field name="name">crm.claim.stage.form</field>
|
||||
<field name="model">crm.claim.stage</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Claim Stage">
|
||||
<field name="name"/>
|
||||
<field name="case_default"/>
|
||||
<field name="sequence"/>
|
||||
<field name="state"/>
|
||||
<field name="case_refused"/>
|
||||
<field name="fold"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_claim_stage_act" model="ir.actions.act_window">
|
||||
<field name="name">Claim Stages</field>
|
||||
<field name="res_model">crm.case.stage</field>
|
||||
<field name="res_model">crm.claim.stage</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="crm.crm_case_stage_tree"/>
|
||||
<field name="context">{'search_default_claim':1}</field>
|
||||
<field name="view_id" ref="crm_claim_stage_tree"/>
|
||||
<field name="help">You can create claim stages to categorize the status of every claim entered in the system. The stages define all the steps required for the resolution of a claim.</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_definitions" name="Configuration" parent="base.menu_main_pm" sequence="60"/>
|
||||
<menuitem id="menu_project_config_project" name="Stages" parent="menu_definitions" sequence="1"/>
|
||||
<menuitem id="menu_claim_stage_view" name="Claim Stages" action="crm_claim_stage_act" parent="menu_project_config_project" sequence="20"/>
|
||||
|
||||
<!-- Claims -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_claims_tree_view">
|
||||
@@ -44,19 +76,22 @@
|
||||
<field name="partner_id"/>
|
||||
<field name="user_id" />
|
||||
<field name="date"/>
|
||||
<field name="stage_id"/>
|
||||
<field name="date_action_next"/>
|
||||
<field name="action_next"/>
|
||||
<field name="categ_id" string="Type" select="1"/>
|
||||
<field name="stage_id" invisible="1"/>
|
||||
<field name="date_deadline" invisible="1"/>
|
||||
<field name="date_closed" invisible="1"/>
|
||||
<field name="stage_id"/>
|
||||
<field name="state" groups="base.group_no_one"/>
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" groups="base.group_no_one"/>
|
||||
<button name="case_close" string="Close"
|
||||
<button name="case_close" string="Done"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-close" groups="base.group_no_one"/>
|
||||
<button name="case_refuse" string="Refuse"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-cancel" groups="base.group_no_one"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -72,6 +107,8 @@
|
||||
states="draft,pending"/>
|
||||
<button name="case_close" string="Done" type="object"
|
||||
states="open,pending"/>
|
||||
<button name="case_refuse" string="Refuse" type="object"
|
||||
states="open,pending"/>
|
||||
<button name="case_reset" string="Reset to Draft" type="object"
|
||||
states="cancel,done"/>
|
||||
<button name="case_cancel" string="Cancel" type="object"
|
||||
|
||||
@@ -721,7 +721,7 @@
|
||||
|
||||
<menuitem id="menu_project_config_project" name="Stages" parent="menu_definitions" sequence="1"/>
|
||||
|
||||
<menuitem action="open_task_type_form" id="menu_task_types_view" parent="menu_project_config_project" sequence="2"/>
|
||||
<menuitem action="open_task_type_form" name="Issue Stages" id="menu_task_types_view" parent="menu_project_config_project" sequence="2"/>
|
||||
<menuitem action="open_view_project_all" id="menu_projects" name="Projects" parent="menu_project_management" sequence="1" groups="base.group_no_one"/>
|
||||
|
||||
<act_window context="{'search_default_user_id': [active_id], 'default_user_id': active_id}" id="act_res_users_2_project_project" name="User's projects" res_model="project.project" src_model="res.users" view_mode="tree,form" view_type="form"/>
|
||||
|
||||
Reference in New Issue
Block a user