def on_line_change(self): self.ui.comboBox_calle.clear() if self.ui.comboBox_linea.currentText(): self.ui.statusbar.showMessage(u'Consultando el listado de calles. Espere, por favor...') str_streets = ETR.get_line_streets(str(self.ui.comboBox_linea.currentText())) self.ui.comboBox_calle.addItem('', -1) for street in Util.generate_streets_list(str_streets)[0]: self.ui.comboBox_calle.addItem(street['desc'], street['id']) self.ui.statusbar.showMessage(u'Seleccione una calle')
def on_street_change(self): self.ui.comboBox_interseccion.clear() if self.ui.comboBox_calle.currentText(): self.ui.statusbar.showMessage(u'Consultando el listado de intersecciones. Espere, por favor...') line = self.ui.comboBox_linea.currentText() street = self.ui.comboBox_calle.itemData(self.ui.comboBox_calle.currentIndex()).toInt()[0] str_intersections = ETR.get_line_intersections(line, street) self.ui.comboBox_interseccion.addItem('') for intersection in Util.generate_streets_list(str_intersections)[0]: self.ui.comboBox_interseccion.addItem(intersection['desc'], intersection['id']) self.ui.statusbar.showMessage(u'Seleccione una intersección')
def interactive_mode_wizard(): print 'Consulta \'¿Cuándo llega?\' del ETR - Asistente de consulta interactiva.\n' lines_list, lines = ETR.list_lines() print lines_list, line = raw_input("Línea: ") if not line: print 'Debe ingresar una línea para poder continuar.' sys.exit() line = line.upper() if line not in lines: print 'La línea ingresada no es válida.' sys.exit() print '\nRecuperando las calles para la línea seleccionada. Espere, por favor...' str_streets = ETR.get_line_streets(line) if str_streets == 'error': print 'Error al obtener el listado de calles para la línea ingresada.' sys.exit() else: if str_streets: try: streets, streets_list = Util.generate_streets_list(str_streets) print streets_list except Exception: print 'Error al obtener el listado de calles. Inténtenlo nuevamente.' sys.exit() else: print 'No se encontraron calles para la línea ingresada.' sys.exit() street = raw_input("Calle: ") if not street: print 'Debe seleccionar una calle para poder continuar.' sys.exit() else: try: street = int(street) - 1 except Exception: print 'El valor ingresado no tiene un formato válido.' sys.exit() if street > len(streets) - 1: print 'El valor ingresado no corresponde a una calle válida.' sys.exit() print '\nRecuperando las intersecciones para la calle seleccionada. Espere, por favor...' str_intersections = ETR.get_line_intersections(line, int(streets[int(street)]['id'])) if str_intersections: try: intersections, intersections_list = Util.generate_streets_list(str_intersections) except Exception: print 'Error al obtener el listado de intersecciones. Inténtenlo nuevamente.' sys.exit() print intersections_list else: print 'No se encontraron intersecciones para la calle ingresada.' sys.exit() intersection = raw_input("Intersección: ") if not intersection: print 'Debe seleccionar una intersección para poder continuar.' sys.exit() else: try: intersection = int(intersection) - 1 except Exception: print 'El valor ingresado no tiene un formato válido.' sys.exit() if intersection > len(intersections) - 1: print 'El valor ingresado no corresponde a una intersección válida.' sys.exit() print '\nRecuperando las paradas para la línea ingresada. Espere, por favor...\n' str_stops = ETR.get_line_stops(line, int(streets[int(street)]['id']), int(intersections[int(intersection)]['id'])) stops_count = 0 if str_stops: elements = re.findall(r'<td[^>]*?>(.+)<\/td>', str_stops) for index, element in enumerate(elements): value = re.sub(r'<[^>]*?>', '', element) print value, if (index + 1) % 2 == 0: print '\n', else: stops_count += 1 stop_code = value print '-', print '\n', else: print 'No se encontraron paradas para la línea ingresada.' sys.exit() if stops_count == 1: stop = stop_code else: stop = raw_input('Parada: ') if not stop: print 'Debe seleccionar una parada para poder continuar.' sys.exit() else: try: stop = int(stop) except Exception: print 'El valor ingresado no tiene un formato válido.' sys.exit() print '\n' return line, stop