|
|
|
@ -229,6 +229,8 @@ def solar_register_post():
|
|
|
|
|
user_id = portal.solar.register_new_user(name, email, password, active=False)
|
|
|
|
|
portal.solar.add_user_to_institution(user_id, institution_id, institution_role)
|
|
|
|
|
|
|
|
|
|
portal.solar.add_cooperation_history_item(user_id, institution_id, institution_role)
|
|
|
|
|
|
|
|
|
|
portal.solar.send_admins_new_user_notification_mail(user_id, upload_handler_solar.config)
|
|
|
|
|
|
|
|
|
|
flash('Podatki so bili poslani v potrditev. Ko bo registracija potrjena, boste o tem obveščeni po e-mailu.')
|
|
|
|
@ -311,6 +313,7 @@ def solar(text):
|
|
|
|
|
show_upload_form = True
|
|
|
|
|
contract_school = portal.solar.get_institution_contract(current_user_institution.id)
|
|
|
|
|
cooperation_history = portal.solar.get_institution_cooperation_history(current_user_institution.id)
|
|
|
|
|
|
|
|
|
|
institution_id = current_user_institution.id
|
|
|
|
|
if portal.solar.is_institution_coordinator(current_user_obj.id, current_user_institution.id):
|
|
|
|
|
contracts_students = portal.solar.get_institution_student_contracts(current_user_institution.id)
|
|
|
|
@ -331,17 +334,24 @@ def solar(text):
|
|
|
|
|
users = portal.solar.get_all_users_join_institutions()
|
|
|
|
|
inactive_users = portal.solar.get_all_users_join_institutions(active=False)
|
|
|
|
|
solar_institutions = portal.solar.get_all_institutions()
|
|
|
|
|
cooperation_history = portal.solar.get_cooperation_history()
|
|
|
|
|
uploads = portal.solar.get_all_upload_history(-1)
|
|
|
|
|
if is_admin:
|
|
|
|
|
return render_template('solar-admin.html', users=users, user_cooperation_history=cooperation_history,
|
|
|
|
|
return render_template('solar-admin.html', users=users,
|
|
|
|
|
institutions=solar_institutions, inactive_users=inactive_users, uploads=uploads)
|
|
|
|
|
elif text.startswith('manage-institution/') or text == 'manage-institution':
|
|
|
|
|
if portal.solar.is_institution_coordinator(current_user.id, current_user_institution.id):
|
|
|
|
|
solar_users = portal.solar.get_all_active_users()
|
|
|
|
|
institution_users = portal.solar.get_all_active_institution_users(current_user_institution.id)
|
|
|
|
|
return render_template('solar-manage-institution.html', users=solar_users,
|
|
|
|
|
institution_users=institution_users)
|
|
|
|
|
|
|
|
|
|
role_map = dict()
|
|
|
|
|
for institution_user in institution_users:
|
|
|
|
|
role_map[institution_user.id] = portal.solar.get_user_institution_role_str(institution_user.id, current_user_institution.id)
|
|
|
|
|
|
|
|
|
|
return render_template('solar-manage-institution.html',
|
|
|
|
|
institution=current_user_institution,
|
|
|
|
|
users=solar_users,
|
|
|
|
|
institution_users=institution_users,
|
|
|
|
|
role_map=role_map)
|
|
|
|
|
return '', 404
|
|
|
|
|
|
|
|
|
|
@app.route('/pogodbe', methods=['POST'])
|
|
|
|
@ -547,41 +557,41 @@ def merge_institutions():
|
|
|
|
|
flash('Instituciji uspešno združeni')
|
|
|
|
|
return redirect(redirect_url())
|
|
|
|
|
|
|
|
|
|
@app.route('/addcooperationhistoryitem', methods=['POST'])
|
|
|
|
|
@login_required
|
|
|
|
|
def add_cooperation_history_item():
|
|
|
|
|
if not portal.solar.is_admin(current_user.id):
|
|
|
|
|
return '', 404
|
|
|
|
|
|
|
|
|
|
user_id = request.form.get('user')
|
|
|
|
|
institution_id = request.form.get('institution')
|
|
|
|
|
role = request.form.get('role')
|
|
|
|
|
school_year = request.form.get('school-year')
|
|
|
|
|
badge_text = request.form.get('badge-text')
|
|
|
|
|
|
|
|
|
|
user = portal.solar.get_user_obj(user_id)
|
|
|
|
|
institution = portal.solar.get_institution_obj(institution_id)
|
|
|
|
|
|
|
|
|
|
if not user:
|
|
|
|
|
flash('Uporabnik s tem ID-jem ne obstaja.')
|
|
|
|
|
return redirect(redirect_url())
|
|
|
|
|
|
|
|
|
|
if not institution:
|
|
|
|
|
flash('Institucija s tem ID-jem ne obstaja.')
|
|
|
|
|
return redirect(redirect_url())
|
|
|
|
|
|
|
|
|
|
if not role in ['coordinator', 'mentor', 'other']:
|
|
|
|
|
flash('Neveljavna vloga "{}".'.format(role))
|
|
|
|
|
return redirect(redirect_url())
|
|
|
|
|
|
|
|
|
|
if not school_year or not re.match('[0-9]{4}/[0-9]{2}', school_year):
|
|
|
|
|
flash('Šolsko leto mora biti formata "2021/22".')
|
|
|
|
|
return redirect(redirect_url())
|
|
|
|
|
|
|
|
|
|
portal.solar.add_cooperation_history_item(user_id, institution_id, role, school_year, badge_text)
|
|
|
|
|
|
|
|
|
|
flash('Vnos dodan.')
|
|
|
|
|
return redirect(redirect_url())
|
|
|
|
|
#@app.route('/addcooperationhistoryitem', methods=['POST'])
|
|
|
|
|
#@login_required
|
|
|
|
|
#def add_cooperation_history_item():
|
|
|
|
|
# if not portal.solar.is_admin(current_user.id):
|
|
|
|
|
# return '', 404
|
|
|
|
|
#
|
|
|
|
|
# user_id = request.form.get('user')
|
|
|
|
|
# institution_id = request.form.get('institution')
|
|
|
|
|
# role = request.form.get('role')
|
|
|
|
|
# school_year = request.form.get('school-year')
|
|
|
|
|
# badge_text = request.form.get('badge-text')
|
|
|
|
|
#
|
|
|
|
|
# user = portal.solar.get_user_obj(user_id)
|
|
|
|
|
# institution = portal.solar.get_institution_obj(institution_id)
|
|
|
|
|
#
|
|
|
|
|
# if not user:
|
|
|
|
|
# flash('Uporabnik s tem ID-jem ne obstaja.')
|
|
|
|
|
# return redirect(redirect_url())
|
|
|
|
|
#
|
|
|
|
|
# if not institution:
|
|
|
|
|
# flash('Institucija s tem ID-jem ne obstaja.')
|
|
|
|
|
# return redirect(redirect_url())
|
|
|
|
|
#
|
|
|
|
|
# if not role in ['coordinator', 'mentor', 'other']:
|
|
|
|
|
# flash('Neveljavna vloga "{}".'.format(role))
|
|
|
|
|
# return redirect(redirect_url())
|
|
|
|
|
#
|
|
|
|
|
# if not school_year or not re.match('[0-9]{4}/[0-9]{2}', school_year):
|
|
|
|
|
# flash('Šolsko leto mora biti formata "2021/22".')
|
|
|
|
|
# return redirect(redirect_url())
|
|
|
|
|
#
|
|
|
|
|
# portal.solar.add_cooperation_history_item(user_id, institution_id, role, school_year, badge_text)
|
|
|
|
|
#
|
|
|
|
|
# flash('Vnos dodan.')
|
|
|
|
|
# return redirect(redirect_url())
|
|
|
|
|
|
|
|
|
|
@app.route('/updateuploaditem', methods=['POST'])
|
|
|
|
|
@login_required
|
|
|
|
@ -622,17 +632,17 @@ def update_upload_item():
|
|
|
|
|
return redirect(redirect_url())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/delcooperationhistoryitem', methods=['POST'])
|
|
|
|
|
@login_required
|
|
|
|
|
def del_cooperation_history_item():
|
|
|
|
|
if not portal.solar.is_admin(current_user.id):
|
|
|
|
|
return '', 404
|
|
|
|
|
|
|
|
|
|
entry_id = request.form.get('entry-id')
|
|
|
|
|
portal.solar.del_cooperation_history_item(entry_id)
|
|
|
|
|
|
|
|
|
|
flash('Vnos odstranjen.')
|
|
|
|
|
return redirect(redirect_url())
|
|
|
|
|
#@app.route('/delcooperationhistoryitem', methods=['POST'])
|
|
|
|
|
#@login_required
|
|
|
|
|
#def del_cooperation_history_item():
|
|
|
|
|
# if not portal.solar.is_admin(current_user.id):
|
|
|
|
|
# return '', 404
|
|
|
|
|
#
|
|
|
|
|
# entry_id = request.form.get('entry-id')
|
|
|
|
|
# portal.solar.del_cooperation_history_item(entry_id)
|
|
|
|
|
#
|
|
|
|
|
# flash('Vnos odstranjen.')
|
|
|
|
|
# return redirect(redirect_url())
|
|
|
|
|
|
|
|
|
|
@app.route('/changeinstitutiondata', methods=['POST'])
|
|
|
|
|
@login_required
|
|
|
|
@ -678,13 +688,11 @@ def change_user_email():
|
|
|
|
|
flash('Email spremenjen.')
|
|
|
|
|
return redirect(redirect_url())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/changeuserrole', methods=['POST'])
|
|
|
|
|
@app.route('/changeuserrole-institution', methods=['POST'])
|
|
|
|
|
@login_required
|
|
|
|
|
def change_user_role():
|
|
|
|
|
def change_user_role_institution():
|
|
|
|
|
institution = portal.solar.get_user_institution(current_user.id)
|
|
|
|
|
if not portal.solar.is_admin(current_user.id):
|
|
|
|
|
|
|
|
|
|
# Institution coordinators can only assign roles of users in their own
|
|
|
|
|
# institution.
|
|
|
|
|
if institution and portal.solar.is_institution_coordinator(current_user.id, institution.id):
|
|
|
|
@ -695,6 +703,27 @@ def change_user_role():
|
|
|
|
|
user_id = request.form.get('user-id')
|
|
|
|
|
role = request.form.get('role')
|
|
|
|
|
|
|
|
|
|
if role not in ['coordinator', 'mentor', 'other']:
|
|
|
|
|
flash('Neveljavna vloga.')
|
|
|
|
|
return redirect(redirect_url())
|
|
|
|
|
|
|
|
|
|
portal.solar.update_user_institution_role(user_id, institution.id, role)
|
|
|
|
|
portal.solar.add_cooperation_history_item(user_id, institution.id, role)
|
|
|
|
|
|
|
|
|
|
flash('Vloga v instituciji spremenjena.')
|
|
|
|
|
return redirect(redirect_url())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/changeuserrole', methods=['POST'])
|
|
|
|
|
@login_required
|
|
|
|
|
def change_user_role():
|
|
|
|
|
institution = portal.solar.get_user_institution(current_user.id)
|
|
|
|
|
if not portal.solar.is_admin(current_user.id):
|
|
|
|
|
return '', 404
|
|
|
|
|
|
|
|
|
|
user_id = request.form.get('user-id')
|
|
|
|
|
role = request.form.get('role')
|
|
|
|
|
|
|
|
|
|
if not role in ['admin', 'user']:
|
|
|
|
|
flash('Neveljavna vloga.')
|
|
|
|
|
return redirect(redirect_url())
|
|
|
|
@ -740,6 +769,7 @@ def add_user_institution_mapping():
|
|
|
|
|
return redirect(redirect_url())
|
|
|
|
|
|
|
|
|
|
portal.solar.add_user_to_institution(user_id, institution_id, role)
|
|
|
|
|
portal.solar.add_cooperation_history_item(user_id, institution_id, role)
|
|
|
|
|
flash('Uporabnik je bil dodeljen instituciji.')
|
|
|
|
|
return redirect(redirect_url())
|
|
|
|
|
|
|
|
|
|