feat: Se crean estados autollenados al seguimiento de prospecto (open, with_pending_calls)
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
parent
e16e1c6d90
commit
ce71b0c932
@ -4,6 +4,7 @@ from trytond.model import ModelSQL, ModelView, fields
|
|||||||
|
|
||||||
from .selections.call_types import CallTypes
|
from .selections.call_types import CallTypes
|
||||||
from .selections.interest import Interest
|
from .selections.interest import Interest
|
||||||
|
from .selections.prospect_trace_states import ProspectTraceStates
|
||||||
|
|
||||||
|
|
||||||
class ProspectTrace(ModelSQL, ModelView):
|
class ProspectTrace(ModelSQL, ModelView):
|
||||||
@ -22,6 +23,10 @@ class ProspectTrace(ModelSQL, ModelView):
|
|||||||
current_interest = fields.Selection(
|
current_interest = fields.Selection(
|
||||||
Interest.get_interest_levels(), 'Current interest')
|
Interest.get_interest_levels(), 'Current interest')
|
||||||
|
|
||||||
|
_state_type_field = fields.Selection(
|
||||||
|
ProspectTraceStates.get_prospect_trace_states(), 'State')
|
||||||
|
state = fields.Function(_state_type_field, '_get_state')
|
||||||
|
|
||||||
@fields.depends('calls', 'current_interest')
|
@fields.depends('calls', 'current_interest')
|
||||||
def on_change_calls(self):
|
def on_change_calls(self):
|
||||||
if self.calls:
|
if self.calls:
|
||||||
@ -33,15 +38,23 @@ class ProspectTrace(ModelSQL, ModelView):
|
|||||||
else:
|
else:
|
||||||
last_call.call_type = CallTypes.get_call_types()[0][0]
|
last_call.call_type = CallTypes.get_call_types()[0][0]
|
||||||
|
|
||||||
def get_rec_name(self, name):
|
|
||||||
if self.prospect:
|
|
||||||
return '[' + str(self.id) + '] ' + self.prospect.name
|
|
||||||
|
|
||||||
@fields.depends('prospect')
|
@fields.depends('prospect')
|
||||||
def on_change_prospect(self):
|
def on_change_prospect(self):
|
||||||
if self.prospect:
|
if self.prospect:
|
||||||
self.prospect_city = self.prospect.city
|
self.prospect_city = self.prospect.city
|
||||||
|
|
||||||
|
def get_rec_name(self, name):
|
||||||
|
if self.prospect:
|
||||||
|
return '[' + str(self.id) + '] ' + self.prospect.name
|
||||||
|
|
||||||
|
def _get_state(self, name):
|
||||||
|
has_pending_calls = len(self.pending_calls) > 0
|
||||||
|
|
||||||
|
if has_pending_calls:
|
||||||
|
return ProspectTraceStates.get_prospect_trace_states()[2][0]
|
||||||
|
else:
|
||||||
|
return ProspectTraceStates.get_prospect_trace_states()[1][0]
|
||||||
|
|
||||||
def _get_current_interest(self, name):
|
def _get_current_interest(self, name):
|
||||||
if self.calls:
|
if self.calls:
|
||||||
return self.calls[-1].interest
|
return self.calls[-1].interest
|
||||||
|
10
selections/prospect_trace_states.py
Normal file
10
selections/prospect_trace_states.py
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
class ProspectTraceStates():
|
||||||
|
@staticmethod
|
||||||
|
def get_prospect_trace_states():
|
||||||
|
states = [
|
||||||
|
('unassigned', 'Unassigned'),
|
||||||
|
('open', 'Open'),
|
||||||
|
('with_pending_calls', 'With pending calls'),
|
||||||
|
('closed', 'Closed')
|
||||||
|
]
|
||||||
|
return states
|
@ -170,6 +170,8 @@ Verificar estado final del seguimiento del prospecto y sus llamadas
|
|||||||
[proteus.Model.get('sale.call')(1), proteus.Model.get('sale.call')(2), proteus.Model.get('sale.call')(3)]
|
[proteus.Model.get('sale.call')(1), proteus.Model.get('sale.call')(2), proteus.Model.get('sale.call')(3)]
|
||||||
>>> prospect_trace.current_interest
|
>>> prospect_trace.current_interest
|
||||||
'3'
|
'3'
|
||||||
|
>>> prospect_trace.state
|
||||||
|
'open'
|
||||||
|
|
||||||
Programar una próxima llamada pendiente al seguimiento de prospecto::
|
Programar una próxima llamada pendiente al seguimiento de prospecto::
|
||||||
>>> pending_call1 = prospect_trace.pending_calls.new(date = date.today() + timedelta(days=7))
|
>>> pending_call1 = prospect_trace.pending_calls.new(date = date.today() + timedelta(days=7))
|
||||||
@ -178,6 +180,10 @@ Programar una próxima llamada pendiente al seguimiento de prospecto::
|
|||||||
>>> prospect_trace.pending_calls
|
>>> prospect_trace.pending_calls
|
||||||
[proteus.Model.get('sale.pending_call')(1)]
|
[proteus.Model.get('sale.pending_call')(1)]
|
||||||
|
|
||||||
|
>>> prospect_trace.state
|
||||||
|
'with_pending_calls'
|
||||||
|
|
||||||
|
|
||||||
--------
|
--------
|
||||||
Reportes
|
Reportes
|
||||||
--------
|
--------
|
||||||
|
Loading…
Reference in New Issue
Block a user