def setUp(self):
        super(AuditoriaDeGestionTests, self).setUp()

        self.supervisor = self.crear_supervisor_profile()
        self.client.login(username=self.supervisor.user.username,
                          password=PASSWORD)

        self.campana = CampanaFactory.create(estado=Campana.ESTADO_ACTIVA)
        self.campana.supervisors.add(self.supervisor.user)

        self.opcion_calificacion_gestion = OpcionCalificacionFactory.create(
            campana=self.campana, tipo=OpcionCalificacion.GESTION)
        self.opcion_calificacion_no_gestion = OpcionCalificacionFactory.create(
            campana=self.campana, tipo=OpcionCalificacion.NO_ACCION)

        self.contacto_gestion = ContactoFactory.create()
        self.campana.bd_contacto.contactos.add(self.contacto_gestion)
        self.contacto_no_gestion = ContactoFactory.create()
        self.campana.bd_contacto.contactos.add(self.contacto_no_gestion)

        self.agente = self.crear_agente_profile()
        self.calificacion_gestion = CalificacionClienteFactory(
            opcion_calificacion=self.opcion_calificacion_gestion,
            agente=self.agente,
            contacto=self.contacto_gestion)
        self.calificacion_no_gestion = CalificacionClienteFactory(
            opcion_calificacion=self.opcion_calificacion_no_gestion,
            agente=self.agente,
            contacto=self.contacto_no_gestion)
예제 #2
0
 def test_datos_reporte_grafico_calificaciones_por_agente_coinciden_estadisticas_sistema(
         self, render_to_png, crea_reporte_pdf, escribir_archivo_datos_csv):
     agente_profile1, agente_profile2, agente_profile3 = AgenteProfileFactory.create_batch(
         3)
     log1 = LlamadaLogFactory(campana_id=self.campana_activa.pk,
                              agente_id=agente_profile1.pk)
     log2 = LlamadaLogFactory(campana_id=self.campana_activa.pk,
                              agente_id=agente_profile2.pk)
     log3 = LlamadaLogFactory(campana_id=self.campana_activa.pk,
                              agente_id=agente_profile3.pk)
     CalificacionClienteFactory(
         callid=log1.callid,
         opcion_calificacion=self.opcion_calificacion_gestion,
         agente=agente_profile1)
     CalificacionClienteFactory(
         callid=log2.callid,
         opcion_calificacion=self.opcion_calificacion_noaccion,
         agente=agente_profile2)
     CalificacionClienteFactory(
         callid=log3.callid,
         opcion_calificacion=self.opcion_calificacion_noaccion,
         agente=agente_profile3)
     url = reverse('campana_reporte_grafico', args=[self.campana_activa.pk])
     response = self.client.get(url, follow=True)
     estadisticas = response.context_data['graficos_estadisticas'][
         'estadisticas']
     self.assertContains(response, agente_profile1.user.get_full_name())
     self.assertContains(response, agente_profile2.user.get_full_name())
     self.assertContains(response, agente_profile3.user.get_full_name())
     # se toman en cuenta las calificaciones iniciales del setUp
     self.assertEqual(estadisticas['total_ventas'], 2)
     self.assertEqual(estadisticas['total_calificados'], 5)
