Example #1
0
    def _autenticar(self, usuario, clave):
        """ Autentica este cliente contra el servidor.
            El parámetro datos es el string de autenticación.
        """

        respuesta = {}
        user = get_usuario(usuario)

        status = "ER"
        if user is not None:
            if user.clave == clave:
                status = "OK"
                mensaje = "Bienvenido %s al sistema de transmisi\u00f3n.\n" \
                          "Ingrese los certificados de mesa a transmitir en" \
                          " la impresora." % user.nombre
                mesas = get_estado_mesas(user.ubicacion, self._acta_desglosada)

                # Genero un diccionario de estados para poder realizar luego
                # la validación
                _, self._estados = estados_mesas_dict(mesas)

                respuesta["estado_mesas"] = mesas
            else:
                mensaje = "La clave ingresada para el usuario %s es " \
                          "incorrecta" % user.nombre
        else:
            mensaje = 'Usuario no Autenticado'

        respuesta["status"] = status
        respuesta["mensaje"] = mensaje

        simular_delay_conexion()
        return dumps(respuesta)
Example #2
0
    def _confirmar_acta(self, datos_tag):
        """ Llama a la función del servidor para confirmar el acta """
        respuesta = {}
        status = "ER"
        datos_tag = b64decode(datos_tag)
        recuento = generar_recuento(datos_tag)
        if recuento is not None:
            codigo = guardar_recuento(self._estados, recuento.mesa.codigo,
                                      recuento.cod_categoria,
                                      recuento.mesa.cod_datos)
            mesa = recuento.mesa
            mesa_str = "Mesa %s" % mesa.numero
            # El acta fue ingresada previamente y está en espera de confirmar
            if codigo in (2, 5):
                status = "OK"
                mensaje = "Recuento de la %s recibido y " \
                          "procesado correctamente" % mesa_str
                respuesta["acta_definitiva"] = "SI"
                # Revisar los otros parámetros: url, filename, alerta
                self._estados[recuento.mesa.codigo]['estado'] = 'OK'
                respuesta['mesa'] = mesa_str
                respuesta['id_ubicacion'] = recuento.mesa.codigo
                if self._acta_desglosada:
                    respuesta["cod_categoria"] = recuento.cod_categoria
            elif codigo == 6:
                mensaje = "El acta de la %s ya est\u00e1 confirmada y" \
                          " emitida." % mesa_str
        else:
            mensaje = "Recuento no válido."

        respuesta["status"] = status
        respuesta["mensaje"] = mensaje

        simular_delay_conexion()
        return dumps(respuesta)
Example #3
0
    def _confirmar_acta(self, datos_tag):
        """ Llama a la función del servidor para confirmar el acta """
        respuesta = {}
        status = "ER"
        datos_tag = b64decode(datos_tag)
        recuento = generar_recuento(datos_tag)
        if recuento is not None:
            codigo = guardar_recuento(self._estados, recuento.mesa.codigo,
                                      recuento.cod_categoria,
                                      recuento.mesa.cod_datos)
            mesa = recuento.mesa
            mesa_str = "Mesa %s" % mesa.numero
            # El acta fue ingresada previamente y está en espera de confirmar
            if codigo in (2, 5):
                status = "OK"
                mensaje = "Recuento de la %s recibido y " \
                          "procesado correctamente" % mesa_str
                respuesta["acta_definitiva"] = "SI"
                # Revisar los otros parámetros: url, filename, alerta
                self._estados[recuento.mesa.codigo]['estado'] = 'OK'
                respuesta['mesa'] = mesa_str
                respuesta['id_ubicacion'] = recuento.mesa.codigo
                if self._acta_desglosada:
                    respuesta["cod_categoria"] = recuento.cod_categoria
            elif codigo == 6:
                mensaje = "El acta de la %s ya est\u00e1 confirmada y" \
                          " emitida." % mesa_str
        else:
            mensaje = "Recuento no válido."

        respuesta["status"] = status
        respuesta["mensaje"] = mensaje

        simular_delay_conexion()
        return dumps(respuesta)
