コード例 #1
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)
コード例 #2
0
 def test_calificacion_cliente_creacion_redirecciona_a_otro_formulario_gestion(
         self, post):
     nuevo_formulario = FormularioFactory()
     campo_formulario = FieldFormularioFactory(formulario=nuevo_formulario,
                                               nombre_campo='otro_campo')
     nombre_opcion = NombreCalificacionFactory.create(nombre='otra opcion')
     opcion_calificacion = OpcionCalificacionFactory.create(
         campana=self.campana,
         nombre=nombre_opcion,
         tipo=OpcionCalificacion.GESTION,
         formulario=nuevo_formulario)
     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'] = opcion_calificacion.pk
     response = self.client.post(url, post_data, follow=True)
     self.assertTemplateUsed(
         response, 'formulario/respuesta_formulario_gestion_agente.html')
     self.assertTrue(campo_formulario.nombre_campo in
                     response.context_data['form'].fields)
     self.assertFalse(self.campo_formulario.nombre_campo in
                      response.context_data['form'].fields)
コード例 #3
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)
コード例 #4
0
 def test_no_crear_campos_con_mismos_nombres(self):
     nombre_campo = 'test'
     field = FieldFormularioFactory(nombre_campo=nombre_campo)
     url = reverse('formulario_field', args=[field.formulario.pk])
     post_data = {'formulario': field.formulario.pk,
                  'nombre_campo': nombre_campo,
                  'tipo': FieldFormulario.TIPO_FECHA, 'values_select': '',
                  'is_required': True}
     response = self.client.post(url, post_data, follow=True)
     self.assertContains(response, _('No se pudo llevar a cabo la creacion de campo.'))
     self.assertEqual(response.context_data['form'].errors['nombre_campo'],
                      [_('No se puede crear un campo ya existente')])
コード例 #5
0
    def _crear_datos_entorno(self):

        self.admin = User.objects.filter(is_staff=True).first()

        # crear grupo
        grupo = GrupoFactory()

        # crear agente
        agente = AgenteProfileFactory(grupo=grupo, reported_by=self.admin)
        agente.user.username = self.agent_username
        agente.user.set_password(self.agent_password)
        agente.sip_extension = 1000 + agente.id
        agente.user.is_agente = True
        agente.user.save()
        agente.save()

        agente.user.groups.add(Group.objects.get(name='Agente'))

        asterisk_sip_service = ActivacionAgenteService()
        asterisk_sip_service.activar()

        # crear audio
        ArchivoDeAudioFactory()

        # crear pausa
        PausaFactory()

        # crear formulario (2 campos)
        form = FormularioFactory()
        FieldFormularioFactory.create_batch(2, formulario=form)

        # crear califs.(1 gestion y 1 normal)
        self.success = NombreCalificacionFactory(nombre='Success')
        self.angry = NombreCalificacionFactory(nombre='Hangs up angry')

        # crear BD (3 contactos)
        self.bd_contacto = BaseDatosContactoFactory()

        ContactoFactory.create_batch(3, bd_contacto=self.bd_contacto)

        campana_manual = self._crear_campana_manual()
        campana_entrante = self._crear_campana_entrante()

        activacion_queue_service = ActivacionQueueService()
        activacion_queue_service.activar()

        # crea un troncal y con este una ruta entrante hacia el pbx-emulator
        text_config = ("type=friend\n"
                       "host=pbx-emulator\n"
                       "defaultuser=01177660010\n"
                       "secret=OMLtraining72\n"
                       "qualify=yes\n"
                       "insecure=invite\n"
                       "context=from-pstn\n"
                       "disallow=all\n"
                       "allow=alaw\n")
        register_string = "01177660010:OMLtraining72@pbx-emulator"
        troncal_pbx_emulator = TroncalSIPFactory(
            text_config=text_config,
            register_string=register_string,
            canales_maximos=1000,
            caller_id='')
        sincronizador_troncal = SincronizadorDeConfiguracionTroncalSipEnAsterisk(
        )
        sincronizador_troncal.regenerar_troncales(troncal_pbx_emulator)
        ruta_saliente = RutaSalienteFactory(ring_time=25, dial_options="Tt")
        PatronDeDiscadoFactory(ruta_saliente=ruta_saliente, match_pattern="X.")
        OrdenTroncalFactory(ruta_saliente=ruta_saliente,
                            orden=0,
                            troncal=troncal_pbx_emulator)
        sincronizador_ruta_saliente = SincronizadorDeConfiguracionDeRutaSalienteEnAsterisk(
        )
        sincronizador_ruta_saliente.regenerar_asterisk(ruta_saliente)

        # crear ruta entrante
        self._crear_ruta_entrante(campana_entrante)
        self._asignar_agente_a_campana(agente, campana_manual)
        self._asignar_agente_a_campana(agente, campana_entrante)
