Example #1
0
def listSR(seasonid_from, seasonid_to):
    # Список сезонов /* и возрастов по состоянию на текущий год, название начального и конечного сезонов */ и возраста
    listSeason = Season.select().order_by(Season.seasonName)
    # listAge    = Age.select().order_by(Age.ageName)
    # for age in listAge:
    #     age.ageName = int(date.today().year) - int(age.ageName)
    try:
        seasonname_from = Season.get(season_ID = seasonid_from).seasonName
        seasonname_to   = Season.get(season_ID = seasonid_to).seasonName
        # agename         = Age.get(age_ID = ageid).ageName
    except DoesNotExist:
        seasonname_from = None
        seasonname_to   = None
        # agename         = None

    # Список позиций рейтинга спортивных школ и их количество
    listSR = schoolRating.select().where(schoolRating.season_ID.between(seasonid_from, seasonid_to))
    listSR_count = listSR.count()

    # Вывод шаблона
    return render_template(
        'schoolRating.jinja.html', 
        listSeason    = listSeason, 
        seasonid_from = seasonid_from, 
        seasonid_to   = seasonid_to, 
        # listAge       = listAge, 
        # ageid         = ageid, 
        listSR        = listSR,
        listSR_count  = listSR_count)
Example #2
0
def listTR(seasonid_from, seasonid_to, ageid):
    # Список сезонов и возрастов по состоянию на текущий год, название начального и конечного сезонов и возраста
    listSeason = Season.select().order_by(Season.seasonName)
    listAge    = Age.select().order_by(Age.ageName)
    for age in listAge:
        age.ageName = int(date.today().year) - int(age.ageName)
    try:
        seasonname_from = Season.get(season_ID = seasonid_from).seasonName
        seasonname_to   = Season.get(season_ID = seasonid_to).seasonName
        agename         = Age.get(age_ID = ageid).ageName
    except DoesNotExist:
        seasonname_from = None
        seasonname_to   = None
        agename         = None

    # Список позиций рейтинга юношеских команд и их количество
    listTR = teamRating.select().where(teamRating.season_ID.between(seasonid_from, seasonid_to) & teamRating.age_ID == ageid)
    listTR_count = listTR.count()

    # Вывод шаблона
    return render_template(
        'teamRating.jinja.html', 
        listSeason    = listSeason, 
        seasonid_from = seasonid_from, 
        seasonid_to   = seasonid_to, 
        listAge       = listAge, 
        ageid         = ageid, 
        listTR        = listTR,
        listTR_count  = listTR_count)
Example #3
0
def deleteSeason(seasonid):
    # Удаление текущей записи в БД
    if session['demo']:
        pass
    else:
        # Ограничение по внешнему ключу FK_SAS_Season 
        # не позволяет удалить стадию при наличии связанных с ней игровых этапов.
        try:
            Season.get(season_ID = seasonid).delete_instance()
        except IntegrityError:
            flash('Вы не можете удалить этот сезон, пока в нём добавлен хотя бы один игровой этап', 'danger')

    # Редирект на вид list
    return redirect(
        url_for('listSeason'))
Example #4
0
    def merge_episode(episode_info):

        # Split the name
        path, info = episode_info
        show_name = info['series'].lower()
        parsed_season = info['season']
        parsed_episode = info['episodeNumber']

        try:
            show = Show.get(Show.name == show_name)
        except DoesNotExist:
            # Show does not exist yet
            show = Show.create(name=show_name)
            season = Season.create(show=show, season_number=parsed_season)
            Episode.create(season=season, episode_number=parsed_episode, path=path, added_time=datetime.datetime.now())
            print('Merged "' + show.name + '" season ' + str(parsed_season) + ' episode ' + str(parsed_episode))
        else:
            try:
                season = Season.get(Season.show == show, Season.season_number == parsed_season)
            except DoesNotExist:
                # Season did not exist yet
                season = Season.create(show=show, season_number=parsed_season)
                Episode.create(season=season, episode_number=parsed_episode, path=path,
                               added_time=datetime.datetime.now())
                print('Merged "' + show.name + '" season ' + str(parsed_season) + ' episode ' + str(parsed_episode))
            else:
                try:
                    Episode.get(Episode.season == season, Episode.episode_number == parsed_episode)
                except DoesNotExist:
                    Episode.create(season=season, episode_number=parsed_episode, path=path,
                                   added_time=datetime.datetime.now())
                    print('Merged "' + show.name + '" season ' + str(parsed_season) + ' episode ' + str(parsed_episode))
