def listSchool(cityid): # Список городов, название текущего города listCity = City.select().order_by(City.cityName) try: cityname = City.get(city_ID = cityid).cityName except DoesNotExist: cityname = None # Список школ и количества их дочерних команд listSchool = School.select(School, fn.Count(Team.school_ID).alias('countTeams')).join(Team, JOIN_LEFT_OUTER).switch(School).join(City).where(City.city_ID == cityid).group_by(School).order_by(School.schoolName) # Переменные для автозаполнения модальной формы добавления/обновления данных в JS-скрипте шаблона ## Список полей modifyFields = ['schoolName', 'cityName'] ## Заголовки модального окна createHeader = ['"Создать новую спортивную школу"'] updateHeader = ['"Изменить "', 'schoolName', '" ("', 'cityName', '")"'] ## Действия формы createAction = ['"/city/"', cityid, '"/school/create"'] updateAction = ['"/city/"', cityid, '"/school/"', 'PK_ID', '"/update"'] deleteAction = ['"/city/"', cityid, '"/school/"', 'PK_ID', '"/delete"'] # Вывод шаблона return render_template( 'School.jinja.html', listCity = listCity, cityid = cityid, cityname = cityname, listSchool = listSchool, modifyFields = modifyFields, createHeader = createHeader, updateHeader = updateHeader, createAction = createAction, updateAction = updateAction, deleteAction = deleteAction)
def listTeam(cityid, schoolid): # Список городов и их дочерних школ, название текущего города и школы listCity = City.select().order_by(City.cityName) listSchool = School.select().join(City).where(City.city_ID == cityid).order_by(School.schoolName) try: cityname = City.get(city_ID = cityid).cityName schoolname = School.get(school_ID = schoolid).schoolName except DoesNotExist: cityname = None schoolname = None # Список команд в выбранной школе listTeam = Team.select().join(School).where(School.school_ID == schoolid).join(City).where(City.city_ID == cityid).switch(Team).join(Age).order_by(Team.teamName) for lt in listTeam: lt.age_ID.ageName = int(date.today().year) - int(lt.age_ID.ageName) # Список возрастов по состоянию на текущий год listAge = Age.select().order_by(Age.ageName) for age in listAge: age.ageName = int(date.today().year) - int(age.ageName) # Переменные для автозаполнения модальной формы добавления/обновления данных в JS-скрипте шаблона ## Список полей modifyFields = ['teamName', 'filterAge', 'ageName'] ## Список групп радиокнопок modifyRadios = ['filterAge'] ## Заголовки модального окна createHeader = ['"Создать новую юношескую команду"'] updateHeader = ['"Изменить "', 'teamName', '" (возраст "', 'ageName', '")"'] ## Действия формы createAction = ['"/city/"', cityid, '"/school/"', schoolid, '"/team/create"'] updateAction = ['"/city/"', cityid, '"/school/"', schoolid, '"/team/"', 'PK_ID', '"/update"'] deleteAction = ['"/city/"', cityid, '"/school/"', schoolid, '"/team/"', 'PK_ID', '"/delete"'] # Вывод шаблона return render_template( 'Team.jinja.html', listCity = listCity, cityid = cityid, cityname = cityname, listSchool = listSchool, schoolid = schoolid, schoolname = schoolname, listTeam = listTeam, listAge = listAge, modifyFields = modifyFields, modifyRadios = modifyRadios, createHeader = createHeader, updateHeader = updateHeader, createAction = createAction, updateAction = updateAction, deleteAction = deleteAction)
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)