コード例 #6
0
    def _crear_datos_entorno(self):

        admin = User.objects.filter(is_staff=True).first()

        # crear grupo
        grupo = GrupoFactory()

        # crear modulo
        modulo = ModuloFactory()

        # crear agente
        agente = AgenteProfileFactory(grupo=grupo, reported_by=admin)
        agente.modulos.add(modulo)
        agente.user.username = self.agent_username
        agente.user.set_password(self.agent_password)
        agente.sip_extension = 1000 + agente.id
        agente.user.is_agente = True
        agente.user.save()
        agente.save()

        asterisk_sip_service = ActivacionAgenteService()
        asterisk_sip_service.activar()

        # crear audio
        ArchivoDeAudioFactory()

        # crear pausa
        PausaFactory()

        # crear formulario (2 campos)
        form = FormularioFactory()
        FieldFormularioFactory.create_batch(2, formulario=form)

        # crear califs.(1 gestion y 1 normal)
        success = NombreCalificacionFactory(nombre='Success')
        angry = NombreCalificacionFactory(nombre='Hangs up angry')

        # crear BD (3 contactos)
        bd_contacto = BaseDatosContactoFactory()

        ContactoFactory.create_batch(3, bd_contacto=bd_contacto)

        # crear campaña manual
        campana_manual = CampanaFactory(
            nombre='test_manual_campaign', bd_contacto=bd_contacto, type=Campana.TYPE_MANUAL,
            reported_by=admin, es_manual=True, estado=Campana.ESTADO_ACTIVA
        )
        # crear Queue para la campaña
        Queue.objects.create(
            campana=campana_manual,
            name=campana_manual.nombre,
            maxlen=5,
            wrapuptime=5,
            servicelevel=30,
            strategy='rrmemory',
            eventmemberstatus=True,
            eventwhencalled=True,
            ringinuse=True,
            setinterfacevar=True,
            weight=0,
            wait=120
        )

        # opciones de calificacion
        OpcionCalificacionFactory(
            nombre=success.nombre, campana=campana_manual, tipo=OpcionCalificacion.GESTION)
        OpcionCalificacionFactory(
            nombre=angry.nombre, campana=campana_manual, tipo=OpcionCalificacion.NO_ACCION)

        activacion_queue_service = ActivacionQueueService()
        activacion_queue_service.activar()

        # crea un troncal y con este una ruta entrante hacia el pbx-emulator
        text_config = ("type=friend\n"
                       "host=pbx-emulator\n"
                       "defaultuser=01177660010\n"
                       "secret=OMLtraining72\n"
                       "qualify=yes\n"
                       "insecure=invite\n"
                       "context=from-pstn\n"
                       "disallow=all\n"
                       "allow=alaw\n")
        register_string = "01177660010:OMLtraining72@pbx-emulator"
        troncal_pbx_emulator = TroncalSIPFactory(
            text_config=text_config, register_string=register_string, canales_maximos=1000,
            caller_id='')
        sincronizador_troncal = SincronizadorDeConfiguracionTroncalSipEnAsterisk()
        sincronizador_troncal.regenerar_troncales(troncal_pbx_emulator)
        ruta_saliente = RutaSalienteFactory(ring_time=25, dial_options="Tt")
        PatronDeDiscadoFactory(ruta_saliente=ruta_saliente, match_pattern="X.")
        OrdenTroncalFactory(ruta_saliente=ruta_saliente, orden=0, troncal=troncal_pbx_emulator)
        sincronizador_ruta_saliente = SincronizadorDeConfiguracionDeRutaSalienteEnAsterisk()
        sincronizador_ruta_saliente.regenerar_rutas_salientes(ruta_saliente)
