コード例 #1
0
    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 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.agente_profile = AgenteProfileFactory.create(user=self.usuario_admin_supervisor)

        self.nombre_calificacion = NombreCalificacionFactory.create(nombre=self.CALIFICACION_NOMBRE)
        self.nombre_calificacion_gestion = NombreCalificacionFactory.create(nombre=self.GESTION)

        self.campana_activa = CampanaFactory.create(
            estado=Campana.ESTADO_ACTIVA, type=Campana.TYPE_PREVIEW)

        self.contacto_calificado_gestion = ContactoFactory(
            bd_contacto=self.campana_activa.bd_contacto)
        self.contacto_calificado_no_accion = ContactoFactory(
            bd_contacto=self.campana_activa.bd_contacto)
        self.contacto_no_atendido = ContactoFactory(bd_contacto=self.campana_activa.bd_contacto)
        self.contacto_no_calificado = ContactoFactory(bd_contacto=self.campana_activa.bd_contacto)

        self.opcion_calificacion_gestion = OpcionCalificacionFactory.create(
            campana=self.campana_activa, nombre=self.nombre_calificacion_gestion.nombre,
            tipo=OpcionCalificacion.GESTION)
        self.opcion_calificacion_noaccion = OpcionCalificacionFactory.create(
            campana=self.campana_activa, nombre=self.nombre_calificacion.nombre,
            tipo=OpcionCalificacion.NO_ACCION)

        self.telefono1 = self.contacto_calificado_gestion.telefono
        self.telefono2 = self.contacto_calificado_no_accion.telefono
        self.telefono3 = self.contacto_no_atendido.telefono
        self.telefono4 = self.contacto_no_calificado.telefono

        self.generador_log_llamadas = GeneradorDeLlamadaLogs()
        self.generador_log_llamadas.generar_log(
            self.campana_activa, False, 'COMPLETEAGENT', self.telefono1, agente=self.agente_profile,
            contacto=self.contacto_calificado_gestion, duracion_llamada=self.DURACION_LLAMADA,
            callid=1)
        self.generador_log_llamadas.generar_log(
            self.campana_activa, False, 'COMPLETEAGENT', self.telefono2, agente=self.agente_profile,
            contacto=self.contacto_calificado_no_accion, duracion_llamada=self.DURACION_LLAMADA,
            callid=2)
        self.generador_log_llamadas.generar_log(
            self.campana_activa, True, 'NOANSWER', self.telefono3, agente=self.agente_profile,
            contacto=self.contacto_no_atendido, callid=3)
        self.generador_log_llamadas.generar_log(
            self.campana_activa, True, 'COMPLETEOUTNUM', self.telefono4, agente=self.agente_profile,
            contacto=self.contacto_no_calificado, duracion_llamada=0, callid=4)
        callid_gestion = LlamadaLog.objects.get(
            contacto_id=self.contacto_calificado_gestion.pk, event='COMPLETEAGENT').callid
        callid_no_accion = LlamadaLog.objects.get(
            contacto_id=self.contacto_calificado_no_accion.pk, event='COMPLETEAGENT').callid
        self.calif_gestion = CalificacionClienteFactory.create(
            opcion_calificacion=self.opcion_calificacion_gestion, agente=self.agente_profile,
            contacto=self.contacto_calificado_gestion, callid=callid_gestion)
        self.calif_no_accion = CalificacionClienteFactory.create(
            opcion_calificacion=self.opcion_calificacion_noaccion, agente=self.agente_profile,
            contacto=self.contacto_calificado_no_accion, callid=callid_no_accion)
        CalificacionCliente.history.all().update(history_change_reason='calificacion')

        self.client.login(username=self.usuario_admin_supervisor.username, password=self.PWD)
コード例 #3
0
 def test_vista_contactos_telefono_repetidos_devuelve_informacion_correcta(self):
     campana_dialer = self.campana_dialer
     telefono = '3511234567'
     n_contactos_repetidos = 3
     ContactoFactory.create_batch(
         n_contactos_repetidos, bd_contacto=campana_dialer.bd_contacto, telefono=telefono)
     url = reverse(
         'campana_contactos_telefono_repetido', args=[campana_dialer.pk, telefono, 'false'])
     response = self.client.get(url, follow=True)
     self.assertEqual(campana_dialer.bd_contacto.contactos.count(), n_contactos_repetidos + 1)
     self.assertEqual(response.context_data['contactos'].count(), n_contactos_repetidos)