예제 #3
0
    def setUp(self):
        super(CalificacionTests, self).setUp()

        self.agente_1 = self.crear_agente_profile()
        self.agente_2 = self.crear_agente_profile()
        self.agente_3 = self.crear_agente_profile()
        self.supervisor = self.crear_supervisor_profile()

        self.campana = CampanaFactory.create(estado=Campana.ESTADO_ACTIVA,
                                             type=Campana.TYPE_MANUAL)
        self.campana.supervisors.add(self.supervisor.user)

        self.nombre_calificacion_agenda = NombreCalificacion.objects.get(
            nombre=settings.CALIFICACION_REAGENDA)
        self.opcion_calificacion_agenda = OpcionCalificacionFactory.create(
            campana=self.campana,
            nombre=self.nombre_calificacion_agenda.nombre,
            tipo=OpcionCalificacion.AGENDA)

        self.contacto_1 = ContactoFactory.create()
        self.campana.bd_contacto.contactos.add(self.contacto_1)
        self.contacto_2 = ContactoFactory.create()
        self.campana.bd_contacto.contactos.add(self.contacto_2)

        self.calificacion_1 = CalificacionClienteFactory(
            opcion_calificacion=self.opcion_calificacion_agenda,
            agente=self.agente_1,
            contacto=self.contacto_1)
        self.agenda_1 = AgendaContactoFactory(
            agente=self.agente_1,
            contacto=self.contacto_1,
            campana=self.campana,
            tipo_agenda=AgendaContacto.TYPE_PERSONAL)
        self.calificacion_2 = CalificacionClienteFactory(
            opcion_calificacion=self.opcion_calificacion_agenda,
            agente=self.agente_2,
            contacto=self.contacto_2)
        self.agenda_2 = AgendaContactoFactory(
            agente=self.agente_2,
            contacto=self.contacto_2,
            campana=self.campana,
            tipo_agenda=AgendaContacto.TYPE_PERSONAL)

        self.queue = QueueFactory.create(campana=self.campana)
        QueueMemberFactory.create(member=self.agente_1, queue_name=self.queue)
        QueueMemberFactory.create(member=self.agente_2, queue_name=self.queue)

        self.client.login(username=self.supervisor.user.username,
                          password=PASSWORD)
예제 #4
0
    def setUp(self):
        super(CalificacionTests, self).setUp()

        self.agente_profile = self.crear_agente_profile()
        self.usuario_agente = self.agente_profile.user

        self.campana = CampanaFactory.create()
        self.nombre_opcion_gestion = NombreCalificacionFactory.create()
        self.nombre_calificacion_agenda = NombreCalificacion.objects.get(
            nombre=settings.CALIFICACION_REAGENDA)
        self.formulario = FormularioFactory()
        self.campo_formulario = FieldFormularioFactory(formulario=self.formulario)
        self.opcion_calificacion_gestion = OpcionCalificacionFactory.create(
            campana=self.campana, nombre=self.nombre_opcion_gestion.nombre,
            tipo=OpcionCalificacion.GESTION, formulario=self.formulario)
        self.opcion_calificacion_agenda = OpcionCalificacionFactory.create(
            campana=self.campana, nombre=self.nombre_calificacion_agenda.nombre,
            tipo=OpcionCalificacion.AGENDA)
        self.opcion_calificacion_camp_manual = OpcionCalificacionFactory.create(
            campana=self.campana, nombre=self.nombre_opcion_gestion.nombre)
        self.opcion_calificacion_no_accion = OpcionCalificacionFactory.create(
            campana=self.campana, tipo=OpcionCalificacion.NO_ACCION)

        self.contacto = ContactoFactory.create()
        self.campana.bd_contacto.contactos.add(self.contacto)

        self.queue = QueueFactory.create(campana=self.campana)

        self.calificacion_cliente = CalificacionClienteFactory(
            opcion_calificacion=self.opcion_calificacion_camp_manual, agente=self.agente_profile,
            contacto=self.contacto)

        QueueMemberFactory.create(member=self.agente_profile, queue_name=self.queue)

        self.client.login(username=self.usuario_agente.username, password=PASSWORD)
 def test_no_se_admite_mas_de_una_calificacion_para_un_contacto_en_una_campana_creacion(
         self):
     opcion_calificacion = self.calificacion_cliente.opcion_calificacion
     contacto = self.contacto
     self.assertRaises(
         ValidationError, lambda: CalificacionClienteFactory(
             opcion_calificacion=opcion_calificacion, contacto=contacto))
