예제 #1
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)
예제 #2
0
    def test_creacion_usuario_preview_por_supervisor_crea_agente_en_contacto(
            self):
        usr_supervisor = self.campana.reported_by
        campana = CampanaFactory(type=Campana.TYPE_PREVIEW,
                                 estado=Campana.ESTADO_ACTIVA,
                                 bd_contacto=self.campana.bd_contacto,
                                 reported_by=usr_supervisor)
        campana.supervisors.add(usr_supervisor)
        QueueFactory(campana=campana)
        QueueMemberFactory.create(member=self.agente,
                                  queue_name=campana.queue_campana)
        self.client.logout()
        self.client.login(username=usr_supervisor.username, password=self.PWD)

        post_data = self.post_data_contacto
        post_data['idCampaign'] = str(campana.id)
        response = self.client.post(self.URL,
                                    json.dumps(post_data),
                                    format='json',
                                    content_type='application/json')

        self.assertEqual(response.status_code, 200)
        agente_en_contacto = AgenteEnContacto.objects.filter(
            campana_id=campana.id,
            contacto_id=response.json()['id'],
            agente_id=-1,
            es_originario=True)
        self.assertEqual(agente_en_contacto.count(), 1)
예제 #3
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)
예제 #4
0
 def setUp(self, _convertir_audio):
     base_datos = self.crear_base_datos_contacto(cant_contactos=100)
     user_agente = self.crear_user_agente()
     self.agente = self.crear_agente_profile(user_agente)
     self.campana = self.crear_campana(type=Campana.TYPE_PREVIEW,
                                       bd_contactos=base_datos)
     self.queue_campana = QueueFactory(campana=self.campana)
     self.queue_member = QueueMemberFactory(member=self.agente,
                                            queue_name=self.queue_campana)
     self.estados = LlamadaLog.EVENTOS_NO_CONTACTACION
    def setUp(self):
        super(StatusCalificacionLlamadaTest, self).setUp()
        user = self.crear_user_agente(username='******')
        self.agente = self.crear_agente_profile(user)
        self.agente.grupo.obligar_calificacion = True
        self.client.login(username=user.username, password=PASSWORD)

        self.campana = CampanaFactory.create()
        QueueFactory(campana=self.campana)
        QueueMemberFactory.create(member=self.agente,
                                  queue_name=self.campana.queue_campana)
        self.contacto = ContactoFactory.create()
        self.campana.bd_contacto.contactos.add(self.contacto)
예제 #6
0
 def test_creacion_usuario_preview_por_agente_crea_agente_en_contacto(self):
     campana = CampanaFactory(type=Campana.TYPE_PREVIEW, estado=Campana.ESTADO_ACTIVA,
                              bd_contacto=self.campana.bd_contacto)
     QueueFactory(campana=campana)
     QueueMemberFactory.create(member=self.agente, queue_name=campana.queue_campana)
     post_data = self.post_data_contacto
     post_data['idCampaign'] = str(campana.id)
     response = self.client.post(self.URL, json.dumps(post_data),
                                 format='json', content_type='application/json')
     self.assertEqual(response.status_code, 200)
     agente_en_contacto = AgenteEnContacto.objects.filter(
         campana_id=campana.id, contacto_id=response.json()['id'],
         agente_id=self.agente.id, es_originario=False)
     self.assertEqual(agente_en_contacto.count(), 1)
    def setUp(self):
        super(RedisDatabaseTest, self).setUp()
        audio_1 = ArchivoDeAudioFactory(audio_asterisk='oml/audio_1')
        audio_2 = ArchivoDeAudioFactory(audio_asterisk='oml/audio_2')
        audio_3 = ArchivoDeAudioFactory(audio_asterisk='oml/audio_3')
        self.ivr = IVRFactory(nombre='IVR 1',
                              time_out=10,
                              time_out_retries=5,
                              invalid_retries=1,
                              audio_principal=audio_1,
                              time_out_audio=audio_2,
                              invalid_audio=audio_3)
        self.nodo_ivr = DestinoEntrante.crear_nodo_ruta_entrante(self.ivr)

        self.grupo_horario = GrupoHorarioFactory()
        self.validacion_tiempo = ValidacionTiempoFactory(
            grupo_horario=self.grupo_horario)
        self.tc = ValidacionFechaHoraFactory()
        self.nodo_tc = DestinoEntrante.crear_nodo_ruta_entrante(self.tc)

        self.id_cliente = IdentificadorClienteFactory(audio=audio_1)
        self.nodo_id_cliente = DestinoEntrante.crear_nodo_ruta_entrante(
            self.id_cliente)
        self.pausa = PausaFactory()
        self.inr = RutaEntranteFactory(destino=self.nodo_ivr)
        self.trunk = TroncalSIPFactory()
        self.destino_personalizado = DestinoPersonalizadoFactory()
        self.nodo_destino_personalizado = DestinoEntrante.crear_nodo_ruta_entrante(
            self.destino_personalizado)
        self.campana_entrante = CampanaFactory(type=Campana.TYPE_ENTRANTE)
        QueueFactory(campana=self.campana_entrante)
        self.campana_dialer = CampanaFactory(type=Campana.TYPE_DIALER)
        QueueFactory(campana=self.campana_dialer)
        self.campana_preview = CampanaFactory(type=Campana.TYPE_PREVIEW)
        QueueFactory(campana=self.campana_preview)
        self.campana_manual = CampanaFactory(type=Campana.TYPE_MANUAL)
        QueueFactory(campana=self.campana_manual)
예제 #8
0
 def crear_campanas(self):
     self.campanas = {}
     estado = Campana.ESTADO_ACTIVA
     for (tipo, nombre_tipo) in Campana.TYPES_CAMPANA:
         nombre = 'campana_simulada_%s' % nombre_tipo
         qs = Campana.objects.filter(nombre=nombre)
         if qs.count() == 1:
             campana = qs[0]
         else:
             campana = CampanaFactory.create(
                 type=tipo,
                 estado=estado,
                 nombre=nombre,
                 reported_by=self.agentes[0].user)
             QueueFactory(campana=campana, name=campana.nombre)
         ContactoFactory.create_batch(5, bd_contacto=campana.bd_contacto)
         self.campanas[tipo] = campana
예제 #9
0
    def setUp(self):
        super(ABMUsuariosTest, self).setUp()
        self.admin = self.crear_administrador(username='******')
        self.gerente = self.crear_supervisor_profile(rol=User.GERENTE,
                                                     user=None)
        self.supervisor = self.crear_supervisor_profile(rol=User.SUPERVISOR,
                                                        user=None)

        self.grupo1 = GrupoFactory(nombre='grupo1')
        self.rol_gerente = Group.objects.get(name=User.GERENTE)
        self.rol_supervisor = Group.objects.get(name=User.SUPERVISOR)
        self.rol_agente = Group.objects.get(name=User.AGENTE)
        self.client.login(username=self.admin.username, password=PASSWORD)

        self.agente = self.crear_agente_profile()
        self.campana = CampanaFactory(estado=Campana.ESTADO_ACTIVA,
                                      type=Campana.TYPE_MANUAL)
        QueueFactory(campana=self.campana)
        QueueMemberFactory.create(member=self.agente,
                                  queue_name=self.campana.queue_campana)
 def setUp(self):
     self.campana_entrante = CampanaFactory(type=Campana.TYPE_ENTRANTE)
     self.queue_entrante = QueueFactory(campana=self.campana_entrante)
예제 #11
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')