コード例 #4
0
 def setUp(self):
     self.agente_1 = self.crear_agente_profile()
     self.agente_2 = self.crear_agente_profile()
     self.supervisor = self.crear_supervisor_profile()
     self.campana_preview = CampanaFactory.create(
         type=Campana.TYPE_PREVIEW, tiempo_desconexion=2, estado=Campana.ESTADO_ACTIVA)
     QueueFactory.create(campana=self.campana_preview)
     self._hacer_miembro(self.agente_1, self.campana_preview)
     self._hacer_miembro(self.agente_2, self.campana_preview)
     self.contacto_1 = ContactoFactory.create(bd_contacto=self.campana_preview.bd_contacto)
     self.contacto_2 = ContactoFactory.create(bd_contacto=self.campana_preview.bd_contacto)
     self.campana_preview.establecer_valores_iniciales_agente_contacto(False, False)
     self.client.login(username=self.agente_1.user.username, password=PASSWORD)
コード例 #5
0
ファイル: tests_utiles.py プロジェクト: aybaker/omnicontact
    def setUp(self):
        super(GeneradorDeLlamadaLogsTests, self).setUp()
        self.manual = CampanaFactory.create(type=Campana.TYPE_MANUAL)
        self.usr_agente1 = UserFactory.create(username='******',
                                              is_agente=True)
        self.agente1 = AgenteProfileFactory.create(user=self.usr_agente1)

        self.dialer = CampanaFactory.create(type=Campana.TYPE_DIALER)
        self.contacto_d = ContactoFactory(bd_contacto=self.dialer.bd_contacto)

        self.entrante = CampanaFactory.create(type=Campana.TYPE_ENTRANTE)

        self.preview = CampanaFactory.create(type=Campana.TYPE_PREVIEW)
        self.contacto_p = ContactoFactory(bd_contacto=self.preview.bd_contacto)
コード例 #6
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)
コード例 #7
0
 def _agregar_campana_y_contacto(self, agente_profile, tipo_campana):
     campana = CampanaFactory.create(type=tipo_campana,
                                     tiempo_desconexion=3,
                                     estado=Campana.ESTADO_ACTIVA)
     self._hacer_miembro(agente_profile, campana)
     contacto = ContactoFactory.create(bd_contacto=campana.bd_contacto)
     return campana, contacto
コード例 #8
0
ファイル: tests.py プロジェクト: PRGskullbulks/ominicontacto
 def test_api_crea_nueva_calificacion_con_nuevo_contacto_con_valores_metadata(
         self):
     token_agente = Token.objects.get(user=self.agente_profile.user).key
     client = APIClient()
     client.credentials(HTTP_AUTHORIZATION='Bearer ' + token_agente)
     observaciones = 'calificacion externa'
     phone = '1232343523'
     id_contacto_externo = 'contacto_externo_1'
     url = reverse('api_disposition_new_contact-list')
     post_data = {
         'phone': phone,
         'idExternalContact': id_contacto_externo,
         'idDispositionOption': self.opcion_calificacion.pk,
         'comments': observaciones,
     }
     contacto_a_crear = ContactoFactory.build(
         bd_contacto=self.campana_activa.bd_contacto)
     post_data.update(contacto_a_crear.obtener_datos())
     post_data.pop('telefono')
     calificaciones_count = CalificacionCliente.objects.count()
     contactos_count = Contacto.objects.count()
     client.post(url, post_data)
     self.assertEqual(CalificacionCliente.objects.count(),
                      calificaciones_count + 1)
     self.assertEqual(Contacto.objects.count(), contactos_count + 1)
     self.assertTrue(
         Contacto.objects.filter(datos=contacto_a_crear.datos).exists())