예제 #6
0
    def setUp(self):
        self.usuario_admin_supervisor = UserFactory(is_staff=True,
                                                    is_supervisor=True)
        self.usuario_admin_supervisor.set_password(self.PWD)
        self.usuario_admin_supervisor.save()

        self.user_agente = self.crear_user_agente()
        self.campana = CampanaFactory()
        self.agente_profile = self.crear_agente_profile(self.user_agente)
        self.opcion_calificacion = OpcionCalificacionFactory(
            campana=self.campana, tipo=OpcionCalificacion.GESTION)
        self.calificacion = CalificacionClienteFactory(
            opcion_calificacion=self.opcion_calificacion)
        self.grabacion1 = GrabacionFactory.create(
            duracion=0,
            agente=self.agente_profile,
            callid=self.calificacion.callid,
            campana=self.campana)
        self.grabacion2 = GrabacionFactory(duracion=0,
                                           agente=self.agente_profile,
                                           campana=self.campana)
        self.grabacion3 = GrabacionFactory(duracion=0,
                                           agente=self.agente_profile,
                                           campana=self.campana)
        self.marca_campana1 = GrabacionMarcaFactory(
            callid=self.grabacion1.callid)
        self.marca_campana2 = GrabacionMarcaFactory(
            callid=self.grabacion2.callid)

        self.client.login(username=self.usuario_admin_supervisor.username,
                          password=self.PWD)
예제 #7
0
    def setUp(self):
        super(APITest, self).setUp()
        self.factory = RequestFactory()

        self.supervisor_admin = self.crear_supervisor_profile(
            rol=User.ADMINISTRADOR)
        self.supervisor = self.crear_supervisor_profile(rol=User.SUPERVISOR)
        self.agente_profile = self.crear_agente_profile()

        self.campana_activa = CampanaFactory.create(
            estado=Campana.ESTADO_ACTIVA)
        self.campana_activa_supervisor = CampanaFactory.create(
            estado=Campana.ESTADO_ACTIVA)
        self.campana_activa_supervisor.supervisors.add(self.supervisor.user)
        self.campana_finalizada = CampanaFactory(
            estado=Campana.ESTADO_FINALIZADA)
        self.queue = QueueFactory.create(campana=self.campana_activa)
        self.queue2 = QueueFactory.create(
            campana=self.campana_activa_supervisor)
        self.queue3 = QueueFactory.create(campana=self.campana_finalizada)
        QueueMemberFactory.create(member=self.agente_profile,
                                  queue_name=self.queue)
        self.sistema_externo = SistemaExternoFactory()
        self.opcion_calificacion = OpcionCalificacionFactory(
            campana=self.campana_activa)

        self.calificacion_cliente = CalificacionClienteFactory(
            opcion_calificacion=self.opcion_calificacion,
            agente=self.agente_profile)

        for user in User.objects.all():
            Token.objects.create(user=user)
예제 #8
0
 def test_contabiliza_gestiones(self):
     CalificacionClienteFactory(
         opcion_calificacion=self.opcion_calificacion_m1,
         agente=self.agente1)
     CalificacionClienteFactory(
         opcion_calificacion=self.opcion_calificacion_d1,
         agente=self.agente1)
     CalificacionClienteFactory(
         opcion_calificacion=self.opcion_calificacion_p1,
         agente=self.agente1)
     reporte = ReporteDeLLamadasSalientesDeSupervision(self.supervisor.user)
     for id_campana in [self.manual.id, self.dialer.id, self.preview.id]:
         self.assertIn(id_campana, reporte.estadisticas)
         self.assertEqual(reporte.estadisticas[id_campana]['efectuadas'], 0)
         self.assertEqual(reporte.estadisticas[id_campana]['conectadas'], 0)
         self.assertEqual(reporte.estadisticas[id_campana]['no_conectadas'],
                          0)
