Exemple #1
0
    def __init__(self, nombre):
        """Constructor."""
        # Importante antes de inicializar el modulo, limpiar la configuracion
        self.sesion = get_sesion()
        self._limpiar_configuracion()
        self.mute_armve_ver_1()
        self.controlador = Controlador(self)
        self.web_template = "inicio"

        ModuloBase.__init__(self, nombre)

        self.loop_lector = True
        self._vaciar_impresora()
        self.estado = E_INICIAL
        self.dialogo = None
        self._bind_term()
        self.manejar_desconexion()

        self.rampa = Rampa(self)
Exemple #2
0
    def __init__(self, nombre):
        """Constructor."""
        # Importante antes de inicializar el modulo, limpiar la configuracion
        self.sesion = get_sesion()
        self._limpiar_configuracion()
        self.mute_armve_ver_1()
        self.controlador = Controlador(self)
        self.web_template = "inicio"

        ModuloBase.__init__(self, nombre)

        self.loop_lector = True
        self._vaciar_impresora()
        self.estado = E_INICIAL
        self.dialogo = None
        self._bind_term()
        self.manejar_desconexion()

        self.rampa = Rampa(self)
Exemple #3
0
class Modulo(ModuloBase):
    """ Modulo de Inicio.

        Este módulo muestra la pantalla de bienvenida y realiza el proceso de
        configuracion de una mesa.
        El usuario debe pasar el tag de presidente o de MSA para habilitar el
        comienzo de la configuración.
        Luego se le pedirá un PIN y el modulo configurará la mesa para la
        ubicación solicitada.
    """
    def __init__(self, nombre):
        """Constructor."""
        # Importante antes de inicializar el modulo, limpiar la configuracion
        self.sesion = get_sesion()
        self._limpiar_configuracion()
        self.mute_armve_ver_1()
        self.controlador = Controlador(self)
        self.web_template = "inicio"

        ModuloBase.__init__(self, nombre)

        self.loop_lector = True
        self._vaciar_impresora()
        self.estado = E_INICIAL
        self.dialogo = None
        self._bind_term()
        self.manejar_desconexion()

        self.rampa = Rampa(self)

    def mute_armve_ver_1(self):
        """Funcion para mutear ARMVE version 1 (serie P2)."""
        if hasattr(self.sesion, "agent"):
            machine_number = self.sesion.agent.get_machine_type()
            if machine_number == 1:
                system('/usr/bin/amixer -c 0 sset "Auto-Mute Mode" Disabled')

    def _bind_term(self):
        """Bindea la terminal si tenemos el modulo necesario para hacerlo."""
        try:
            keybinder = KeybinderGtk()
            keybinder.register('<Ctrl>x', self.abrir_terminal)
            keybinder.start()
        except (KeyError, NameError):
            pass

    def set_pantalla(self, pantalla):
        """Setea la pantalla indicada."""
        self.controlador.set_screen(pantalla)

    def hide_dialogo(self):
        """Esconde el dialogo."""
        self.controlador.hide_dialogo()

    def _inicio(self):
        """Funcion llamada desde el controlador."""
        self.controlador.send_constants()

    def manejar_desconexion(self):
        """Maneja la desconexion del hardware.

        En Malata tenia mas sentido que ahora, pero de todos modos si perdemos
        conexion lo mostramos.
        """
        def mostrar_dialogo(estado):
            """Muestra el dialogo en caso de desconexion."""

            if not estado and self.dialogo is None:
                self.dialogo = MsgDialog(_("arm_no_responde"))
                self.dialogo.show()
            elif estado and self.dialogo is not None:
                self.dialogo.hide()
                self.dialogo = None

        if self.sesion.impresora is None or not self.sesion.impresora.estado():
            mostrar_dialogo(False)

        if self.sesion.impresora is not None:
            self.sesion.impresora.connection(mostrar_dialogo)

    def _vaciar_impresora(self):
        """Expulsa la boleta cuando arranca el modulo"""
        impresora = self.sesion.impresora
        if impresora is not None and impresora.estado():
            impresora.expulsar_boleta()

    def _pantalla_principal(self):
        """Levanta la pantalla inicial."""
        self.controlador.set_screen("pantalla_inicio")

    def a_capacitacion(self):
        """Sale al modo de capacitacion."""
        self.salir_a_modulo(MODULO_CAPACITACION)

    def configurar(self):
        """Inicio la configuración de la mesa."""
        self.salir_a_modulo(SUBMODULO_MESA_Y_PIN_INICIO)

    def _limpiar_configuracion(self):
        """Reinicio todos los valores."""
        sesion = get_sesion()
        sesion.mesa = None
        sesion.apertura = None
        sesion.recuento = None

    def apagar(self):
        """ Sale del módulo de inicio y envia la orden de apagado """
        self.ret_code = SHUTDOWN
        idle_add(self.quit)

    def abrir_terminal(self):
        """Abre la terminal en caso de que las condiciones esten dadas."""
        if DEBUG:
            self.sesion.logger.debug('abrir terminal')
            Popen('xterm')
