diff options
| author | Thibault Delavallée <tde@openerp.com> | 2012-05-30 15:56:59 +0200 |
|---|---|---|
| committer | Thibault Delavallée <tde@openerp.com> | 2012-05-30 15:56:59 +0200 |
| commit | d4ecb0e05906c7d5ba84c5431dcfc8b82a8ccf59 (patch) | |
| tree | 0a7a7260be1db61f08aad2677acd0c42883b550d | |
| parent | ca6f8dc62427ac1f474d8c7324b4a51b87372b2b (diff) | |
[IMP] crm_claim: added crm.claim.stage views and menu entries; added code to handle 'refuse'.
bzr revid: tde@openerp.com-20120530135659-lfihy7f3io1y0mq5
| -rw-r--r-- | addons/crm_claim/crm_claim.py | 17 | ||||
| -rw-r--r-- | addons/crm_claim/crm_claim_data.xml | 3 | ||||
| -rw-r--r-- | addons/crm_claim/crm_claim_view.xml | 49 | ||||
| -rw-r--r-- | addons/project/project_view.xml | 2 |
4 files changed, 63 insertions, 8 deletions
diff --git a/addons/crm_claim/crm_claim.py b/addons/crm_claim/crm_claim.py index 6ea26182ff1..f4b934f7490 100644 --- a/addons/crm_claim/crm_claim.py +++ b/addons/crm_claim/crm_claim.py @@ -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 diff --git a/addons/crm_claim/crm_claim_data.xml b/addons/crm_claim/crm_claim_data.xml index 3bc727e0cf8..3098af93c19 100644 --- a/addons/crm_claim/crm_claim_data.xml +++ b/addons/crm_claim/crm_claim_data.xml @@ -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"> diff --git a/addons/crm_claim/crm_claim_view.xml b/addons/crm_claim/crm_claim_view.xml index 0c1b0633b07..9a0395797a8 100644 --- a/addons/crm_claim/crm_claim_view.xml +++ b/addons/crm_claim/crm_claim_view.xml @@ -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" diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 25742d89fb1..c11ec98d6a0 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -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"/> |