예제 #9
0
    def setUp(self):
        self.supervisor1 = self.crear_supervisor_profile(rol=User.SUPERVISOR)
        self.supervisor2 = self.crear_supervisor_profile(rol=User.SUPERVISOR)

        self.agente1 = self.crear_agente_profile()
        self.agente2 = self.crear_agente_profile()

        self.campana1 = CampanaFactory(estado=Campana.ESTADO_ACTIVA)
        self.queue_campana_1 = QueueFactory(campana=self.campana1)
        QueueMemberFactory(member=self.agente1,
                           queue_name=self.queue_campana_1)
        self.campana1.supervisors.add(self.supervisor1.user)

        self.campana2 = CampanaFactory(estado=Campana.ESTADO_ACTIVA)
        self.queue_campana_2 = QueueFactory(campana=self.campana2)
        QueueMemberFactory(member=self.agente2,
                           queue_name=self.queue_campana_2)
        self.campana2.supervisors.add(self.supervisor2.user)

        self.contacto = ContactoFactory(id_externo='id_ext')
        self.campana3 = CampanaFactory(estado=Campana.ESTADO_ACTIVA)
        self.campana3.bd_contacto.genera_contactos([self.contacto])
        self.campana3.supervisors.add(self.supervisor1.user)

        self.opcion_calificacion = OpcionCalificacionFactory(
            campana=self.campana1, tipo=OpcionCalificacion.GESTION)
        self.calificacion = CalificacionClienteFactory(
            opcion_calificacion=self.opcion_calificacion)
        update_change_reason(self.calificacion, 'calificacion')
        self.grabacion1 = GrabacionFactory.create(
            duracion=1,
            agente=self.agente1,
            callid=self.calificacion.callid,
            campana=self.campana1,
            id_cliente='-1')
        self.grabacion2 = GrabacionFactory(duracion=1,
                                           agente=self.agente1,
                                           campana=self.campana1)
        self.grabacion3 = GrabacionFactory(duracion=1,
                                           agente=self.agente1,
                                           campana=self.campana1)
        self.marca_campana1 = GrabacionMarcaFactory(
            callid=self.grabacion1.callid)
        self.marca_campana2 = GrabacionMarcaFactory(
            callid=self.grabacion2.callid)

        self.grabacion2_1 = GrabacionFactory.create(duracion=1,
                                                    agente=self.agente2,
                                                    campana=self.campana2)
        self.marca_campana2_1 = GrabacionMarcaFactory(
            callid=self.grabacion2_1.callid)

        self.grabacion3_1 = GrabacionFactory.create(
            tel_cliente=self.contacto.telefono,
            agente=self.agente2,
            campana=self.campana3)
예제 #10
0
    def setUp(self):
        super(AuditoriasCalificacionesTests, self).setUp()

        self.campana1 = CampanaFactory(estado=Campana.ESTADO_ACTIVA)
        self.campana2 = CampanaFactory(estado=Campana.ESTADO_ACTIVA)
        self.campana3 = CampanaFactory(estado=Campana.ESTADO_ACTIVA)

        self.supervisor1 = self.crear_supervisor_profile(rol=User.GERENTE)
        self.supervisor2 = self.crear_supervisor_profile(rol=User.GERENTE)
        self.supervisor3 = self.crear_supervisor_profile(rol=User.SUPERVISOR)
        self.supervisor4 = self.crear_supervisor_profile(rol=User.REFERENTE)

        # calificaciones y auditorias de gestion para campana1
        opcion_calificacion11 = OpcionCalificacionFactory(
            campana=self.campana1, tipo=OpcionCalificacion.GESTION)
        self.calificacion11 = CalificacionClienteFactory(
            opcion_calificacion=opcion_calificacion11)

        # calificacion de gestion para campana2
        opcion_calificacion21_gestion = OpcionCalificacionFactory(
            campana=self.campana2, tipo=OpcionCalificacion.GESTION)
        opcion_calificacion21_no_accion = OpcionCalificacionFactory(
            campana=self.campana2, tipo=OpcionCalificacion.NO_ACCION)
        self.calificacion21 = CalificacionClienteFactory(
            opcion_calificacion=opcion_calificacion21_no_accion)
        self.calificacion22 = CalificacionClienteFactory(
            opcion_calificacion=opcion_calificacion21_gestion)
        self.calificacion23 = CalificacionClienteFactory(
            opcion_calificacion=opcion_calificacion21_gestion)
        self.calificacion24 = CalificacionClienteFactory(
            opcion_calificacion=opcion_calificacion21_gestion)
        self.calificacion25 = CalificacionClienteFactory(
            opcion_calificacion=opcion_calificacion21_gestion)
        self.queue_campana_2 = QueueFactory(campana=self.campana2)
        QueueMemberFactory(member=self.calificacion25.agente,
                           queue_name=self.queue_campana_2)

        self.auditoria_aprobada = AuditoriaCalificacionFactory(
            calificacion=self.calificacion23,
            resultado=AuditoriaCalificacion.APROBADA)
        self.auditoria_rechazada = AuditoriaCalificacionFactory(
            calificacion=self.calificacion24,
            resultado=AuditoriaCalificacion.RECHAZADA)
        self.auditoria_rechazada = AuditoriaCalificacionFactory(
            calificacion=self.calificacion25,
            resultado=AuditoriaCalificacion.OBSERVADA)

        self.campana2.supervisors.add(self.supervisor2.user)
        self.campana3.supervisors.add(self.supervisor2.user)

        # calificacion de gestion para campana2
        opcion_calificacion31_gestion = OpcionCalificacionFactory(
            campana=self.campana3, tipo=OpcionCalificacion.GESTION)
        self.calificacion31 = CalificacionClienteFactory(
            opcion_calificacion=opcion_calificacion31_gestion)

        self.client.login(username=self.supervisor2.user,
                          password=self.DEFAULT_PASSWORD)
