コード例 #1
0
ファイル: competencia.py プロジェクト: juxtar/tyc-soft
    def actualizar(self):
        self.cerrar_error(None)
        datos_competencia = GestorCompetencia.get_instance().listar_competencias(id_competencia=self.id_competencia)[0]
        self.glade.get_object('NombreCompetencia').set_text(datos_competencia.nombre)
        self.glade.get_object('modalidad').set_text(datos_competencia.tipo)
        self.glade.get_object('deporte').set_text(datos_competencia.deporte)
        self.glade.get_object('estado').set_text(datos_competencia.estado)
        self.estado_competencia = datos_competencia.estado
        self.tipo_competencia = datos_competencia.tipo
        if self.tipo_competencia != 'liga':
            self.glade.get_object('button7').set_sensitive(False)

        lista_de_partidas = GestorPartida.get_instance().listar_partidas(id_competencia = self.id_competencia)
        self.glade.get_object("treeview2").get_model().clear()
        for partida in lista_de_partidas:
            if 'Dummy' in partida.nombre_visitante or 'Dummy' in partida.nombre_local:
                lista_de_partidas.remove(partida)
        nueva_lista = []
        for partida in lista_de_partidas:
            if partida.estado != 'Finalizada':
                nueva_lista.append(partida)
        for partidas in nueva_lista[:5]:
            self.glade.get_object("treeview2").get_model().append([partidas.nombre_local, partidas.nombre_visitante])

        self.main_window.show_all()
コード例 #2
0
ファイル: competencia.py プロジェクト: juxtar/tyc-soft
    def __init__(self, id_usuario, ventana_padre):
        self.id_usuario = id_usuario
        self.ventana_padre = ventana_padre
        self.glade = gtk.Builder()
        self.glade.add_from_file(path.dirname( path.abspath(__file__) )+'/glade/competencia.glade')
        self.glade.get_object('button4').connect('clicked', self.volver)
        self.glade.get_object('button5').connect('clicked', self.aceptar)

        deportes_cargados = GestorCompetencia.get_instance().listar_deportes()
        self.glade.get_object('comboDeporte1').get_model().clear()
        for deporte in deportes_cargados:
            self.glade.get_object('comboDeporte1').append_text(deporte)

        botones = self.obtener_descendientes(self.glade.get_object('vbox1'), 'RadioButton')
        botones.append(self.glade.get_object('empate'))
        for b in botones:
            b.connect('toggled', self.dinamizar)
        self.glade.get_object('entry2').connect('changed', self.dinamizar)

        lista_lugares = GestorLugar.get_instance().listar_lugar(id_usuario)
        for lugar in lista_lugares:
            cuadrolugar = CuadroLugar(lugar.id, lugar.nombre)
            cuadrolugar.disponibilidad.connect('changed', self.dinamizar)
            self.glade.get_object('lugares').pack_start(cuadrolugar, False, True, 2)
            cuadrolugar.show_all()

        self.main_window = self.glade.get_object('nueva_modificar_competencia')
        self.main_window.connect('destroy', self.destroy)
        self.infobar, boton_cerrar = self.agregar_cuadro_error()
        boton_cerrar.connect('clicked', self.cerrar_error)
        self.main_window.show_all()
コード例 #3
0
ファイル: competencia.py プロジェクト: juxtar/tyc-soft
    def buscar(self, widget):
        nombre_box = self.glade.get_object('entry1')
        deporte_box = self.glade.get_object('comboDeporte')
        modalidad_box = self.glade.get_object('comboModal')
        estado_box = self.glade.get_object('comboEstado')

        modalidad = modalidad_box.get_model()[modalidad_box.get_active()][0]
        if modalidad == 'Eliminatoria Simple':
            modalidad = 'eliminatoriasimple'
        elif modalidad == 'Eliminatoria Doble':
            modalidad = 'eliminatoriadoble'
        elif modalidad == 'Liga':
            modalidad = 'liga'

        parametros = {  'nombre': nombre_box.get_text(),
                        'id_usuario': self.id_usuario,
                        'deporte': deporte_box.get_model()[deporte_box.get_active()][0],
                        'modalidad': modalidad,
                        'estado': estado_box.get_model()[estado_box.get_active()][0]
                    }

        # Reemplazar los valores vacios por None
        for key, value in parametros.items():
            if value == '':
                parametros[key] = None

        lista_competencias = GestorCompetencia.get_instance().listar_competencias(id_competencia=None, **parametros)

        modelo = self.glade.get_object('treeview1').get_model()
        modelo.clear()
        for competencia in lista_competencias:
            modelo.append([competencia.nombre, competencia.deporte, competencia.tipo, competencia.estado,
                           competencia.nombre_usuario, competencia.id])
コード例 #4
0
ファイル: competencia.py プロジェクト: juxtar/tyc-soft
 def generar_fixture(self):
     try:
         exito = GestorCompetencia.get_instance().generar_fixture(self.id_competencia)
         if exito is 1:
             self.estado_competencia = 'Planificada'
             self.glade.get_object('estado').set_text('Planificada')
             Exito(self, False)
             self.actualizar()
     except FaltaDeDatos as e:
         self.mostrar_error(e.mensaje)