コード例 #7
0
    def _crear_datos_entorno(self):

        self.admin = User.objects.filter(is_staff=True).first()

        # crear grupo
        grupo = GrupoFactory()

        # crear agente
        agente = AgenteProfileFactory(grupo=grupo, reported_by=self.admin)
        agente.user.username = self.agent_username
        agente.user.set_password(self.agent_password)
        agente.sip_extension = 1000 + agente.user.id
        agente.user.is_agente = True
        agente.user.save()
        agente.save()

        agente.user.groups.add(Group.objects.get(name='Agente'))

        asterisk_sip_service = ActivacionAgenteService()
        asterisk_sip_service.activar()

        # crear audio
        ArchivoDeAudioFactory()

        # crear pausa
        PausaFactory()

        # crear formulario (2 campos)
        form = FormularioFactory()
        FieldFormularioFactory.create_batch(2, formulario=form)

        # crear califs.(1 gestion y 1 normal)
        self.success = NombreCalificacionFactory(nombre='Success')
        self.angry = NombreCalificacionFactory(nombre='Hangs up angry')

        # crear BD (3 contactos)
        self.bd_contacto = BaseDatosContactoFactory()

        ContactoFactory.create_batch(3, bd_contacto=self.bd_contacto)

        campana_manual = self._crear_campana_manual()
        campana_entrante = self._crear_campana_entrante()

        activacion_queue_service = ActivacionQueueService()
        activacion_queue_service.activar()

        # crea un troncal y con este una ruta entrante hacia el pbx-emulator
        text_config = ("type=wizard\n"
                       "transport=trunk-transport\n"
                       "accepts_registrations=no\n"
                       "accepts_auth=no\n"
                       "sends_registrations=yes\n"
                       "sends_auth=yes\n"
                       "endpoint/rtp_symmetric=no\n"
                       "endpoint/force_rport=no\n"
                       "endpoint/rewrite_contact=yes\n"
                       "endpoint/timers=yes\n"
                       "aor/qualify_frequency=60\n"
                       "endpoint/allow=alaw,ulaw\n"
                       "endpoint/dtmf_mode=rfc4733\n"
                       "endpoint/context=from-pstn\n"
                       "remote_hosts=pbxemulator:5060\n"
                       "outbound_auth/username=01177660010\n"
                       "outbound_auth/password=OMLtraining72\n")
        troncal_pbx_emulator = TroncalSIPFactory(text_config=text_config,
                                                 canales_maximos=1000,
                                                 tecnologia=1,
                                                 caller_id='')
        sincronizador_troncal = SincronizadorDeConfiguracionTroncalSipEnAsterisk(
        )
        sincronizador_troncal.regenerar_troncales(troncal_pbx_emulator)
        ruta_saliente = RutaSalienteFactory(ring_time=25, dial_options="Tt")
        PatronDeDiscadoFactory(ruta_saliente=ruta_saliente, match_pattern="X.")
        OrdenTroncalFactory(ruta_saliente=ruta_saliente,
                            orden=0,
                            troncal=troncal_pbx_emulator)
        sincronizador_ruta_saliente = SincronizadorDeConfiguracionDeRutaSalienteEnAsterisk(
        )
        sincronizador_ruta_saliente.regenerar_asterisk(ruta_saliente)

        # crear ruta entrante
        self._crear_ruta_entrante(campana_entrante)
        self._asignar_agente_a_campana(agente, campana_manual)
        self._asignar_agente_a_campana(agente, campana_entrante)