예제 #11
0
 def test_api_muestra_solo_las_calificaciones_que_ha_hecho_el_agente_que_accede(self):
     contacto_nuevo = ContactoFactory(bd_contacto=self.campana_activa.bd_contacto)
     CalificacionClienteFactory(
         opcion_calificacion=self.opcion_calificacion, contacto=contacto_nuevo)
     token_agente = Token.objects.get(user=self.agente_profile.user).key
     client = APIClient()
     client.credentials(HTTP_AUTHORIZATION='Bearer ' + token_agente)
     url = reverse('api_disposition-list')
     response = client.get(url)
     self.assertEqual(response.status_code, 200)
     self.assertEqual(len(response.data), 1)
 def test_calificaciones_agenda_se_adicionan_a_llamadas_pendientes(self):
     campana_manual = CampanaFactory(type=Campana.TYPE_MANUAL, estado=Campana.ESTADO_ACTIVA)
     opcion_calificacion_agenda = OpcionCalificacionFactory(
         nombre=settings.CALIFICACION_REAGENDA, campana=campana_manual,
         tipo=OpcionCalificacion.AGENDA)
     CalificacionClienteFactory(
         opcion_calificacion=opcion_calificacion_agenda, agente=self.agente_profile)
     estadisticas_service = EstadisticasService()
     llamadas_pendientes, _, _, _, _ = estadisticas_service.obtener_total_llamadas(
         campana_manual)
     self.assertEqual(llamadas_pendientes, 1)
예제 #13
0
 def test_supervision_saliente_redis_family(self):
     CalificacionClienteFactory(
         opcion_calificacion=self.opcion_calificacion_m1,
         agente=self.agente1)
     CalificacionClienteFactory(
         opcion_calificacion=self.opcion_calificacion_d1,
         agente=self.agente1)
     CalificacionClienteFactory(
         opcion_calificacion=self.opcion_calificacion_p1,
         agente=self.agente1)
     reporte = ReporteDeLLamadasSalientesDeSupervision()
     redis_saliente = ReporteLlamadasSalienteFamily()
     self.assertEqual(len(reporte.estadisticas.keys()), 2)
     for id_campana in [self.manual.id, self.preview.id]:
         self.assertIn(id_campana, reporte.estadisticas)
         datos_redis = redis_saliente._create_dict(
             reporte.estadisticas[id_campana])
         self.assertEqual(datos_redis['NOMBRE'],
                          reporte.estadisticas[id_campana]['nombre'])
         self.assertEqual(datos_redis['ESTADISTICAS'],
                          json.dumps(reporte.estadisticas[id_campana]))
 def test_calificaciones_agenda_se_adicionan_a_llamadas_pendientes(self):
     campana_manual = CampanaFactory(type=Campana.TYPE_MANUAL, estado=Campana.ESTADO_ACTIVA)
     opcion_calificacion_agenda = OpcionCalificacionFactory(
         nombre=settings.CALIFICACION_REAGENDA, campana=campana_manual,
         tipo=OpcionCalificacion.AGENDA)
     log = LlamadaLogFactory(campana_id=campana_manual.pk)
     CalificacionClienteFactory(
         callid=log.callid,
         opcion_calificacion=opcion_calificacion_agenda, agente=self.agente_profile)
     hoy_ahora = fecha_hora_local(timezone.now())
     fecha_desde = datetime_hora_minima_dia_utc(hoy_ahora)
     fecha_hasta = datetime_hora_maxima_dia_utc(hoy_ahora)
     estadisticas_service = EstadisticasService(campana_manual, fecha_desde, fecha_hasta)
     estadisticas_service.calcular_estadisticas_totales()
     self.assertEqual(estadisticas_service.reporte_totales_llamadas.llamadas_pendientes, 1)
