def send_command(self, command, data=None): """Intercepta los comandos que se envian a la interfaz. Hace un override del metodo send_command de Zaguan para poder inyectar las cosas de asistidas del medio, tiene una lista de comandos para interceptar y una white_list de que comandos tiene que dejar pasar. El resto de los comandos no se envia nunca al front end. Argumentos: command -- El comando enviado originalmente al front end. data -- los datos que se mandaron como parametro al comando. """ white_list = ["set_constants", "cargar_categorias", "limpiar_data_categorias", "change_screen", "insertando_boleta", "mostrar_voto", "hide_barra_opciones", "imagen_consulta", "mostrar_teclado", "cargar_adhesiones", "cargar_consulta_popular", "mostrar_loader", "ocultar_loader"] interceptar = { "pantalla_modos": [AsistenteModos, None], "cargar_listas": [AsistenteListaCompleta, None], "cargar_listas_params": [AsistenteListaCompleta, 0], "cargar_adhesiones": [AsistenteAdhesion, 0], "cargar_consulta_popular": [AsistenteConsultaPopular, 0], "cargar_candidatos": [AsistenteCandidatos, "candidatos"], "mostrar_confirmacion": [AsistenteConfirmacion, None], "seleccion_partido": [AsistentePartido, None], } if command in white_list: if command == "change_screen": attr = "change_screen_%s" % data[0] if hasattr(self, attr): getattr(self, attr)() ControllerVoto.send_command(self, command, data) if command in interceptar.keys(): clase, key = interceptar[command] self.asistente = clase(self, data, key) self.cambiar_monitor() self.send_command("mostrar_teclado")
def send_command(self, command, data=None): """Intercepta los comandos que se envian a la interfaz. Hace un override del metodo send_command de Zaguan para poder inyectar las cosas de asistidas del medio, tiene una lista de comandos para interceptar y una white_list de que comandos tiene que dejar pasar. El resto de los comandos no se envia nunca al front end. Argumentos: command -- El comando enviado originalmente al front end. data -- los datos que se mandaron como parametro al comando. """ white_list = [ "set_constants", "cargar_categorias", "limpiar_data_categorias", "change_screen", "insertando_boleta", "mostrar_voto", "hide_barra_opciones", "imagen_consulta", "mostrar_teclado", "cargar_adhesiones", "cargar_consulta_popular", "mostrar_loader", "ocultar_loader" ] interceptar = { "pantalla_modos": [AsistenteModos, None], "cargar_listas": [AsistenteListaCompleta, None], "cargar_listas_params": [AsistenteListaCompleta, 0], "cargar_adhesiones": [AsistenteAdhesion, 0], "cargar_consulta_popular": [AsistenteConsultaPopular, 0], "cargar_candidatos": [AsistenteCandidatos, "candidatos"], "mostrar_confirmacion": [AsistenteConfirmacion, None], "seleccion_partido": [AsistentePartido, None], } if command in white_list: if command == "change_screen": attr = "change_screen_%s" % data[0] if hasattr(self, attr): getattr(self, attr)() ControllerVoto.send_command(self, command, data) if command in interceptar.keys(): clase, key = interceptar[command] self.asistente = clase(self, data, key) self.cambiar_monitor() self.send_command("mostrar_teclado")
def cambiar_monitor(self): """Cambia el texto del monitor al del asistente actual.""" ControllerVoto.send_command(self, "cambiar_indicador_asistida", self.asistente.get_monitor())