Example #4
0
    def _autenticar(self, usuario, clave):
        """ Autentica este cliente contra el servidor.
            El parámetro datos es el string de autenticación.
        """

        respuesta = {}
        user = get_usuario(usuario)

        status = "ER"
        if user is not None:
            if user.clave == clave:
                status = "OK"
                mensaje = "Bienvenido %s al sistema de transmisi\u00f3n.\n" \
                          "Ingrese los certificados de mesa a transmitir en" \
                          " la impresora." % user.nombre
                mesas = get_estado_mesas(user.ubicacion, self._acta_desglosada)

                # Genero un diccionario de estados para poder realizar luego
                # la validación
                _, self._estados = estados_mesas_dict(mesas)

                respuesta["estado_mesas"] = mesas
            else:
                mensaje = "La clave ingresada para el usuario %s es " \
                          "incorrecta" % user.nombre
        else:
            mensaje = 'Usuario no Autenticado'

        respuesta["status"] = status
        respuesta["mensaje"] = mensaje

        simular_delay_conexion()
        return dumps(respuesta)
Example #5
0
    def _obtener_datos_servidor(self, db_version):
        """ Descarga los datos actalizados del servidor y lo almacena en el
            destino local
        """
        respuesta = {"status": "OK", "archivo": "", "version": db_version}

        simular_delay_conexion()
        return dumps(respuesta)
Example #6
0
    def _obtener_datos_servidor(self, db_version):
        """ Descarga los datos actalizados del servidor y lo almacena en el
            destino local
        """
        respuesta = {"status": "OK",
                     "archivo": "",
                     "version": db_version}

        simular_delay_conexion()
        return dumps(respuesta)
Example #7
0
    def _test_conexion(self):
        """ Conecta con el servidor, intercambia algo de tráfico de prueba y
        devuelve True en caso de éxito o False en caso contrario.
        respuesta_servidor {"status": "OK", "tags": ["MUM="]}

        """
        respuesta = {"status": "OK", "tags": [b64encode(TOKEN)]}

        simular_delay_conexion()
        return dumps(respuesta)
Example #8
0
    def _test_conexion(self):
        """ Conecta con el servidor, intercambia algo de tráfico de prueba y
        devuelve True en caso de éxito o False en caso contrario.
        respuesta_servidor {"status": "OK", "tags": ["MUM="]}

        """
        respuesta = {"status": "OK",
                     "tags": [b64encode(TOKEN)]}

        simular_delay_conexion()
        return dumps(respuesta)
