feat(ProspectTrace): Se agrega campo para todos los contactos del prospecto
This commit is contained in:
		@@ -61,6 +61,8 @@ class ContactMethod(ModelSQL, ModelView):
 | 
				
			|||||||
    job = fields.Char('job')
 | 
					    job = fields.Char('job')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    prospect = fields.Many2One('sale.prospect', 'Prospect', required=True)
 | 
					    prospect = fields.Many2One('sale.prospect', 'Prospect', required=True)
 | 
				
			||||||
 | 
					    prospect_trace = fields.Many2One(
 | 
				
			||||||
 | 
					        'sale.prospect_trace', 'Prospect Trace', required=False)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
    def default_contact_type(cls):
 | 
					    def default_contact_type(cls):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,13 +16,17 @@ class ProspectTrace(DeactivableMixin, ModelSQL, ModelView):
 | 
				
			|||||||
    _states = {'readonly': True}
 | 
					    _states = {'readonly': True}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    prospect = fields.Many2One('sale.prospect', 'Prospect', required=True)
 | 
					    prospect = fields.Many2One('sale.prospect', 'Prospect', required=True)
 | 
				
			||||||
 | 
					 | 
				
			||||||
    prospect_business_unit = fields.Selection(
 | 
					    prospect_business_unit = fields.Selection(
 | 
				
			||||||
        [('brigade', 'Brigade'),
 | 
					        [('brigade', 'Brigade'),
 | 
				
			||||||
         ('optics', 'Optics'),
 | 
					         ('optics', 'Optics'),
 | 
				
			||||||
         ('equipment', 'Equipment')],
 | 
					         ('equipment', 'Equipment')],
 | 
				
			||||||
        'Business unit', states=_states
 | 
					        'Business unit', states=_states
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    prospect_contacts = fields.One2Many(
 | 
				
			||||||
 | 
					        'prospect.contact_method', 'prospect_trace', 'Prospect contacts',
 | 
				
			||||||
 | 
					        states=_states)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    prospect_contact = fields.Many2One(
 | 
					    prospect_contact = fields.Many2One(
 | 
				
			||||||
        'prospect.contact_method', 'Contact method',
 | 
					        'prospect.contact_method', 'Contact method',
 | 
				
			||||||
        domain=[('prospect', '=', Eval('prospect'))])
 | 
					        domain=[('prospect', '=', Eval('prospect'))])
 | 
				
			||||||
@@ -72,7 +76,8 @@ class ProspectTrace(DeactivableMixin, ModelSQL, ModelView):
 | 
				
			|||||||
    def wizard_make_call(cls, prospect_traces):
 | 
					    def wizard_make_call(cls, prospect_traces):
 | 
				
			||||||
        pass
 | 
					        pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @fields.depends('prospect', 'prospect_city', 'prospect_contact')
 | 
					    @fields.depends(
 | 
				
			||||||
 | 
					        'prospect', 'prospect_city', 'prospect_contact', 'prospect_contacts')
 | 
				
			||||||
    def on_change_prospect(self):
 | 
					    def on_change_prospect(self):
 | 
				
			||||||
        if not self.prospect:
 | 
					        if not self.prospect:
 | 
				
			||||||
            self.prospect_city = None
 | 
					            self.prospect_city = None
 | 
				
			||||||
@@ -82,6 +87,8 @@ class ProspectTrace(DeactivableMixin, ModelSQL, ModelView):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        self.prospect_city = self.prospect.city
 | 
					        self.prospect_city = self.prospect.city
 | 
				
			||||||
        self.prospect_business_unit = self.prospect.business_unit
 | 
					        self.prospect_business_unit = self.prospect.business_unit
 | 
				
			||||||
 | 
					        self.prospect_contacts = tuple(self._get_prospect_contacts())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        mobile_contact = self._get_prospect_mobile_contact()
 | 
					        mobile_contact = self._get_prospect_mobile_contact()
 | 
				
			||||||
        if mobile_contact:
 | 
					        if mobile_contact:
 | 
				
			||||||
            self.prospect_contact = mobile_contact
 | 
					            self.prospect_contact = mobile_contact
 | 
				
			||||||
@@ -106,6 +113,15 @@ class ProspectTrace(DeactivableMixin, ModelSQL, ModelView):
 | 
				
			|||||||
        if contact_mobile:
 | 
					        if contact_mobile:
 | 
				
			||||||
            return contact_mobile[0]
 | 
					            return contact_mobile[0]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def _get_prospect_contacts(self):
 | 
				
			||||||
 | 
					        pool = Pool()
 | 
				
			||||||
 | 
					        ContactMethod = pool.get('prospect.contact_method')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        contacts = ContactMethod.search(
 | 
				
			||||||
 | 
					            [('prospect', '=', self.prospect.id)]
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					        return contacts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ScheduleCallStart(ModelView):
 | 
					class ScheduleCallStart(ModelView):
 | 
				
			||||||
    'Inicio agendar llamada a seguimiento de prospecto'
 | 
					    'Inicio agendar llamada a seguimiento de prospecto'
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -190,6 +190,8 @@ Crear seguimiento de prospecto::
 | 
				
			|||||||
    'brigade'
 | 
					    'brigade'
 | 
				
			||||||
    >>> prospect_trace.prospect_city.name
 | 
					    >>> prospect_trace.prospect_city.name
 | 
				
			||||||
    'Medellín'
 | 
					    'Medellín'
 | 
				
			||||||
 | 
					    >>> prospect_trace.prospect_contacts
 | 
				
			||||||
 | 
					    [proteus.Model.get('prospect.contact_method')(1), proteus.Model.get('prospect.contact_method')(2), proteus.Model.get('prospect.contact_method')(3)]
 | 
				
			||||||
    >>> prospect_trace.prospect_contact.value
 | 
					    >>> prospect_trace.prospect_contact.value
 | 
				
			||||||
    '31223425234'
 | 
					    '31223425234'
 | 
				
			||||||
    >>> prospect_trace.prospect_contact.contact_type
 | 
					    >>> prospect_trace.prospect_contact.contact_type
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user