コード例 #5
0
ファイル: resultado.py プロジェクト: juxtar/tyc-soft
    def __init__(self, id_competencia):
        self.id_competencia = id_competencia
        self.glade = gtk.Builder()
        self.glade.add_from_file(path.dirname( path.abspath(__file__) )+'/glade/resultado.glade')
        self.glade.get_object('button12').connect('clicked', self.volver)
        datos_competencia = GestorCompetencia.get_instance().listar_competencias(id_competencia=id_competencia)
        self.glade.get_object('label53').set_text(datos_competencia[0].nombre)

        self.treeview = self.glade.get_object('treeview2')
        self.treeview.get_model().clear()
        datos_tabla = GestorCompetencia.get_instance().generar_tabla_posiciones(id_competencia)
        for dto in datos_tabla:
            datos = [
                dto.nombre, dto.puntos, dto.partidos_ganados, dto.partidos_empatados, dto.partidos_perdidos,
                dto.goles_a_favor, dto.goles_en_contra, dto.goles_a_favor-dto.goles_en_contra,
                dto.partidos_empatados+dto.partidos_ganados+dto.partidos_perdidos
            ]
            self.treeview.get_model().append(datos)

        self.main_window = self.glade.get_object('tabla_posiciones')
        self.main_window.connect('destroy', self.destroy)
        self.main_window.show_all()
コード例 #6
0
ファイル: participante.py プロジェクト: juxtar/tyc-soft
    def __init__(self, id_competencia, clase_padre):
        self.id_competencia = id_competencia
        self.clase_padre = clase_padre
        self.glade = gtk.Builder()
        self.glade.add_from_file(path.dirname( path.abspath(__file__) )+'/glade/participante.glade')
        self.main_window = self.glade.get_object('ver_participantes')
        self.glade.get_object('button4').connect('clicked', self.volver)
        self.glade.get_object('button1').connect('clicked', self.nuevo_participante)
        datos_competencia = GestorCompetencia.get_instance().listar_competencias(id_competencia=id_competencia)[0]
        self.glade.get_object('label1').set_text(datos_competencia.nombre)

        self.main_window.connect('destroy', self.destroy)
        self.infobar, boton_cerrar = self.agregar_cuadro_error()
        boton_cerrar.connect('clicked', self.cerrar_error)
        self.main_window.show_all()

        self.listar_participantes()
コード例 #7
0
ファイル: competencia.py プロジェクト: juxtar/tyc-soft
    def aceptar(self, widget):
        deporte_box = self.glade.get_object('comboDeporte1')
        deporte = deporte_box.get_model()[deporte_box.get_active()][0]

        nombre = self.glade.get_object('entry2').get_text()

        mensaje_errores = []
        if nombre == '':
            mensaje_errores.append('Debe ingresar un nombre para la competencia.')
        if not re.match(r"^[A-Z0-9]+( [A-Z0-9]+)*$", nombre):
            mensaje_errores.append('Nombre invalido. Solo puede contener letras, numeros y espacios')
            mensaje_errores.append('y no debe empezar ni terminar con un espacio.')
        if deporte_box.get_active() == -1:
            mensaje_errores.append('Debe ingresar un deporte para la competencia.')

        for lugar in self.glade.get_object('lugares').get_children():
            if lugar.get_active():
                if lugar.get_disponibilidad() == '':
                    mensaje_errores.append('Debe ingresar la disponibilidad para {}.'.format(lugar.get_label()))
                    continue
                if int(lugar.get_disponibilidad()) == 0:
                    mensaje_errores.append('La disponibilidad de {} no puede ser 0.'.format(lugar.get_label()))

        puntos_empate = self.glade.get_object('spinEmpate').get_value()
        puntos_victoria = self.glade.get_object('spinbutton4').get_value()
        puntos_presentarse = self.glade.get_object('spinbutton5').get_value()
        permitir_empate = self.glade.get_object('empate').get_active()

        if puntos_empate >= puntos_victoria and permitir_empate:
            mensaje_errores.append('La cantidad de puntos por ganar debe ser mayor que la cantidad de puntos por empate.')
        if puntos_presentarse > puntos_victoria:
            mensaje_errores.append('La cantidad de puntos por presentarse no puede superar la de un partido ganado.')
        if not puntos_victoria:
            mensaje_errores.append('La cantidad de puntos por ganar no puede ser 0.')

        datos_lugares = [
            {'id_lugar':lugar.id, 'nombre':lugar.nombre, 'disponibilidad':lugar.get_disponibilidad(),
             'descripcion':None}
            for lugar in self.glade.get_object('lugares').get_children() if lugar.get_active()
            ]
        if not datos_lugares:
            mensaje_errores.append('Debe seleccionar al menos un lugar para la competencia.')

        if mensaje_errores:
            self.mostrar_error(*mensaje_errores)
            return

        modalidades = self.glade.get_object('liga').get_group()
        modalidad = None
        for boton in modalidades:
            if boton.get_active():
                modalidad = gtk.Buildable.get_name(boton)
                break

        puntuaciones = self.glade.get_object('porsets').get_group()
        puntuacion = None
        for boton in puntuaciones:
            if boton.get_active():
                puntuacion = gtk.Buildable.get_name(boton)

        cantidad_sets = self.glade.get_object('spinbutton1').get_value()
        tantos_presentismo = self.glade.get_object('spinbutton2').get_value()
        text_buffer = self.glade.get_object("textview1").get_buffer()
        reglamento = text_buffer.get_text(text_buffer.get_start_iter(), text_buffer.get_end_iter())

        lugares = [DTOLugar(**datos) for datos in datos_lugares]

        dto = DTOCompetencia(None, nombre, puntuacion, 'Creada', reglamento, self.id_usuario, None, modalidad,
                             cantidad_sets, puntos_presentarse, puntos_victoria, puntos_empate, deporte,
                             lugares, tantos_presentismo, permitir_empate)

        try:
            exito = GestorCompetencia.get_instance().nueva_competencia(dto)
            if exito is 1:
                Exito(self)
        except NombreExistente:
            self.mostrar_error('Ya existe una competencia con ese nombre.')