def post(self, request, *args, **kwargs): # TODO: Analizar bien el caso de que se este agregando un contacto agente = AgenteProfile.objects.get(pk=request.POST['pk_agente']) click2call_type = request.POST.get('click2call_type', 'false') tipo_campana = request.POST.get('tipo_campana') campana_id = request.POST.get('pk_campana') telefono = request.POST.get('telefono', '') # Si el pk es 0 es porque no se quiere identificar al contacto. # El tipo de click2call no será "preview". contacto_id = request.POST['pk_contacto'] if not contacto_id == '-1': contacto = Contacto.objects.get(pk=contacto_id) if not telefono: telefono = contacto.telefono if campana_id == '': calificacion_cliente = CalificacionCliente.objects.filter( contacto=contacto, agente=agente).order_by('-fecha') if calificacion_cliente.exists(): campana = calificacion_cliente[0].campana campana_id = str(campana.pk) tipo_campana = str(campana.type) elif click2call_type == 'preview': asignado = AgenteEnContacto.asignar_contacto( contacto.id, campana_id, agente) if not asignado: message = _(u'No es posible llamar al contacto.' ' Para poder llamar un contacto debe obtenerlo' ' desde el menu de Campañas Preview.' ' Asegurese de no haber perdido la reserva') messages.warning(self.request, message) return HttpResponseRedirect( reverse('campana_preview_activas_miembro')) originator = Click2CallOriginator() originator.call_originate(agente, campana_id, tipo_campana, contacto_id, telefono, click2call_type) return HttpResponseRedirect(reverse('view_blanco'))
def post(self, request, *args, **kwargs): # TODO: Analizar bien el caso de que se este agregando un contacto # TODO: DEJAR DE MANDAR pk_agente # TODO: DEJAR DE MANDAR tipo_campana agente = self.request.user.get_agente_profile() click2call_type = request.POST.get('click2call_type', 'false') campana_id = request.POST.get('pk_campana') telefono = request.POST.get('telefono', '') # Patch: Para deectar que hubo un error cuando se le pega por AJAX... self.no_redirect = request.POST.get('404_on_error') # Si el pk es 0 es porque no se quiere identificar al contacto. # El tipo de click2call no será "preview". contacto_id = request.POST['pk_contacto'] if not contacto_id == '-1': try: contacto = Contacto.objects.get(pk=contacto_id) except Contacto.DoesNotExist: message = _( u'No es posible llamar al contacto. No se pudo identificar al contacto.' ) return self.error_return_value('view_blanco', message) if not telefono: if not contacto: message = _( u'No es posible llamar al contacto. No se pudo identificar un teléfono.' ) return self.error_return_value('view_blanco', message) telefono = contacto.telefono if campana_id == '': calificacion_cliente = CalificacionCliente.objects.filter( contacto=contacto, agente=agente).order_by('-fecha') if calificacion_cliente.exists(): campana = calificacion_cliente[0].campana campana_id = str(campana.pk) tipo_campana = str(campana.type) else: try: campana = Campana.objects.obtener_actuales().get(id=campana_id) except Campana.DoesNotExist: message = _( u'No es posible llamar al contacto.' ' La campaña no se encuentra activa o no existe en el sistema.' ) return self.error_return_value('view_blanco', message) campana_id = str(campana.pk) tipo_campana = str(campana.type) if click2call_type == 'preview': asignado = AgenteEnContacto.asignar_contacto( contacto.id, campana.pk, agente) if not asignado: message = _(u'No es posible llamar al contacto.' ' Para poder llamar un contacto debe obtenerlo' ' desde el menu de Campañas Preview.' ' Asegurese de no haber perdido la reserva') return self.error_return_value( 'campana_preview_activas_miembro', message) originator = Click2CallOriginator() originator.call_originate(agente, campana_id, tipo_campana, contacto_id, telefono, click2call_type) return HttpResponseRedirect(reverse('view_blanco'))