Exemplo n.º 1
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)
Exemplo n.º 2
0
 def test_calificacion_cliente_cambio_a_no_agenda_no_elimina_agendas_personales_existentes(self):
     self.calificacion_cliente.opcion_calificacion = self.opcion_calificacion_agenda
     self.calificacion_cliente.save()
     AgendaContactoFactory(
         agente=self.agente_profile, contacto=self.contacto, campana=self.campana,
         tipo_agenda=AgendaContacto.TYPE_GLOBAL)
     self.assertTrue(AgendaContacto.objects.exists())
     self.calificacion_cliente.opcion_calificacion = self.opcion_calificacion_no_accion
     self.calificacion_cliente.save()
     self.assertTrue(AgendaContacto.objects.exists())
Exemplo n.º 3
0
 def test_calificacion_agenda_modificacion_redirecciona_update_agenda(self, post):
     self.calificacion_cliente.opcion_calificacion = self.opcion_calificacion_agenda
     self.calificacion_cliente.agendado = False
     self.calificacion_cliente.save()
     AgendaContactoFactory(
         agente=self.agente_profile, contacto=self.contacto, campana=self.campana)
     url = reverse('calificacion_formulario_update_or_create',
                   kwargs={'pk_campana': self.campana.pk,
                           'pk_contacto': self.contacto.pk})
     post_data = self._obtener_post_data_calificacion_cliente()
     post_data['opcion_calificacion'] = self.opcion_calificacion_agenda.pk
     response = self.client.post(url, post_data, follow=True)
     self.assertTemplateUsed(response, 'agenda_contacto/update_agenda_contacto.html')
Exemplo n.º 4
0
class CalificacionTests(OMLBaseTest):
    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)

    def test_filtrar_por_agente(self):
        url = reverse('agenda_contactos_por_campana',
                      kwargs={'pk_campana': self.campana.id})
        response = self.client.get(url, follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.redirect_chain, [])

        self.assertContains(response, self.agente_1.user.get_full_name())
        self.assertContains(response, self.agente_2.user.get_full_name())
        self.assertNotContains(response, self.agente_3.user.get_full_name())

        self.assertContains(response, self.contacto_1.telefono)
        self.assertContains(response, self.contacto_2.telefono)

        fecha = self.agenda_1.fecha.strftime('%d/%m/%Y - %d/%m/%Y')
        response = self.client.post(url,
                                    data={
                                        'fecha': fecha,
                                        'usuario': self.agente_1.user.id
                                    })
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, self.contacto_1.telefono)
        self.assertNotContains(response, self.contacto_2.telefono)

    def test_reasignar_agente(self):
        url = reverse('api_reasignar_agenda_contacto')
        response = self.client.post(url,
                                    data={
                                        'agenda_id': self.agenda_1.id,
                                        'agent_id': self.agente_2.id
                                    })
        self.assertEqual(response.status_code, 200)
        response_json = response.json()
        self.assertEqual(response_json['status'], 'OK')
        self.assertEqual(response_json['agenda_id'], str(self.agenda_1.id))
        self.assertEqual(response_json['agent_name'],
                         self.agente_2.user.get_full_name())
        self.agenda_1.refresh_from_db()
        self.assertEqual(self.agenda_1.agente, self.agente_2)
        self.calificacion_1.refresh_from_db()
        self.assertEqual(self.calificacion_1.agente, self.agente_2)
Exemplo n.º 5
0
 def crear_agenda(tipo_agenda, campana, agente):
     AgendaContactoFactory(tipo_agenda=tipo_agenda, campana=campana, agente=agente)