Example #5
0
def listSAS(seasonid, ageid):
    # Список сезонов и возрастов по состоянию на текущий год, название текущего сезона и возраста
    listSeason = Season.select().order_by(Season.season_ID.asc())
    listAge    = Age.select().order_by(Age.ageName)
    for age in listAge:
        age.ageName = int(date.today().year) - int(age.ageName)
    try:
        seasonname = Season.get(season_ID = seasonid).seasonName
        agename    = Age.get(age_ID = ageid).ageName
    except DoesNotExist:
        seasonname = None
        agename    = None

    # Список игровых стадий
    listStage    = Stage.select().order_by(Stage.stageType, Stage.stageName)
    # Список типов соревноавний
    listGameType = GameType.select().order_by(GameType.gameTypeName)
    # Список игровых этапов с количеством дочерних команд и матчей
    listSAS = (RawQuery(SAS, 
        'SELECT `SAS`.*, (SELECT COUNT(`SAST2`.`SAS_ID`) FROM `SeasonAgeStageTeam` AS `SAST2` WHERE `SAST2`.`SAS_ID` = `SAS`.`SAS_ID`) AS `countSAST`, (SELECT COUNT(`GP2`.`SAS_ID`) FROM `GameProtocol` AS `GP2` WHERE ((`GP2`.`SAS_ID` = `SAST`.`SAS_ID`) AND (`SAST`.`SAS_ID` = `SAS`.`SAS_ID` ))) AS `countGP` FROM `SeasonAgeStage` AS `SAS` LEFT JOIN `SeasonAgeStageTeam` AS `SAST` ON (`SAS`.`SAS_ID` = `SAST`.`SAS_ID`) LEFT JOIN `Stage` ON (`SAS`.`stage_ID` = `Stage`.`stage_ID`) WHERE ((`SAS`.`season_ID` = %s) AND (`SAS`.`age_ID` = %s)) GROUP BY `SAS`.`SAS_ID` ORDER BY `SAS`.`SAS_ID` ASC', seasonid, ageid))

    # Переменные для автозаполнения формы добавления/обновления данных в JS-скрипте шаблона
    ## Список полей
    modifyFields = ['stage', 'zoneGroupPlayoffToggle', 'gameType', 'startDate', 'finishDate']
    ## Список групп радиокнопок
    modifyRadios = ['zoneGroupPlayoffToggle', 'gameType']
    ## Список выпадающих списков
    modifySelect = ['stage']   
    ## Заголовки модального окна
    createHeader = ['"Создать новую игровую стадию"']
    updateHeader = ['"Изменить игровую стадию для возраста "', agename, '" в сезоне "', seasonname]
    ## Действия формы
    createAction = ['"/season/"', seasonid, '"/age/"', ageid, '"/stage/create"']
    updateAction = ['"/season/"', seasonid, '"/age/"', ageid, '"/stage/"', 'PK_ID', '"/update"']
    deleteAction = ['"/season/"', seasonid, '"/age/"', ageid, '"/stage/"', 'PK_ID', '"/delete"']

    # Вывод шаблона
    return render_template(
        'SAS.jinja.html', 
        listSeason   = listSeason,
        seasonid     = seasonid,
        seasonname   = seasonname,
        listAge      = listAge,
        ageid        = ageid,
        agename      = agename,
        listStage    = listStage,
        listGameType = listGameType,
        listSAS      = listSAS,
        modifyFields = modifyFields,
        modifyRadios = modifyRadios,
        modifySelect = modifySelect,
        createHeader = createHeader,
        updateHeader = updateHeader,
        createAction = createAction,
        updateAction = updateAction,
        deleteAction = deleteAction)