Example #9
0
    def _enviar_recuento(self, datos_tag):
        """ Envía un recuento al servidor """
        respuesta = {}
        status = "ER"
        mensaje = ""
        datos_tag = b64decode(datos_tag)
        recuento = generar_recuento(datos_tag)
        if recuento is not None:
            codigo = guardar_recuento(self._estados, recuento.mesa.codigo,
                                      recuento.cod_categoria,
                                      recuento.mesa.cod_datos)
            respuesta['id_ubicacion'] = recuento.mesa.codigo
            mesa_str = "Mesa %s" % recuento.mesa.numero
            if codigo == 0:
                mensaje = "La %s no esta autorizada para su Usuario. Por " \
                          "favor consulte con Operaciones" % mesa_str
            elif codigo == 1:
                status = "OK"
                mensaje = "Recuento de la %s recibido y procesado " \
                          "correctamente.\nSe muestra el Parte " \
                          "Electr\u00f3nico BORRADOR.\nPara confirmarlo " \
                          "definitivamente, pase el Recuento por el lector " \
                          "nuevamente.\nSi ha ingresado el papel en la " \
                          "impresora, acerque su credencial al lector para " \
                          "expulsarlo." % mesa_str
                respuesta["acta_borrador"] = "SI"
                respuesta["img_acta"] = generar_acta_svg(
                    recuento,
                    categorias=get_categorias(recuento.mesa.cod_datos,
                                              self._acta_desglosada))
                # Revisar los otros parámetros: url, filename, alerta
                self._estados[recuento.mesa.codigo]['estado'] = 'En Proceso'
                self.__reset_estado_cargos(recuento.mesa.codigo)
            elif codigo == 2:
                status = "OK"
                mensaje = "Por favor, Confirme la \u00faltima acta en " \
                          "borrador de la %s.\n\u00bfes Definitiva?" % mesa_str
                respuesta["mesa"] = mesa_str
                respuesta["confirma_definitiva"] = "SI"
                respuesta["img_acta"] = generar_acta_svg(
                    recuento,
                    categorias=get_categorias(recuento.mesa.codigo,
                                              self._acta_desglosada))
            elif codigo == 3:
                status = "OK"
                categorias = get_categorias(recuento.mesa.cod_datos,
                                            self._acta_desglosada)
                desc_categoria = [c[1] for c in categorias if
                                  c[0] == recuento.cod_categoria]
                mensaje = "Recuento de la <i>%s</i> para el cargo <i>%s</i>" \
                          " recibido y procesado correctamente.\n" % \
                          desc_categoria[0]
                self._estados[recuento.mesa.codigo]['cargos'] \
                    [recuento.cod_categoria]['estado'] = 1
                self._estados[recuento.mesa.codigo]['cargos'] \
                    [recuento.cod_categoria]['recuento'] = recuento.a_tag()
                respuesta["cod_categoria"] = recuento.cod_categoria
            elif codigo == 4:
                status = "OK"
                mensaje = "Recuento de la %s recibido y procesado " \
                          "correctamente.\nSe muestra el Parte " \
                          "Electr\u00f3nico BORRADOR.\nPara confirmarlo " \
                          "definitivamente, pase el Recuento por el lector " \
                          "nuevamente.\nSi ha ingresado el papel en la " \
                          "impresora, acerque su credencial al lector para " \
                          "expulsarlo." % mesa_str
                respuesta["acta_borrador"] = "SI"

                self._estados[recuento.mesa.codigo]['cargos'] \
                    [recuento.cod_categoria]['estado'] = 1
                self._estados[recuento.mesa.codigo]['cargos'] \
                    [recuento.cod_categoria]['recuento'] = recuento.a_tag()

                actas = [c['recuento'] for c in
                         self._estados[recuento.mesa.codigo]['cargos'].values()]
                categorias = get_categorias(recuento.mesa.cod_datos,
                                            self._acta_desglosada)
                recuento_total = generar_recuento_total(actas)
                respuesta["img_acta"] = generar_acta_svg(
                    recuento_total, categorias=categorias,
                    acta_desglosada=self._acta_desglosada)
                respuesta["cod_categoria"] = recuento.cod_categoria

                self._estados[recuento.mesa.codigo]['estado'] = 'En Proceso'
                self.__reset_estado_cargos(recuento.mesa.codigo)
            elif codigo == 5:
                status = "OK"
                mensaje = "Por favor, Confirme la \u00faltima acta en " \
                          "borrador de la %s.\n\u00bfes Definitiva?" % mesa_str
                respuesta["mesa"] = mesa_str
                respuesta["confirma_definitiva"] = "SI"

                self._estados[recuento.mesa.codigo]['cargos'] \
                    [recuento.cod_categoria]['estado'] = 1
                self._estados[recuento.mesa.codigo]['cargos'] \
                    [recuento.cod_categoria]['recuento'] = recuento.a_tag()

                actas = [c['recuento'] for c in
                         self._estados[recuento.mesa.codigo]['cargos'].values()]
                categorias = get_categorias(recuento.mesa.cod_datos,
                                            self._acta_desglosada)
                recuento_total = generar_recuento_total(actas)
                respuesta["img_acta"] = generar_acta_svg(
                    recuento_total, categorias=categorias,
                    acta_desglosada=self._acta_desglosada)
                respuesta["cod_categoria"] = recuento.cod_categoria
            elif codigo == 6:
                mensaje = "El acta de la %s ya est\u00e1 confirmada y" \
                          " emitida." % mesa_str
        else:
            mensaje = "Recuento no válido."

        respuesta["status"] = status
        respuesta["mensaje"] = mensaje

        simular_delay_conexion()
        return dumps(respuesta)