Exemple #4
0
class Modulo(ModuloBase):

    """ Modulo de Inicio.

        Este módulo muestra la pantalla de bienvenida y realiza el proceso de
        configuracion de una mesa.
        El usuario debe pasar el tag de presidente o de MSA para habilitar el
        comienzo de la configuración.
        Luego se le pedirá un PIN y el modulo configurará la mesa para la
        ubicación solicitada.
    """

    def __init__(self, nombre):
        """Constructor."""
        # Importante antes de inicializar el modulo, limpiar la configuracion
        self.sesion = get_sesion()
        self._limpiar_configuracion()
        self.mute_armve_ver_1()
        self.controlador = Controlador(self)
        self.web_template = "inicio"

        ModuloBase.__init__(self, nombre)

        self.loop_lector = True
        self._vaciar_impresora()
        self.estado = E_INICIAL
        self.dialogo = None
        self._bind_term()
        self.manejar_desconexion()

        self.rampa = Rampa(self)

    def mute_armve_ver_1(self):
        """Funcion para mutear ARMVE version 1 (serie P2)."""
        if hasattr(self.sesion, "agent"):
            machine_number = self.sesion.agent.get_machine_type()
            if machine_number == 1:
                system('/usr/bin/amixer -c 0 sset "Auto-Mute Mode" Disabled')

    def _bind_term(self):
        """Bindea la terminal si tenemos el modulo necesario para hacerlo."""
        try:
            keybinder = KeybinderGtk()
            keybinder.register('<Ctrl>x', self.abrir_terminal)
            keybinder.start()
        except (KeyError, NameError):
            pass

    def set_pantalla(self, pantalla):
        """Setea la pantalla indicada."""
        self.controlador.set_screen(pantalla)

    def hide_dialogo(self):
        """Esconde el dialogo."""
        self.controlador.hide_dialogo()

    def _inicio(self):
        """Funcion llamada desde el controlador."""
        self.controlador.send_constants()

    def manejar_desconexion(self):
        """Maneja la desconexion del hardware.

        En Malata tenia mas sentido que ahora, pero de todos modos si perdemos
        conexion lo mostramos.
        """
        def mostrar_dialogo(estado):
            """Muestra el dialogo en caso de desconexion."""

            if not estado and self.dialogo is None:
                self.dialogo = MsgDialog(_("arm_no_responde"))
                self.dialogo.show()
            elif estado and self.dialogo is not None:
                self.dialogo.hide()
                self.dialogo = None

        if self.sesion.impresora is None or not self.sesion.impresora.estado():
            mostrar_dialogo(False)

        if self.sesion.impresora is not None:
            self.sesion.impresora.connection(mostrar_dialogo)

    def _vaciar_impresora(self):
        """Expulsa la boleta cuando arranca el modulo"""
        impresora = self.sesion.impresora
        if impresora is not None and impresora.estado():
            impresora.expulsar_boleta()

    def _pantalla_principal(self):
        """Levanta la pantalla inicial."""
        self.controlador.set_screen("pantalla_inicio")

    def a_capacitacion(self):
        """Sale al modo de capacitacion."""
        self.salir_a_modulo(MODULO_CAPACITACION)

    def configurar(self):
        """Inicio la configuración de la mesa."""
        self.salir_a_modulo(SUBMODULO_MESA_Y_PIN_INICIO)

    def _limpiar_configuracion(self):
        """Reinicio todos los valores."""
        sesion = get_sesion()
        sesion.mesa = None
        sesion.apertura = None
        sesion.recuento = None

    def apagar(self):
        """ Sale del módulo de inicio y envia la orden de apagado """
        self.ret_code = SHUTDOWN
        idle_add(self.quit)

    def abrir_terminal(self):
        """Abre la terminal en caso de que las condiciones esten dadas."""
        if DEBUG:
            self.sesion.logger.debug('abrir terminal')
            Popen('xterm')