Example #1
0
def deleteCity(cityid):
    # Удаление текущей записи в БД
    if session['demo']:
        pass
    else:
        # Ограничение по внешнему ключу FK_School_City 
        # не позволяет удалить населённый пункт при наличии связанных с ним спортивных школ.
        try:
            City.get(city_ID = cityid).delete_instance()
        except IntegrityError:
            flash('Вы не можете удалить этот город, пока в него добавлена хотя бы одна спортивная школа', 'danger')

    # Редирект на вид list
    return redirect(
        url_for('listCity'))
Example #2
0
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)
Example #3
0
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)