Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions db.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ class User(db.Model):
is_admin = db.Column(db.Boolean, default=False)
is_teacher = db.Column(db.Boolean, default=False)
active = db.Column(db.Boolean, default=True)
thesis_joker = db.Column(db.Boolean, default=False)
travel_joker = db.Column(db.Boolean, default=False)
organization_id = db.Column(db.Integer, db.ForeignKey('organization.id'))

organization = db.relationship('Organization', back_populates='users')
Expand Down
40 changes: 31 additions & 9 deletions templates/user_profile.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@
{% block pagecontent %}
<div class="container-fluid">
<div class="row">
<div class="col-sm-12">
<br>
<div class="col-sm-12 m-2">
<h1>{{ requested_user.first_name }} {{ requested_user.name }}</h1>
<hr>
</div>
Expand All @@ -33,15 +32,15 @@ <h1>{{ requested_user.first_name }} {{ requested_user.name }}</h1>
<div class="tab-content">
<div class="tab-pane active" id="profile">
<div class="row">
<div class="col-sm-12">
<div class="col-sm-12 mb-3 ms-3">
<br>
<h2>Your informations</h2>
</div>
</div>
<form class="form" action="{{ url_for('user.update_user_profile', user_id=requested_user.id) }}" method="post"
id="profileForm">
<div class="row">
<div class="col-sm-6 col-md-6">
<div class="row ms-1">
<div class="col-4 me-5">
<dl>
<dt>First name</dt>
<dd>
Expand Down Expand Up @@ -76,7 +75,7 @@ <h2>Your informations</h2>
</dd>
</dl>
</div>
<div class="col-sm-6 col-md-6">
<div class="col-auto me-5">
<dl>
<dt>Status</dt>
<dd>
Expand Down Expand Up @@ -127,7 +126,7 @@ <h2>Your informations</h2>
</select>
</dd>
</div>
<div class="col-2" id="max_load_display">
<div class="col" id="max_load_display">
<dt>Max load</dt>
<dd>
<input type="text" class="form-control" id="max_load" name="max_load"
Expand All @@ -137,9 +136,32 @@ <h2>Your informations</h2>
</div>
</dl>
</div>
<div class="col-auto">
<dl>
<dt>Jokers</dt>
<dd>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="thesis_joker"
name="thesis_joker"
{% if requested_user.thesis_joker %}checked{% endif %}
{% if not session.is_admin %}
disabled {% endif %}>
<label class="form-check-label" for="thesis_joker">Thesis joker</label>
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="travel_joker"
name="travel_joker"
{% if requested_user.travel_joker %}checked{% endif %}
{% if not session.is_admin %}
disabled {% endif %}>
<label class="form-check-label" for="travel_joker">Travel joker</label>
</div>
</dd>
</dl>
</div>
<br>
<div class="row">
<div class="col-sm-12">
<div class="row mt-3">
<div class="col">
<button type="submit" class="btn btn-primary" form="profileForm">Save</button>
</div>
</div>
Expand Down
7 changes: 5 additions & 2 deletions user.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ def create_researcher(user_id, researcher_type, max_loads):
db.session.commit()
return new_researcher


def get_researchers():
return db.session.query(User).join(Researcher).filter(User.active == True).all()

Expand Down Expand Up @@ -126,7 +125,7 @@ def is_allowed_user(user_id):

@user_bp.route('/profile/<int:user_id>')
@login_required
def user_profile(user_id, ):
def user_profile(user_id):
current_year = get_current_year()
if not is_allowed_user(user_id):
flash("Permission denied. You do not have access to this page.", "error")
Expand Down Expand Up @@ -213,6 +212,8 @@ def update_user_profile(user_id):
supervisor_ids = request.form.getlist('supervisor[]') if is_researcher else None
researcher_type = request.form['researcher_type'] if is_researcher else None
max_loads = request.form['max_load'] if is_researcher else None
thesis_joker = True if 'thesis_joker' in request.form else False
travel_joker = True if 'travel_joker' in request.form else False

user = db.session.query(User).filter(User.id == user_id).first()
researcher = db.session.query(Researcher).filter(Researcher.user_id == user.id).first()
Expand All @@ -227,6 +228,8 @@ def update_user_profile(user_id):
user.organization_id = organization_code
user.is_admin = is_admin
user.is_teacher = is_teacher
user.thesis_joker = thesis_joker
user.travel_joker = travel_joker
if is_researcher:
if researcher is None:
create_researcher(user.id, researcher_type, max_loads)
Expand Down