コード例 #9
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)
コード例 #10
0
    def setUp(self):
        super(ReglaIncidenciaPorCalificacionTests, self).setUp()

        self.admin = self.crear_administrador()
        self.client.login(username=self.admin.username, password=PASSWORD)

        self.formulario = FormularioFactory()
        self.campo_formulario = FieldFormularioFactory(
            formulario=self.formulario)
        self.campana = CampanaFactory.create(type=Campana.TYPE_DIALER)
        self.nombre_opcion_1 = NombreCalificacionFactory.create()
        self.opcion_calificacion_1 = OpcionCalificacionFactory.create(
            campana=self.campana,
            nombre=self.nombre_opcion_1.nombre,
            tipo=OpcionCalificacion.GESTION,
            formulario=self.formulario)
        self.campana.opciones_calificacion.add(self.opcion_calificacion_1)
        self.nombre_opcion_2 = NombreCalificacionFactory.create()
        self.opcion_calificacion_2 = OpcionCalificacionFactory.create(
            campana=self.campana,
            nombre=self.nombre_opcion_2.nombre,
            tipo=OpcionCalificacion.NO_ACCION)
        self.campana.opciones_calificacion.add(self.opcion_calificacion_2)
        self.contacto = ContactoFactory.create()
        self.campana.bd_contacto.contactos.add(self.contacto)

        self.campana_extra = CampanaFactory.create(type=Campana.TYPE_DIALER)
        self.nombre_opcion_extra = NombreCalificacionFactory.create()
        self.opcion_calificacion_extra = OpcionCalificacionFactory.create(
            campana=self.campana_extra,
            nombre=self.nombre_opcion_extra.nombre,
            tipo=OpcionCalificacion.NO_ACCION)
        self.campana_extra.opciones_calificacion.add(
            self.opcion_calificacion_extra)
コード例 #11
0
 def _obtener_datos_post_adicionar_contacto(self, campana):
     contacto_nuevo = ContactoFactory.build(bd_contacto=campana.bd_contacto)
     post_data = {'telefono': contacto_nuevo.telefono}
     columnas = json.loads(contacto_nuevo.bd_contacto.metadata)
     datos_contacto = json.loads(contacto_nuevo.datos)
     for columna, valor in zip(columnas['nombres_de_columnas'][1:], datos_contacto):
         post_data[columna] = valor
     return post_data
コード例 #12
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
コード例 #13
0
 def test_modificacion_contacto_desde_lista_de_contactos_actualiza_agente_en_contacto(self):
     contacto = ContactoFactory()
     agente_en_contacto = AgenteEnContactoFactory(
         contacto_id=contacto.pk, campana_id=self.campana_preview.id,
         telefono_contacto=contacto.telefono)
     telefono_nuevo = contacto.telefono + '111'
     self.assertEqual(agente_en_contacto.telefono_contacto, contacto.telefono)
     url = reverse('contacto_update', args=[self.campana_preview.pk, contacto.pk])
     post_data = {
         'telefono': telefono_nuevo,
         'datos': str(["xxxxxx", "yyyyy", "CORDOBA", "21000003"]),
     }
     self.client.post(url, post_data)
     contacto.refresh_from_db()
     self.assertEqual(contacto.telefono, str(telefono_nuevo))
     agente_en_contacto.refresh_from_db()
     self.assertEqual(agente_en_contacto.telefono_contacto, str(telefono_nuevo))
コード例 #14
0
 def test_llamada_manual_telefono_con_n_contactos_redirecciona_vista_escoger_contacto(self):
     contacto = self.contacto
     ContactoFactory(bd_contacto=self.campana.bd_contacto, telefono=contacto.telefono)
     telefono = contacto.telefono
     url = reverse('calificar_por_telefono',
                   kwargs={'pk_campana': self.campana.pk,
                           'telefono': telefono})
     response = self.client.get(url, follow=True)
     self.assertTemplateUsed(response, 'agente/contactos_telefonos_repetidos.html')
コード例 #15
0
    def no_puede_calificar_si_no_esta_asignado(self):
        campana2 = CampanaFactory.create()
        contacto2 = ContactoFactory.create(bd_contacto=campana2.bd_contacto)

        url = reverse('calificacion_formulario_update_or_create',
                      kwargs={'pk_campana': campana2.pk,
                              'pk_contacto': contacto2.pk})
        response = self.client.get(url, follow=True)
        self.assertContains(response, _("No tiene permiso para calificar llamadas de esa campaña."))
コード例 #16
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)
コード例 #17
0
ファイル: tests.py プロジェクト: dwtcourses/ominicontacto
 def test_api_vista_contactos_campanas_es_accessible_usando_token_agente(self):
     ContactoFactory(bd_contacto=self.campana_activa.bd_contacto)
     token_agente = Token.objects.get(user=self.agente_profile.user).key
     client = APIClient()
     client.credentials(HTTP_AUTHORIZATION='Bearer ' + token_agente)
     url = reverse('api_contactos_campana', args=(self.campana_activa.pk,))
     response = client.get(url, {'search[value]': 1, 'start': 1, 'length': 10, 'draw': 10},
                           format='json')
     self.assertEqual(response.status_code, 200)
     self.assertEqual(response.data['recordsTotal'], 1)