예제 #15
0
 def test_contabiliza_gestiones(self, _obtener_llamadas_en_espera_raw):
     self.generador.generar_log(self.entrante1, False, 'COMPLETEAGENT', '35100001111',
                                agente=self.agente1, contacto=None, bridge_wait_time=-1,
                                duracion_llamada=10, archivo_grabacion='', time=None)
     CalificacionClienteFactory(opcion_calificacion=self.opcion_calificacion,
                                agente=self.agente1)
     reporte = ReporteDeLLamadasEntrantesDeSupervision()
     self.assertEqual(
         reporte.estadisticas[self.entrante1.id]['llamadas_atendidas'], 1)
     self.assertEqual(
         reporte.estadisticas[self.entrante1.id]['llamadas_expiradas'], 0)
     self.assertEqual(
         reporte.estadisticas[self.entrante1.id]['llamadas_abandonadas'], 0)
     self.assertEqual(
         reporte.estadisticas[self.entrante1.id]['gestiones'], 1)
예제 #16
0
 def test_calificacion_cliente_modificacion_gestion_por_no_accion(self, post):
     contacto_califica = ContactoFactory.create()
     self.campana.bd_contacto.contactos.add(contacto_califica)
     calificacion = CalificacionClienteFactory(
         opcion_calificacion=self.opcion_calificacion_gestion, agente=self.agente_profile,
         contacto=contacto_califica)
     RespuestaFormularioGestionFactory(calificacion=calificacion)
     # Se modifica la calificacion por una de no accion
     url_calificacion = reverse('calificacion_formulario_update_or_create',
                                kwargs={'pk_campana': self.campana.pk,
                                        'pk_contacto': contacto_califica.pk})
     post_data_calificacion = self._obtener_post_data_calificacion_cliente(
         contacto=contacto_califica)
     post_data_calificacion['opcion_calificacion'] = self.opcion_calificacion_no_accion.pk
     self.client.post(url_calificacion, post_data_calificacion, follow=True)
     self.assertIsNone(
         CalificacionCliente.objects.get(opcion_calificacion__campana=self.campana,
                                         contacto_id=contacto_califica.id).get_venta())
예제 #17
0
    def setUp(self):
        super(APITest, self).setUp()
        self.factory = RequestFactory()

        self.supervisor_admin = self.crear_supervisor_profile(
            rol=User.ADMINISTRADOR)
        self.supervisor = self.crear_supervisor_profile(rol=User.SUPERVISOR)
        self.agente_profile = self.crear_agente_profile()

        self.campana_activa = CampanaFactory.create(
            estado=Campana.ESTADO_ACTIVA,
            type=Campana.TYPE_MANUAL,
            nombre='activa uno')
        self.campana_activa_2 = CampanaFactory.create(
            estado=Campana.ESTADO_ACTIVA,
            type=Campana.TYPE_PREVIEW,
            nombre='activa dos')
        self.campana_activa_supervisor = CampanaFactory.create(
            estado=Campana.ESTADO_ACTIVA,
            type=Campana.TYPE_ENTRANTE,
            nombre='activa supervisor uno')
        self.campana_activa_supervisor.supervisors.add(self.supervisor.user)
        self.campana_finalizada = CampanaFactory(
            estado=Campana.ESTADO_FINALIZADA)
        self.queue = QueueFactory.create(campana=self.campana_activa)
        self.queue1 = QueueFactory.create(campana=self.campana_activa_2)
        self.queue2 = QueueFactory.create(
            campana=self.campana_activa_supervisor)
        self.queue3 = QueueFactory.create(campana=self.campana_finalizada)
        QueueMemberFactory.create(member=self.agente_profile,
                                  queue_name=self.queue)
        self.sistema_externo = SistemaExternoFactory()
        self.opcion_calificacion = OpcionCalificacionFactory(
            campana=self.campana_activa)

        self.contacto = ContactoFactory(
            bd_contacto=self.campana_activa.bd_contacto)
        self.calificacion_cliente = CalificacionClienteFactory(
            opcion_calificacion=self.opcion_calificacion,
            agente=self.agente_profile,
            contacto=self.contacto)

        for user in User.objects.all():
            Token.objects.create(user=user)
