SELECT(*years, _name='year', _id='year',
requires=IS_INT_IN_RANGE(request.now.year - 1, request.now.year + 1,
error_message="Year isn't correct!'"),
_class='form-control', **{'_v-model': 'year'})
def my_func():
form = FORM(DIV(DIV(LABEL('Год:', _for='year'),
SELECT(*years, _name='year', _id='year',
requires=IS_INT_IN_RANGE(request.now.year - 1, request.now.year + 1,
error_message='Указан некорректный год!'),
_class='form-control', **{'_v-model': 'year'}),
_class='col-sm-12 col-md-4 col-lg-3'), _class='form-group row'))
return dict(form=form)
XML(SELECT(*years, _name='year', _id='year', _class='form-control', requires=IS_INT_IN_RANGE(request.now.year - 1, request.now.year + 1, error_message="Year isn't correct!"), **{'_v-model': 'year'}).xml())
@auth.requires_login()
def egisso_load():
def get_help_id(name):
result = None
if len(name) > 5:
try:
result = int(name[5:])
except:
return result
return result
helps_statuses = db().select(db.s_helps_statuses.id, db.s_helps_statuses.name,
cache=(cache.ram, 3600), cacheable=True)
helps_types = db(db.s_helps_types.active == 1).select(
db.s_helps_types.id, db.s_helps_types.name, orderby=db.s_helps_types.id, cache=(cache.ram, 3600),
cacheable=True)
years = [OPTION(request.now.year, _value=request.now.year),
OPTION(request.now.year - 1, _value=request.now.year - 1)]
message = ''
form = FORM(DIV(DIV(LABEL('Год:', _for='year'),
SELECT(*years, _name='year', _id='year', _class='form-control',
requires=IS_INT_IN_RANGE(request.now.year - 1, request.now.year + 1,
error_message="Year isn't correct!"),
**{'_v-model': 'year'}, **{"'v-test'": "test"}),
_class='col-sm-12 col-md-4 col-lg-3'),
DIV(LABEL('Месяц:', _for='month'),
SELECT(
OPTION('Январь', _value=1),
OPTION('Февраль', _value=2),
OPTION('Март', _value=3),
OPTION('Апрель', _value=4),
OPTION('Май', _value=5),
OPTION('Июнь', _value=6),
OPTION('Июль', _value=7),
OPTION('Август', _value=8),
OPTION('Сентябрь', _value=9),
OPTION('Октябрь', _value=10),
OPTION('Ноябрь', _value=11),
OPTION('Декабрь', _value=12),
requires=IS_INT_IN_RANGE(1, 13, error_message='Указан некорректный месяц!'),
_name='month', _id='month', _class='form-control'),
_class='col-sm-12 col-md-4 col-lg-3'),
_class='form-group row'),
DIV(DIV(P('Виды выплат:', _class='lead mb-0'), _class='col'), _class='form-group row'),
DIV(DIV(INPUT(_type='checkbox', _name='chb', _id='chb', **{'_v-model': 'chb'},
_class='form-check-input'),
LABEL('Отметить всё как загруженное:', _for='chb', _class='form-check-label'),
_class='form-check'), _class='form-group'))
helps_statuses_list = list()
for row in helps_statuses:
helps_statuses_list.append(OPTION(row.name, _value=row.id))
helps_statuses_list.insert(0, OPTION(''))
columns_list = list()
for row in helps_types:
columns_list.append(DIV(LABEL(row.name, _for=f'help_{row.id}'),
SELECT(*helps_statuses_list, _id=f'help_{row.id}',
_name=f'help_{row.id}', _class='form-control',
requires=IS_IN_DB(db, 's_helps_statuses.id',
error_message='Выберите значение!')),
_class='col-sm-12 col-md-4 col-lg-3 pb-3'))
form.append(DIV(*columns_list, _class='form-group row', _id='helps_type_row'))
form.append(DIV(DIV(INPUT(_type='submit', _class='btn btn-dark w-100'), _class='col-sm col-md-4 col-lg-3'),
_class='form-group row'))
if form.process().accepted:
for x in form.vars:
if x not in ('year', 'month', 'chb'):
help_id = get_help_id(x)
if help_id is not None:
db.a_egisso_and_divisions.update_or_insert(
(db.a_egisso_and_divisions.division == auth.user.division) &
(db.a_egisso_and_divisions.year == form.vars.year) &
(db.a_egisso_and_divisions.month == form.vars.month) &
(db.a_egisso_and_divisions.helps_type == help_id),
division=auth.user.division, helps_type=help_id, year=form.vars.year,
month=form.vars.month, status=form.vars[x])
else:
message = f'Из ключа {x} не может быть извлечено значение идентификатора!'
return dict(form=form, message=message)
let year = document.getElementById('year');
let month = document.getElementById('month');
year.setAttribute("v-model", "year");
month.setAttribute("v-model", "month");