Example #10
0
    def _enviar_recuento(self, datos_tag):
        """ Envía un recuento al servidor """
        respuesta = {}
        status = "ER"
        mensaje = ""
        datos_tag = b64decode(datos_tag)
        recuento = generar_recuento(datos_tag)
        if recuento is not None:
            codigo = guardar_recuento(self._estados, recuento.mesa.codigo,
                                      recuento.cod_categoria,
                                      recuento.mesa.cod_datos)
            respuesta['id_ubicacion'] = recuento.mesa.codigo
            mesa_str = "Mesa %s" % recuento.mesa.numero
            if codigo == 0:
                mensaje = "La %s no esta autorizada para su Usuario. Por " \
                          "favor consulte con Operaciones" % mesa_str
            elif codigo == 1:
                status = "OK"
                mensaje = "Recuento de la %s recibido y procesado " \
                          "correctamente.\nSe muestra el Parte " \
                          "Electr\u00f3nico BORRADOR.\nPara confirmarlo " \
                          "definitivamente, pase el Recuento por el lector " \
                          "nuevamente.\nSi ha ingresado el papel en la " \
                          "impresora, acerque su credencial al lector para " \
                          "expulsarlo." % mesa_str
                respuesta["acta_borrador"] = "SI"
                respuesta["img_acta"] = generar_acta_svg(
                    recuento,
                    categorias=get_categorias(recuento.mesa.cod_datos,
                                              self._acta_desglosada))
                # Revisar los otros parámetros: url, filename, alerta
                self._estados[recuento.mesa.codigo]['estado'] = 'En Proceso'
                self.__reset_estado_cargos(recuento.mesa.codigo)
            elif codigo == 2:
                status = "OK"
                mensaje = "Por favor, Confirme la \u00faltima acta en " \
                          "borrador de la %s.\n\u00bfes Definitiva?" % mesa_str
                respuesta["mesa"] = mesa_str
                respuesta["confirma_definitiva"] = "SI"
                respuesta["img_acta"] = generar_acta_svg(
                    recuento,
                    categorias=get_categorias(recuento.mesa.codigo,
                                              self._acta_desglosada))
            elif codigo == 3:
                status = "OK"
                categorias = get_categorias(recuento.mesa.cod_datos,
                                            self._acta_desglosada)
                desc_categoria = [
                    c[1] for c in categorias if c[0] == recuento.cod_categoria
                ]
                mensaje = "Recuento de la <i>%s</i> para el cargo <i>%s</i>" \
                          " recibido y procesado correctamente.\n" % \
                          desc_categoria[0]
                self._estados[recuento.mesa.codigo]['cargos'] \
                    [recuento.cod_categoria]['estado'] = 1
                self._estados[recuento.mesa.codigo]['cargos'] \
                    [recuento.cod_categoria]['recuento'] = recuento.a_tag()
                respuesta["cod_categoria"] = recuento.cod_categoria
            elif codigo == 4:
                status = "OK"
                mensaje = "Recuento de la %s recibido y procesado " \
                          "correctamente.\nSe muestra el Parte " \
                          "Electr\u00f3nico BORRADOR.\nPara confirmarlo " \
                          "definitivamente, pase el Recuento por el lector " \
                          "nuevamente.\nSi ha ingresado el papel en la " \
                          "impresora, acerque su credencial al lector para " \
                          "expulsarlo." % mesa_str
                respuesta["acta_borrador"] = "SI"

                self._estados[recuento.mesa.codigo]['cargos'] \
                    [recuento.cod_categoria]['estado'] = 1
                self._estados[recuento.mesa.codigo]['cargos'] \
                    [recuento.cod_categoria]['recuento'] = recuento.a_tag()

                actas = [
                    c['recuento'] for c in self._estados[recuento.mesa.codigo]
                    ['cargos'].values()
                ]
                categorias = get_categorias(recuento.mesa.cod_datos,
                                            self._acta_desglosada)
                recuento_total = generar_recuento_total(actas)
                respuesta["img_acta"] = generar_acta_svg(
                    recuento_total,
                    categorias=categorias,
                    acta_desglosada=self._acta_desglosada)
                respuesta["cod_categoria"] = recuento.cod_categoria

                self._estados[recuento.mesa.codigo]['estado'] = 'En Proceso'
                self.__reset_estado_cargos(recuento.mesa.codigo)
            elif codigo == 5:
                status = "OK"
                mensaje = "Por favor, Confirme la \u00faltima acta en " \
                          "borrador de la %s.\n\u00bfes Definitiva?" % mesa_str
                respuesta["mesa"] = mesa_str
                respuesta["confirma_definitiva"] = "SI"

                self._estados[recuento.mesa.codigo]['cargos'] \
                    [recuento.cod_categoria]['estado'] = 1
                self._estados[recuento.mesa.codigo]['cargos'] \
                    [recuento.cod_categoria]['recuento'] = recuento.a_tag()

                actas = [
                    c['recuento'] for c in self._estados[recuento.mesa.codigo]
                    ['cargos'].values()
                ]
                categorias = get_categorias(recuento.mesa.cod_datos,
                                            self._acta_desglosada)
                recuento_total = generar_recuento_total(actas)
                respuesta["img_acta"] = generar_acta_svg(
                    recuento_total,
                    categorias=categorias,
                    acta_desglosada=self._acta_desglosada)
                respuesta["cod_categoria"] = recuento.cod_categoria
            elif codigo == 6:
                mensaje = "El acta de la %s ya est\u00e1 confirmada y" \
                          " emitida." % mesa_str
        else:
            mensaje = "Recuento no válido."

        respuesta["status"] = status
        respuesta["mensaje"] = mensaje

        simular_delay_conexion()
        return dumps(respuesta)