Ejemplo n.º 1
0
    def nueva_competencia(self, dto):
        from gestorusuario import GestorUsuario
        from gestorlugar import GestorLugar

        lista_competencias = GestorBaseDeDatos.get_instance().listar_competencias()
        deporte = GestorBaseDeDatos.get_instance().listar_deportes(nombre = dto.deporte)
        lista_sedes = []
        for DTOLugares in dto.lugares:
            lugar = GestorLugar.get_instance().listar_lugar(id_lugar = DTOLugares.id)
            sede = Sede(lugar=lugar, disponibilidad=DTOLugares.disponibilidad)
            lista_sedes.append(sede)
        for competencias in lista_competencias:
            if dto.nombre == competencias.nombre:
                raise NombreExistente('Ya existe ese nombre de competencia en la base de datos.')
        if dto.tipo == 'eliminatoriasimple':
            competencia_new = CompetenciaEliminatoriaSimple(nombre=dto.nombre, tipo_puntuacion=dto.tipo_puntuacion,
                                            cantidad_de_sets=dto.cantidad_de_sets, reglamento=dto.reglamento,
                                            estado='Creada', tantos_presentismo=dto.tantos_presentismo,
                                            sedes=lista_sedes, deporte=deporte)
        elif dto.tipo == 'eliminatoriadoble':
            competencia_new = CompetenciaEliminatoriaDoble(nombre=dto.nombre, tipo_puntuacion=dto.tipo_puntuacion,
                                            cantidad_de_sets=dto.cantidad_de_sets, reglamento=dto.reglamento,
                                            estado='Creada', tantos_presentismo=dto.tantos_presentismo,
                                            sedes=lista_sedes, deporte=deporte)
        else:
            competencia_new = CompetenciaLiga(nombre=dto.nombre, tipo_puntuacion=dto.tipo_puntuacion,
                                             cantidad_de_sets=dto.cantidad_de_sets, reglamento=dto.reglamento,
                                             estado='Creada', tantos_presentismo=dto.tantos_presentismo,
                                             sedes=lista_sedes,
                                             puntos_por_presentarse=dto.puntos_por_presentarse,
                                             puntos_por_ganar=dto.puntos_por_ganar,
                                             puntos_por_empate=dto.puntos_por_empate, deporte = deporte,
                                             permitir_empate=dto.permitir_empate)
        GestorUsuario.get_instance().agregar_competencia(dto.id_usuario, competencia_new)
        return 1
Ejemplo n.º 2
0
    def listar_competencias(self, id_competencia = None, nombre=None, id_usuario = None, deporte = None,
                            modalidad = None, estado = None):
        """Realiza la correspondiente busqueda de competencias, devuelve una lista de DTOs Competencias"""
        from gestorusuario import GestorUsuario

        lista_dtos = []
        if id_competencia is not None:
            competencia = GestorBaseDeDatos.get_instance().listar_competencias(id_competencia=id_competencia)
            usuario = GestorUsuario.get_instance().obtener_usuario(competencia.id_usuario)
            if competencia.tipo =='eliminatoriasimple' or competencia.tipo =='eliminatoriadoble':
                lista_dtos.append(DTOCompetencia(competencia.id, competencia.nombre, competencia.tipo_puntuacion,
                                                 competencia.estado, competencia.reglamento, competencia.id_usuario,
                                                 usuario.nombre, competencia.tipo, competencia.cantidad_de_sets,
                                                 None, None, None, competencia.deporte.nombre, None,
                                                 competencia.tantos_presentismo, None))
            else:
                lista_dtos.append(DTOCompetencia(competencia.id, competencia.nombre, competencia.tipo_puntuacion,
                                                 competencia.estado, competencia.reglamento, competencia.id_usuario,
                                                 usuario.nombre, competencia.tipo, competencia.cantidad_de_sets,
                                                 competencia.puntos_por_presentarse, competencia.puntos_por_ganar,
                                                 competencia.puntos_por_empate, competencia.deporte.nombre, None,
                                                 competencia.tantos_presentismo, competencia.permitir_empate))
        else:
            lista_competencias = GestorBaseDeDatos.get_instance().listar_competencias(nombre=nombre,
                                                                                      id_usuario=id_usuario,
                                                                                      deporte=deporte,
                                                                                      modalidad=modalidad,
                                                                                      estado=estado)
            for competencia in lista_competencias:
                usuario = GestorUsuario.get_instance().obtener_usuario(competencia.id_usuario)
                if competencia.tipo == 'eliminatoriasimple' or competencia.tipo == 'eliminatoriadoble':
                    lista_dtos.append(DTOCompetencia(competencia.id, competencia.nombre, competencia.tipo_puntuacion,
                                                     competencia.estado, competencia.reglamento,
                                                     competencia.id_usuario, usuario.nombre, competencia.tipo,
                                                     competencia.cantidad_de_sets, None, None, None,
                                                     competencia.deporte.nombre, None, competencia.tantos_presentismo,
                                                     None))
                else:
                    lista_dtos.append(DTOCompetencia(competencia.id, competencia.nombre, competencia.tipo_puntuacion,
                                                     competencia.estado, competencia.reglamento, competencia.id_usuario,
                                                     usuario.nombre, competencia.tipo, competencia.cantidad_de_sets,
                                                     competencia.puntos_por_presentarse, competencia.puntos_por_ganar,
                                                     competencia.puntos_por_empate, competencia.deporte.nombre, None,
                                                     competencia.tantos_presentismo, competencia.permitir_empate))
        return lista_dtos