def test_devuelve_correctamente_no_contactacion(self): """ este test testea todos los resultados las cantidad de los no contactdos chequeando que devuelva correctamente """ contactos = self.campana.bd_contacto.contactos.all() generador = GeneradorDeLlamadaLogs() cant_llamados = 100 for _ in range(0, cant_llamados): contacto = random.choice(contactos) estado = random.choice(self.estados) generador.generar_log(self.campana, False, estado, contacto.telefono, self.agente, contacto) cantidades = {} for estado in self.estados: cantidades[EstadisticasContactacion.MAP_ESTADO_ID[estado]] = 0 no_llamados = cant_llamados for contacto in contactos: logs = LlamadaLog.objects.filter( contacto_id=contacto.id).order_by('-id') if logs: log = logs[0] self.assertIn(log.event, self.estados) cantidades[EstadisticasContactacion.MAP_ESTADO_ID[ log.event]] += 1 no_llamados -= 1 estadisticas = EstadisticasContactacion() no_contactados = estadisticas.obtener_cantidad_no_contactados( self.campana) for key, value in no_contactados.items(): self.assertEqual(cantidades[key], value.cantidad)
def get_form_kwargs(self): kwargs = super(ReciclarCampanaDialerFormView, self).get_form_kwargs() estadisticas = EstadisticasContactacion() campana = Campana.objects.get(pk=self.kwargs['pk_campana']) contactados = estadisticas.obtener_cantidad_calificacion(campana) contactados_choice = [(contactacion.id, contactacion.label_checkbox) for contactacion in contactados] no_contactados = estadisticas.obtener_cantidad_no_contactados(campana) no_contactados_choice = [(value.id, value.label_checkbox) for key, value in no_contactados.items()] kwargs['reciclado_choice'] = contactados_choice kwargs['no_contactados_choice'] = no_contactados_choice return kwargs
def get_context_data(self, **kwargs): context = super(ReciclarCampanaMixin, self).get_context_data(**kwargs) estadisticas = EstadisticasContactacion() campana = Campana.objects.get(pk=self.kwargs['pk_campana']) contactados = estadisticas.obtener_cantidad_calificacion(campana) contactados_choice = [(contactacion.id, contactacion.nombre, contactacion.cantidad) for contactacion in contactados] no_contactados = estadisticas.obtener_cantidad_no_contactados(campana) no_contactados_choice = [(value.id, value.nombre, value.cantidad) for key, value in no_contactados.items()] context['contactados'] = contactados_choice context['no_contactados'] = no_contactados_choice return context