diff --git a/prospect_trace.py b/prospect_trace.py index 12675f5..0ed394c 100644 --- a/prospect_trace.py +++ b/prospect_trace.py @@ -57,8 +57,11 @@ class ProspectTrace(DeactivableMixin, ModelSQL, ModelView): cls._buttons.update({ 'wizard_schedule': { 'invisible': Eval('state') == 'with_pending_calls', - }, - 'wizard_make_call': {} + }, + 'wizard_make_call': {}, + 'close_trace': { + 'invisible': Eval('state') == 'closed' + } }) @classmethod @@ -77,6 +80,13 @@ class ProspectTrace(DeactivableMixin, ModelSQL, ModelView): def wizard_make_call(cls, prospect_traces): pass + @classmethod + @ModelView.button + def close_trace(cls, prospect_traces): + for prospect_trace in prospect_traces: + prospect_trace.state = 'closed' + 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 8115643..c130103 100644 --- a/prospect_trace.xml +++ b/prospect_trace.xml @@ -90,5 +90,10 @@ this repository contains the full copyright notices and license terms. --> + + close_trace + Close trace + + \ No newline at end of file diff --git a/tests/scenario_sale_opportunity_management.rst b/tests/scenario_sale_opportunity_management.rst index cab4062..869b0ba 100644 --- a/tests/scenario_sale_opportunity_management.rst +++ b/tests/scenario_sale_opportunity_management.rst @@ -257,7 +257,7 @@ Programar una próxima llamada pendiente al seguimiento de prospecto:: Crear una llamada agendada previamente:: >>> make_call = Wizard('sale.prospect_trace.make_call', [prospect_trace]) >>> make_call.form.description = 'Fourth call to the prospect' - >>> make_call.form.interest = '4' + >>> make_call.form.interest = '2' >>> make_call.execute('make_call') >>> prospect_trace.pending_call @@ -265,6 +265,15 @@ Crear una llamada agendada previamente:: >>> prospect_trace.state 'open' +Hacer llamada y cerrar venta (Seguimiento de prospecto):: + >>> make_call = Wizard('sale.prospect_trace.make_call', [prospect_trace]) + >>> make_call.form.description = 'Closed sale' + >>> make_call.form.interest = '4' + >>> make_call.execute('make_call') + >>> prospect_trace.click('close_trace') + + >>> prospect_trace.state + 'closed' Reasignar prospectos por operador:: >>> operator2 = User();