コード例 #18
0
ファイル: tests.py プロジェクト: dwtcourses/ominicontacto
 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)
コード例 #19
0
    def _setUp_campana_dialer(self):
        self.campana_dialer = CampanaFactory.create(type=Campana.TYPE_DIALER)
        self.campana_dialer.opciones_calificacion.add(self.opcion_calificacion_gestion)
        self.campana_dialer.opciones_calificacion.add(self.opcion_calificacion_agenda)

        self.contacto_dialer = ContactoFactory.create()
        self.campana_dialer.bd_contacto.contactos.add(self.contacto_dialer)

        self.queue_dialer = QueueFactory.create(campana=self.campana_dialer)

        QueueMemberFactory.create(member=self.agente_profile, queue_name=self.queue_dialer)
コード例 #20
0
    def test_campos_bloqueados_no_se_modifican(self):
        self.campana_preview.campos_bd_no_editables = json.dumps(['telefono'])
        self.campana_preview.save()
        contacto = ContactoFactory()
        agente_en_contacto = AgenteEnContactoFactory(
            contacto_id=contacto.pk, campana_id=self.campana_preview.id,
            telefono_contacto=contacto.telefono)

        telefono_viejo = contacto.telefono
        telefono_nuevo = contacto.telefono + '111'
        url = reverse('contacto_update', args=[self.campana_preview.pk, contacto.pk])
        post_data = {
            'telefono': telefono_nuevo,
            'datos': str(["xxxxxx", "yyyyy", "CORDOBA", "21000003"]),
            'bd_contacto': contacto.bd_contacto.pk
        }
        self.client.post(url, post_data)
        contacto.refresh_from_db()
        agente_en_contacto.refresh_from_db()
        self.assertEqual(contacto.telefono, telefono_viejo)
        self.assertEqual(agente_en_contacto.telefono_contacto, str(telefono_viejo))
    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)
コード例 #22
0
ファイル: tests.py プロジェクト: dwtcourses/ominicontacto
 def test_api_adiciona_calificacion_ids_internos(self):
     token_agente = Token.objects.get(user=self.agente_profile.user).key
     client = APIClient()
     client.credentials(HTTP_AUTHORIZATION='Bearer ' + token_agente)
     observaciones = 'calificacion externa'
     contacto = ContactoFactory(bd_contacto=self.campana_activa.bd_contacto)
     url = reverse('api_disposition-list')
     post_data = {
         'idContact': contacto.pk,
         'idDispositionOption': self.opcion_calificacion.pk,
         'comments': observaciones
     }
     calificaciones_count = CalificacionCliente.objects.count()
     client.post(url, post_data)
     self.assertEqual(CalificacionCliente.objects.count(), calificaciones_count + 1)
コード例 #23
0
    def setUp(self):
        super(BaseReporteDeLlamadasTests, self).setUp()
        self.hasta = fecha_hora_local(now())
        self.durante = fecha_hora_local(now() - timedelta(days=1))
        self.desde = datetime_hora_minima_dia(self.hasta) - timedelta(days=1)

        self.supervisor = SupervisorProfileFactory(is_administrador=True)

        self.agente1 = AgenteProfileFactory()
        self.agente2 = AgenteProfileFactory()
        self.agente3 = AgenteProfileFactory()

        self.manual = CampanaFactory.create(type=Campana.TYPE_MANUAL,
                                            nombre='camp-manual-1',
                                            estado=Campana.ESTADO_ACTIVA)

        self.dialer = CampanaFactory.create(type=Campana.TYPE_DIALER,
                                            nombre='camp-dialer-1',
                                            estado=Campana.ESTADO_ACTIVA)
        self.contacto_d = ContactoFactory(bd_contacto=self.dialer.bd_contacto)

        self.entrante = CampanaFactory.create(type=Campana.TYPE_ENTRANTE,
                                              nombre='camp-entrante-1',
                                              estado=Campana.ESTADO_ACTIVA)

        self.preview = CampanaFactory.create(type=Campana.TYPE_PREVIEW,
                                             nombre='camp-preview-1',
                                             estado=Campana.ESTADO_ACTIVA)
        self.contacto_p = ContactoFactory(bd_contacto=self.preview.bd_contacto)

        self.campanas = [
            self.manual,
            self.dialer,
            self.entrante,
            self.preview,
        ]
