def guardar_piloto(self, nombre): piloto = self.__piloto_activo if piloto != None: datos = {} if piloto.obtener_datos()["nombre"] != nombre: datos["nombre"] = nombre if self.__foto != None and piloto.obtener_datos()["foto"] != self.__foto: datos["foto"] = self.__foto if (self.__fecha_nacimiento != None) and (piloto.obtener_datos()["nacimiento"] != self.__fecha_nacimiento): datos["nacimiento"] = self.__fecha_nacimiento try: piloto.establecer_datos(datos) Facade.almacenar_temporada(self.__temporada_activa) self.actualizar_datos() return True except: return False else: try: piloto_nuevo = Facade.nuevo_piloto(nombre) datos = {} if self.__foto != None: datos["foto"] = self.__foto if self.__fecha_nacimiento != None: datos["nacimiento"] = self.__fecha_nacimiento if len(datos) > 0: piloto_nuevo.establecer_datos(datos) self.__temporada_activa.anadir_piloto(piloto_nuevo) Facade.almacenar_temporada(self.__temporada_activa) self.actualizar_datos() return True except: return False
def actualizar_datos(self): self.__temporadas = Facade.obtener_lista_temporadas() self.__temporadas.sort() self.__lista_temps = [] self.__lista_temp_validas = [] self.__lista_gps_validos_temp = [] temporada_valida = False pos_temp = 0 for t in self.__temporadas: self.__lista_gps_validos_temp.append({}) pos_general = 0 pos_gp = 0 temporada = Facade.obtener_temporada(t) self.__lista_temps.append(temporada) gps_temporada = temporada.obtener_lista_GPs() for gp in gps_temporada: if (not gp.ha_comenzado()) or (not gp.ha_finalizado()): temporada_valida = True self.__lista_gps_validos_temp[pos_temp][pos_gp] = pos_general pos_gp = pos_gp + 1 pos_general = pos_general + 1 if temporada_valida: self.__lista_temp_validas.append(pos_temp) temporada_valida = False pos_temp = pos_temp + 1 self.set_temporada_activa(pos_temp - 1) self.__gp_activo = -1 self.__listview_gp_parrilla = gtk.ListStore(int, str) self.__listview_gp_carrera = gtk.ListStore(int, str)
def guardar_gp(self, nombre, circuito, vueltas): gp = self.__gp_activo if gp != None: datos = {} if gp.obtener_datos()["nombre"] != nombre: datos["nombre"] = nombre if gp.obtener_datos()["lugar"] != circuito: datos["lugar"] = circuito if (self.__fecha_inicio != None) and (gp.obtener_datos()["inicio"] != self.__fecha_inicio): datos["inicio"] = self.__fecha_inicio if (self.__fecha_fin != None) and (gp.obtener_datos()["fin"] != self.__fecha_fin): datos["fin"] = self.__fecha_fin if gp.obtener_datos()["n_vueltas_gp"] != vueltas: datos["n_vueltas_gp"] = vueltas try: if datos != {}: gp.establecer_datos(datos) Facade.almacenar_temporada(self.__temporada_activa) self.actualizar_datos() return (True, False) except: return (False, False) else: try: gp_nuevo = Facade.nuevo_GP(nombre, circuito, self.__fecha_inicio, self.__fecha_fin, vueltas) self.__temporada_activa.anadir_GP(gp_nuevo) Facade.almacenar_temporada(self.__temporada_activa) self.actualizar_datos() return (True, True) except: return (False, True)
def actualizar_datos(self): self.__temporadas = Facade.obtener_lista_temporadas() self.__temporadas.sort() self.__numero_temporadas = -1 self.__lista_temps = [] for t in self.__temporadas: self.__lista_temps.append(Facade.obtener_temporada(t)) self.__numero_temporadas = self.__numero_temporadas + 1 self.__lista_temps.sort(key=lambda nombre: nombre.obtener_datos()["nombre"]) self.set_temporada_activa(self.__numero_temporadas) self.__gp_activo = -1
def guardar_reglas(self): datos = {"tabla_puntos": self.__reglas} temporada = self.__obtener_temporada() if temporada: try: temporada.establecer_datos(datos) Facade.almacenar_temporada(temporada) return True except: return False else: self.__reglas_temporada_sin_guardar = self.__reglas return True
def actualizar_datos(self): temp = Facade.obtener_lista_temporadas() self.__temporadas = [] self.__numero_temporadas = -1 self.__gps = [] for t in temp: temporada = Facade.obtener_temporada(t) self.__temporadas.append(temporada) self.__numero_temporadas = self.__numero_temporadas + 1 self.__temporadas.sort(key=lambda nombre: nombre.obtener_datos()["nombre"]) self.__temporada_seleccionada = "" self.__gp_activo = -1
def guardar_resultados(self, numero_vueltas, ventana_correcto): pilotos = self.get_temporada_activa().obtener_lista_pilotos() pilotos_ordenados = [] for w in self.__widget_piloto: nombre_piloto = w[0].get_active_text() for p in pilotos: if p.obtener_datos()["nombre"] == nombre_piloto: pilotos_ordenados.append(p) if self.__editando == "clasificacion": self.__obtener_gp_activo().establecer_parrilla(pilotos_ordenados) elif self.__editando == "carrera": self.__obtener_gp_activo().establecer_resultado(pilotos_ordenados, numero_vueltas) Facade.almacenar_temporada(self.get_temporada_activa()) ventana_correcto.run()
def actualizar_datos(self): temp = Facade.obtener_lista_temporadas() self.__temporadas = [] self.__equipos = [] self.__pilotos = [] self.__gps = [] self.__reglas = [] self.__reglas_temporada_sin_guardar = [] if temp != []: for t in temp: temporada = Facade.obtener_temporada(t) self.__temporadas.append(temporada) self.__temporadas.sort(key=lambda nombre: nombre.obtener_datos()["nombre"]) self.__temporada_seleccionada = "" self.__fecha_inicio = None self.__fecha_fin = None
def guardar_temporada(self, nombre, nombre_corto, pilotos_gp, pilotos_parrilla): temporada_a_actualizar = None for t in self.__temporadas: if t.obtener_datos()["nombre_corto"] == nombre_corto: temporada_a_actualizar = t if temporada_a_actualizar != None: datos = {} if temporada_a_actualizar.obtener_datos()["nombre"] != nombre: datos["nombre"] = nombre if temporada_a_actualizar.obtener_datos()["nombre_corto"] != nombre_corto: datos["nombre_corto"] = nombre_corto if (self.__fecha_inicio != None) and ( temporada_a_actualizar.obtener_datos()["inicio"] != self.__fecha_inicio ): datos["inicio"] = self.__fecha_inicio if (self.__fecha_fin != None) and (temporada_a_actualizar.obtener_datos()["fin"] != self.__fecha_fin): datos["fin"] = self.__fecha_fin if temporada_a_actualizar.obtener_datos()["n_pilotos_gp"] != pilotos_gp: datos["n_pilotos_gp"] = pilotos_gp if temporada_a_actualizar.obtener_datos()["n_pilotos_parrilla"] != pilotos_parrilla: datos["n_pilotos_parrilla"] = pilotos_parrilla try: temporada_a_actualizar.establecer_datos(datos) Facade.almacenar_temporada(temporada_a_actualizar) self.actualizar_datos() return True except: return False else: temporada_nueva = Facade.nueva_temporada(nombre, nombre_corto) datos = {} datos["inicio"] = self.__fecha_inicio datos["fin"] = self.__fecha_fin datos["n_pilotos_gp"] = pilotos_gp datos["n_pilotos_parrilla"] = pilotos_parrilla if self.__reglas_temporada_sin_guardar != []: datos["tabla_puntos"] = self.__reglas_temporada_sin_guardar temporada_nueva.establecer_datos(datos) Facade.almacenar_temporada(temporada_nueva) self.actualizar_datos() return True
#!/usr/bin/python # -*- coding: utf-8 -*- """ Crear una BBDD con datos de temporadas para usar en las pruebas. """ import sys import datetime from model import Facade if sys.argv[1]: Facade.establecer_directorio_bd(sys.argv[1]) else: Facade.establecer_directorio_bd(".") # # Temporada 2010 # inicio = datetime.date(2010, 3, 12) fin = datetime.date(2010, 11, 14) temporada = Facade.nueva_temporada("Temporada 2010", "t_2010") temporada.establecer_datos({'inicio': inicio, 'fin': fin, 'n_pilotos_parrilla': 24, 'n_pilotos_gp': 24, 'tabla_puntos': [25,18,15,12,10,8,6,4,1]}) nombre = "2010 FORMULA 1 GULF AIR BAHRAIN GRAND PRIX" lugar = "Sakhir" inicio = datetime.date(2010, 3, 12) fin = datetime.date(2010, 3, 14) n_vueltas = 49
def borrar_temporada(self): temporada = self.__obtener_temporada() Facade.eliminar_temporada(temporada) self.actualizar_datos()
def borrar_piloto(self): piloto = self.__piloto_activo self.__temporada_activa.eliminar_piloto(piloto) Facade.almacenar_temporada(self.__temporada_activa) self.actualizar_datos()
def borrar_gp(self): gp = self.__gp_activo self.__temporada_activa.eliminar_GP(gp) Facade.almacenar_temporada(self.__temporada_activa) self.actualizar_datos()
#!/usr/bin/python2.5 # -*- coding: utf-8 import gtk from model import Facade Facade.establecer_directorio_bd("db") class ConsultarResultados: def __init__(self): self.actualizar_datos() self.__listview_gp_parrilla = gtk.ListStore(int, str) self.__listview_gp_carrera = gtk.ListStore(int, str) self.__listview_temporada_pilotos = gtk.ListStore(int, str, int) self.__listview_temporada_equipos = gtk.ListStore(int, str, int) self.__listview_carreras_temporada = gtk.ListStore(str, str, str) def actualizar_datos(self): self.__temporadas = Facade.obtener_lista_temporadas() self.__temporadas.sort() self.__numero_temporadas = -1 self.__lista_temps = [] for t in self.__temporadas: self.__lista_temps.append(Facade.obtener_temporada(t)) self.__numero_temporadas = self.__numero_temporadas + 1 self.__lista_temps.sort(key=lambda nombre: nombre.obtener_datos()["nombre"]) self.set_temporada_activa(self.__numero_temporadas) self.__gp_activo = -1 def set_temporada_activa(self, indice):