Example #6
0
def listSAST(seasonid, ageid, sasid):
    # Список сезонов и возрастов по состоянию на текущий год, название текущего сезона и возраста, название и тип игровой стадии текущего игрового этапа
    listSeason = Season.select().order_by(Season.season_ID.asc())
    listAge = Age.select().order_by(Age.ageName)
    for age in listAge:
        age.ageName = int(date.today().year) - int(age.ageName)
    try:
        seasonname = Season.get(season_ID = seasonid).seasonName
        agename    = Age.get(age_ID = ageid).ageName
        sasname    = SAS.get(SAS_ID = sasid).stage_ID.stageName
        sastype    = SAS.get(SAS_ID = sasid).stage_ID.stageType
    except DoesNotExist:
        seasonname = None
        agename    = None
        sasname    = None
        sastype    = None

    # Список игровых этапов по типам
    listSAS_Z = SAS.select().where(SAS.season_ID == seasonid, SAS.age_ID == ageid).join(Stage).where(Stage.stageType == "Z").order_by(Stage.stageName)
    listSAS_G = SAS.select().where(SAS.season_ID == seasonid, SAS.age_ID == ageid).join(Stage).where(Stage.stageType == "G").order_by(Stage.stageName)
    listSAS_P = SAS.select().where(SAS.season_ID == seasonid, SAS.age_ID == ageid).join(Stage).where(Stage.stageType == "P").order_by(Stage.stageName)

    # Список городов, спортивных школ и команд для фильтрации по связанным выпадающим спискам
    filterCity   =   City.select().order_by(City.cityName)
    filterSchool = School.select().order_by(School.schoolName)
    filterTeam   =   Team.select().order_by(Team.teamName)

    # Список команд в текущем игровом этапе
    listSAST  = SAST.select().where(SAST.SAS_ID == sasid).join(Stage, JOIN_LEFT_OUTER).order_by(SAST.SAST_ID)
    # Список игровых стадий
    listStage = Stage.select().order_by(Stage.stageType, Stage.stageName).order_by(Stage.stage_ID)

    # Есть ли в текущем игровом этапе подгруппы
    is_SASTsubstage  = SAST.select().where(SAST.SAS_ID == sasid).join(Stage).exists()
    # Список подгрупп текущего игрового этапа (если они есть)
    listSASTsubstage = SAST.select(SAST.substage_ID).distinct().where(SAST.SAS_ID == sasid).join(Stage, JOIN_LEFT_OUTER)

    # Переменные для автозаполнения формы добавления/обновления данных в JS-скрипте шаблона
    ## Список полей
    modifyFields = ['filterCity', 'filterSchool', 'filterTeam', 'substage_ID', 'stageType', 'stageName']
    ## Список групп радиокнопок
    modifyRadios = ['substage_ID']
    ## Список выпадающих списков
    modifySelect = ['filterCity', 'filterSchool', 'filterTeam']   
    ## Заголовки модального окна
    createHeader = ['"Добавить команду в "', 'stageType', '" "', 'stageName']
    updateHeader = ['"Изменить команду, участвующую в "', 'stageType', '" "', 'stageName']
    ## Действия формы
    createAction = ['"/season/"', seasonid, '"/age/"', ageid, '"/stage/"', sasid, '"/team/create"']
    updateAction = ['"/season/"', seasonid, '"/age/"', ageid, '"/stage/"', sasid, '"/team/"', 'PK_ID', '"/update"']
    deleteAction = ['"/season/"', seasonid, '"/age/"', ageid, '"/stage/"', sasid, '"/team/"', 'PK_ID', '"/delete"']

    # Вывод шаблона
    return render_template(
        'SAST.jinja.html', 
        listSeason       = listSeason,
        seasonid         = seasonid,
        seasonname       = seasonname,
        listAge          = listAge,
        ageid            = ageid,
        agename          = agename,
        listSAS_Z        = listSAS_Z,
        listSAS_G        = listSAS_G,
        listSAS_P        = listSAS_P,
        sasid            = sasid,
        sasname          = sasname,
        sastype          = sastype,
        filterCity       = filterCity,
        filterSchool     = filterSchool,
        filterTeam       = filterTeam,
        listSAST         = listSAST,
        listStage        = listStage,
        is_SASTsubstage  = is_SASTsubstage,
        listSASTsubstage = listSASTsubstage,
        modifyFields     = modifyFields,
        modifyRadios     = modifyRadios,
        modifySelect     = modifySelect,
        createHeader     = createHeader,
        updateHeader     = updateHeader,
        createAction     = createAction,
        updateAction     = updateAction,
        deleteAction     = deleteAction)