diff --git a/prospect_trace.py b/prospect_trace.py index 591a3d8..3f683b4 100644 --- a/prospect_trace.py +++ b/prospect_trace.py @@ -60,7 +60,13 @@ class ProspectTrace(ModelSQL, ModelView): }, 'wizard_make_call': {}, 'close_trace': { - 'invisible': Eval('state') == 'closed' + 'invisible': Eval('state') == 'closed', + 'depends': ['state'] + }, + 'reopen_trace': { + 'invisible': Eval('state') == 'open' + or Eval('state') == 'with_pending_calls', + 'depends': ['state'] } }) @@ -87,6 +93,13 @@ class ProspectTrace(ModelSQL, ModelView): prospect_trace.state = 'closed' prospect_trace.save() + @classmethod + @ModelView.button + def reopen_trace(cls, prospect_traces): + for prospect_trace in prospect_traces: + prospect_trace.state = 'open' + prospect_trace.save() + def get_rec_name(self, name): if self.prospect: return '[' + str(self.id) + '] ' + self.prospect.name diff --git a/prospect_trace.xml b/prospect_trace.xml index 1c53a35..b3d769d 100644 --- a/prospect_trace.xml +++ b/prospect_trace.xml @@ -102,5 +102,11 @@ this repository contains the full copyright notices and license terms. --> <field name="string">Close trace</field> <field name="model" search="[('model', '=', 'sale.prospect_trace')]"/> </record> + + <record model="ir.model.button" id="reopen_trace_button"> + <field name="name">reopen_trace</field> + <field name="string">Reopen trace</field> + <field name="model" search="[('model', '=', 'sale.prospect_trace')]"/> + </record> </data> </tryton> \ No newline at end of file diff --git a/tests/scenario_sale_opportunity_management.rst b/tests/scenario_sale_opportunity_management.rst index 869b0ba..153d8d0 100644 --- a/tests/scenario_sale_opportunity_management.rst +++ b/tests/scenario_sale_opportunity_management.rst @@ -275,6 +275,11 @@ Hacer llamada y cerrar venta (Seguimiento de prospecto):: >>> prospect_trace.state 'closed' +Reabrir seguimiento a prospecto una vez cerrado:: + >>> prospect_trace.click('reopen_trace') + >>> prospect_trace.state + 'open' + Reasignar prospectos por operador:: >>> operator2 = User(); >>> operator2.name = 'Operatus'