예제 #18
0
 def test_api_modificar_calificacion_impide_calificar_mas_de_una_vez_contacto_campana(self):
     contacto_nuevo = ContactoFactory(bd_contacto=self.campana_activa.bd_contacto)
     CalificacionClienteFactory(
         opcion_calificacion=self.opcion_calificacion, contacto=contacto_nuevo)
     token_agente = Token.objects.get(user=self.agente_profile.user).key
     client = APIClient()
     client.credentials(HTTP_AUTHORIZATION='Bearer ' + token_agente)
     observaciones = 'calificacion externa'
     post_data = {
         'id': self.calificacion_cliente.pk,
         'idContact': contacto_nuevo.pk,
         'idAgent': self.agente_profile.pk,
         'idDispositionOption': self.opcion_calificacion.pk,
         'comments': observaciones
     }
     url = reverse('api_disposition-detail', args=(self.calificacion_cliente.pk,))
     response = client.put(url, post_data)
     self.assertEqual(response.status_code, 400)
     self.assertEqual(str(response.data['status']), 'ERROR')
    def test_no_permite_auditar_en_campanas_no_asignadas(self):
        campana_no_asignada = CampanaFactory.create(
            estado=Campana.ESTADO_ACTIVA)
        nombre_opcion_no_asignada = NombreCalificacionFactory.create()
        opcion_calificacion_no_asignada = OpcionCalificacionFactory.create(
            campana=campana_no_asignada,
            nombre=nombre_opcion_no_asignada.nombre)
        contacto_no_asignada = ContactoFactory.create()
        campana_no_asignada.bd_contacto.contactos.add(contacto_no_asignada)
        calificacion_no_asignada = CalificacionClienteFactory(
            opcion_calificacion=opcion_calificacion_no_asignada,
            agente=self.agente,
            contacto=contacto_no_asignada)

        url = reverse('auditar_calificacion_cliente',
                      args=(calificacion_no_asignada.id, ))
        response = self.client.get(url, follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertRedirects(response,
                             reverse('buscar_auditorias_gestion', args=(1, )))
        self.assertContains(
            response,
            _("No tiene permiso para auditar calificaciones de esta campaña."))
예제 #20
0
    def setUp(self):
        self.factory = RequestFactory()

        self.supervisor_admin = SupervisorProfileFactory(is_administrador=True)
        self.supervisor_admin.user.set_password(self.PWD)
        self.supervisor_admin.user.save()

        self.supervisor = SupervisorProfileFactory(is_administrador=False)
        self.supervisor.user.set_password(self.PWD)
        self.supervisor.user.save()

        self.agente_profile = AgenteProfileFactory()
        self.agente_profile.user.set_password(self.PWD)
        self.agente_profile.user.is_agente = True
        self.agente_profile.user.save()

        self.campana_activa = CampanaFactory.create(
            estado=Campana.ESTADO_ACTIVA)
        self.campana_activa_supervisor = CampanaFactory.create(
            estado=Campana.ESTADO_ACTIVA)
        self.campana_activa_supervisor.supervisors.add(self.supervisor.user)
        self.campana_finalizada = CampanaFactory(
            estado=Campana.ESTADO_FINALIZADA)
        self.queue = QueueFactory.create(campana=self.campana_activa)
        QueueMemberFactory.create(member=self.agente_profile,
                                  queue_name=self.queue)
        self.sistema_externo = SistemaExternoFactory()
        self.opcion_calificacion = OpcionCalificacionFactory(
            campana=self.campana_activa)

        self.calificacion_cliente = CalificacionClienteFactory(
            opcion_calificacion=self.opcion_calificacion,
            agente=self.agente_profile)

        for user in User.objects.all():
            Token.objects.create(user=user)
예제 #21
0
    def setUp(self):
        self.supervisor1 = self.crear_supervisor_profile(rol=User.SUPERVISOR)
        self.supervisor2 = self.crear_supervisor_profile(rol=User.SUPERVISOR)

        self.agente1 = self.crear_agente_profile()
        self.agente2 = self.crear_agente_profile()

        self.campana1 = CampanaFactory(estado=Campana.ESTADO_ACTIVA)
        self.queue_campana_1 = QueueFactory(campana=self.campana1)
        QueueMemberFactory(member=self.agente1,
                           queue_name=self.queue_campana_1)
        self.campana1.supervisors.add(self.supervisor1.user)

        self.campana2 = CampanaFactory(estado=Campana.ESTADO_ACTIVA)
        self.queue_campana_2 = QueueFactory(campana=self.campana2)
        QueueMemberFactory(member=self.agente2,
                           queue_name=self.queue_campana_2)
        self.campana2.supervisors.add(self.supervisor2.user)

        self.contacto = ContactoFactory(id_externo='id_ext')
        self.campana3 = CampanaFactory(estado=Campana.ESTADO_ACTIVA)
        self.campana3.bd_contacto.genera_contactos([self.contacto])
        self.campana3.supervisors.add(self.supervisor1.user)

        self.opcion_calificacion = OpcionCalificacionFactory(
            campana=self.campana1, tipo=OpcionCalificacion.GESTION)
        self.calificacion = CalificacionClienteFactory(
            opcion_calificacion=self.opcion_calificacion)
        update_change_reason(self.calificacion, 'calificacion')

        self.llamada_log1 = LlamadaLogFactory.create(
            duracion_llamada=1,
            agente_id=self.agente1.id,
            callid=self.calificacion.callid,
            campana_id=self.campana1.id,
            contacto_id='-1',
            event='COMPLETEAGENT')
        self.llamada_log2 = LlamadaLogFactory.create(
            duracion_llamada=1,
            agente_id=self.agente1.id,
            campana_id=self.campana1.id,
            event='COMPLETEAGENT')
        self.llamada_log3 = LlamadaLogFactory.create(
            duracion_llamada=1,
            agente_id=self.agente1.id,
            campana_id=self.campana1.id,
            event='COMPLETEAGENT')
        self.marca_campana1 = GrabacionMarcaFactory(
            callid=self.llamada_log1.callid)
        self.marca_campana2 = GrabacionMarcaFactory(
            callid=self.llamada_log2.callid)

        self.llamada_log2_1 = LlamadaLogFactory.create(
            duracion_llamada=1,
            agente_id=self.agente2.id,
            campana_id=self.campana2.id,
            event='COMPLETEAGENT')
        self.marca_campana2_1 = GrabacionMarcaFactory(
            callid=self.llamada_log2_1.callid)

        self.llamada_log3_1 = LlamadaLogFactory.create(
            numero_marcado=self.contacto.telefono,
            agente_id=self.agente2.id,
            campana_id=self.campana3.id,
            event='COMPLETEAGENT')

        (_, hace_mucho, ahora) = self._obtener_fechas()
        self.rango_hace_mucho = hace_mucho.date().strftime('%d/%m/%Y') + ' - ' + \
            ahora.date().strftime('%d/%m/%Y')
예제 #22
0
 def crear_calificacion(opcion_calificacion, agente):
     CalificacionClienteFactory(opcion_calificacion=opcion_calificacion, agente=agente)
예제 #23
0
 def modificar_calificacion():
     calificacion = CalificacionClienteFactory(
         opcion_calificacion=self.opcion_calificacion_no_accion)
     calificacion.contacto = self.contacto
     calificacion.save()