コード例 #24
0
 def setUp(self, *args, **kwargs):
     self.agente = self.crear_agente_profile()
     self.sitio_externo = SitioExternoFactory()
     self.campana = CampanaFactory(sitio_externo=self.sitio_externo,
                                   tipo_interaccion=2)
     self.contacto = ContactoFactory()
     self.call_data = {
         'call_id': '1234',
         'agent_id': str(self.agente.id),
         'telefono': '351351351',
         'id_contacto': str(self.contacto.id),
         'rec_filename': 'rec_filename',
         'call_wait_duration': '44',
     }
     super(TestsSitioExterno, self).setUp(*args, **kwargs)
コード例 #25
0
ファイル: tests.py プロジェクト: dwtcourses/ominicontacto
 def test_api_adiciona_calificacion_ids_internos_no_se_accede_credenciales_no_agente(self):
     observaciones = 'calificacion externa'
     contacto = ContactoFactory(bd_contacto=self.campana_activa.bd_contacto)
     url = reverse('api_disposition-list')
     post_data = {
         'idContact': contacto.pk,
         'idAgent': self.agente_profile.pk,
         'idDispositionOption': self.opcion_calificacion.pk,
         'comments': observaciones
     }
     token_supervisor = Token.objects.get(user=self.supervisor_admin.user).key
     client = APIClient()
     client.credentials(HTTP_AUTHORIZATION='Bearer ' + token_supervisor)
     url = reverse('api_disposition-list')
     response = client.post(url, post_data)
     self.assertEqual(response.status_code, 403)
コード例 #26
0
ファイル: tests.py プロジェクト: dwtcourses/ominicontacto
 def test_api_adiciona_calificacion_ids_externos(self):
     self.client.login(username=self.agente_profile.user.username, password=PASSWORD)
     observaciones = 'calificacion externa'
     id_contacto_externo = 'contacto_externo_1'
     AgenteEnSistemaExternoFactory(
         agente=self.agente_profile, sistema_externo=self.sistema_externo)
     ContactoFactory(bd_contacto=self.campana_activa.bd_contacto,
                     id_externo=id_contacto_externo)
     url = reverse('api_disposition-list')
     post_data = {
         'idExternalSystem': self.sistema_externo.pk,
         'idContact': id_contacto_externo,
         'idDispositionOption': self.opcion_calificacion.pk,
         'comments': observaciones
     }
     calificaciones_count = CalificacionCliente.objects.count()
     self.client.post(url, post_data)
     self.assertEqual(CalificacionCliente.objects.count(), calificaciones_count + 1)
コード例 #27
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())
コード例 #28
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)
コード例 #29
0
ファイル: tests.py プロジェクト: dwtcourses/ominicontacto
 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')
コード例 #30
0
    def setUp(self):
        super(LimitarAgendasPersonalesTests, self).setUp()

        self.grupo1 = GrupoFactory(nombre='grupo1', limitar_agendas_personales=True,
                                   cantidad_agendas_personales=1)
        self.grupo2 = GrupoFactory(nombre='grupo2', limitar_agendas_personales=True,
                                   cantidad_agendas_personales=0)
        self.grupo3 = GrupoFactory(nombre='grupo3', limitar_agendas_personales=False,
                                   cantidad_agendas_personales=0)

        self.agente_1 = self.crear_agente_profile()
        self.agente_1.grupo = self.grupo1
        self.agente_1.save()

        self.agente_2 = self.crear_agente_profile()
        self.agente_2.grupo = self.grupo2
        self.agente_2.save()

        self.agente_3 = self.crear_agente_profile()
        self.agente_3.grupo = self.grupo3
        self.agente_3.save()

        self.contacto = ContactoFactory.create()

        self.campana_preview = CampanaFactory.create(estado=Campana.ESTADO_ACTIVA,
                                                     type=Campana.TYPE_PREVIEW)
        self.campana_dialer = CampanaFactory.create(estado=Campana.ESTADO_ACTIVA,
                                                    type=Campana.TYPE_DIALER)

        self.nombre_calificacion_agenda = NombreCalificacion.objects.get(
            nombre=settings.CALIFICACION_REAGENDA)

        self.opcion_calificacion_agenda_campana_preview = OpcionCalificacionFactory.create(
            campana=self.campana_preview, nombre=self.nombre_calificacion_agenda.nombre,
            tipo=OpcionCalificacion.AGENDA)
        self.opcion_calificacion_agenda_campana_dialer = OpcionCalificacionFactory.create(
            campana=self.campana_dialer, nombre=self.nombre_calificacion_agenda.nombre,
            tipo=OpcionCalificacion.AGENDA)