Esempio n. 1
0
 def _reciclar_misma_campana(self, campana):
     campana_service = CampanaService()
     campana_service.cambiar_base(campana, [], False, False, "")
     update_campana = "campana_dialer_update"
     campana.estado = Campana.ESTADO_INACTIVA
     campana.save()
     return update_campana
Esempio n. 2
0
    def form_valid(self, form):
        reciclado_calificacion = form.cleaned_data.get(
            'reciclado_calificacion')
        reciclado_no_contactacion = form.cleaned_data.get(
            'reciclado_no_contactacion')
        reciclado_radio = form.cleaned_data.get('reciclado_radio')

        if not (reciclado_calificacion or reciclado_no_contactacion):
            message = '<strong>Operación Errónea!</strong> \
                        Debe seleccionar al menos una opcion para reciclar '

            messages.add_message(
                self.request,
                messages.ERROR,
                message,
            )
            return self.form_invalid(form)

        campana = Campana.objects.get(pk=self.kwargs['pk_campana'])
        reciclador = RecicladorContactosCampanaDIALER()
        bd_contacto_reciclada = reciclador.reciclar(campana,
                                                    reciclado_calificacion,
                                                    reciclado_no_contactacion)
        if reciclado_radio == 'nueva_campaña':
            try:
                # Intenta reciclar la campana con el tipo de reciclado
                # seleccionado.
                campana_reciclada = Campana.objects.reciclar_campana(
                    campana, bd_contacto_reciclada)
            except OmlRecicladoCampanaError:

                message = '<strong>Operación Errónea!</strong>\
                No se pudo reciclar la Campana.'

                messages.add_message(
                    self.request,
                    messages.ERROR,
                    message,
                )
                return self.form_invalid(form)

            return HttpResponseRedirect(
                reverse("crea_campana_dialer_template",
                        kwargs={
                            "pk_campana_template": campana_reciclada.pk,
                            "borrar_template": 1
                        }))
        elif reciclado_radio == 'misma_campana':
            campana.update_basedatoscontactos(bd_contacto_reciclada)
            campana_service = CampanaService()
            campana_service.cambiar_base(campana, [], False, False, "")
            campana.estado = Campana.ESTADO_INACTIVA
            campana.save()
            return HttpResponseRedirect(
                reverse("campana_dialer_update",
                        kwargs={"pk_campana": campana.pk}))
    def form_valid(self, form):
        evitar_duplicados = form.cleaned_data.get('evitar_duplicados')
        evitar_sin_telefono = form.cleaned_data.get('evitar_sin_telefono')
        prefijo_discador = form.cleaned_data.get('prefijo_discador')
        columnas = form.cleaned_data.get('telefonos')
        bd_contacto = form.cleaned_data.get('bd_contacto')
        self.object = self.get_object()
        campana_service = CampanaService()
        # valida de que se pueda cambiar la base de datos que tenga las misma columnas
        # que la actualmente poseee
        error = campana_service.validar_modificacion_bd_contacto(
            self.get_object(), bd_contacto)
        if error:
            return self.form_invalid(form, error=error)
        if self.object.bd_contacto == bd_contacto:
            message = _('Atención!\
                         Ud ha escogido la misma base de datos, corre riesgo de calificar los'
                        ' mismos contactos pisando la calificación previa.')

            messages.add_message(
                self.request,
                messages.SUCCESS,
                message,
            )

        self.object.bd_contacto = bd_contacto
        self.object.save()
        # realiza el cambio de la base de datos en wombat
        campana_service.cambiar_base(self.get_object(), columnas, evitar_duplicados,
                                     evitar_sin_telefono, prefijo_discador)
        message = _('Operación Exitosa!\
                     Se llevó a cabo con éxito el cambio de base de datos.')

        messages.add_message(
            self.request,
            messages.SUCCESS,
            message,
        )
        self.object.estado = Campana.ESTADO_INACTIVA
        self.object.save()

        return redirect(self.get_success_url())