diff --git a/app/templates/base.j2 b/app/templates/base.j2
index eace4df9212084b5781ea778dc218605be0e1a82..70462e266936bff60f1aeb7cab51f6c5bf76c9a7 100644
--- a/app/templates/base.j2
+++ b/app/templates/base.j2
@@ -42,6 +42,15 @@
<li><a href="{{ url_for('entreprises.index') }}">Entreprises</a></li>
{% endif %}
</ul>
+ {% if not current_user.is_anonymous %}
+ <ul class="nav navbar-nav">
+ <li>
+ <a href="{{
+ url_for('scodoc.user_board', user_name=current_user.user_name)
+ }}">Tableau de bord</a>
+ </li>
+ </ul>
+ {% endif %}
<ul class="nav navbar-nav navbar-right">
{% if current_user.is_anonymous %}
<li><a href="{{ url_for('auth.login') }}">connexion</a></li>
@@ -92,7 +101,8 @@
<script src="{{scu.STATIC_DIR}}/libjs/qtip/jquery.qtip-3.0.3.min.js"></script>
<script src="{{scu.STATIC_DIR}}/js/scodoc.js"></script>
<script>
- const SCO_URL = "{{ url_for('scolar.index_html', scodoc_dept=g.scodoc_dept)[:-11] }}";
+ const SCO_URL = "{% if g.scodoc_dept %}{{
+ url_for('scolar.index_html', scodoc_dept=g.scodoc_dept)[:-11] }}{% endif %}";
const SCO_TIMEZONE = "{{ scu.TIME_ZONE }}";
</script>
{% endblock %}
\ No newline at end of file
diff --git a/app/templates/user_board/user_board.j2 b/app/templates/user_board/user_board.j2
index 78f18283ce989aea93bcad02913ec6559e846411..5f5dac7ab5e33576b2ae3d4bfe06285f6016a75d 100644
--- a/app/templates/user_board/user_board.j2
+++ b/app/templates/user_board/user_board.j2
@@ -1,6 +1,6 @@
{# Tableau de bord utilisateur #}
-{% extends "sco_page.j2" %}
+{% extends "base.j2" %}
{% block app_content %}
<style>
@@ -63,10 +63,12 @@
</style>
<div class="tab-content">
- <h2>Votre tableau de bord, {{user.get_nomcomplet()}}</h2>
+ <h2>{{user.get_nomcomplet()}}</h2>
{% for dept_id in formsemestres_by_dept %}
- <h3>Modules dans le département {{ dept_names[dept_id] }}</h3>
+ <h3>Modules dans le <a class="stdlink" href="{{
+ url_for('scolar.index_html', scodoc_dept=depts[dept_id].acronym)}}"
+ >département {{ dept_names[dept_id] }}</a></h3>
<div class="ub-formsemestres">
{% for formsemestre in formsemestres_by_dept[dept_id] %}
<div class="ub-formsemestre">
diff --git a/app/views/user_board.py b/app/views/user_board.py
index 9b45ad971831536216a73fd7d5e43c058dd145df..eee48c3420ba5dc3cb70e4abdf4920ce4a1df878 100644
--- a/app/views/user_board.py
+++ b/app/views/user_board.py
@@ -7,6 +7,7 @@ Emmanuel Viennet, 2023
from flask import flash, redirect, render_template, url_for
from flask import g, request
+from flask_login import login_required
from app.auth.models import User
from app.decorators import (
scodoc,
@@ -15,14 +16,13 @@ from app.decorators import (
from app.models import Departement, FormSemestre
from app.scodoc.sco_permissions import Permission
from app.scodoc import sco_preferences
-from app.scodoc import sco_utils as scu
-from app.views import scolar_bp as bp
+from app.views import scodoc_bp as bp
from app.views import ScoData
-@bp.route("/user_board/<string:user_name>")
+@bp.route("/ScoDoc/user_board/<string:user_name>")
@scodoc
-@permission_required(Permission.ScoView)
+@login_required
def user_board(user_name: str):
"""Tableau de bord utilisateur: liens vers ses objets"""
user = User.query.filter_by(user_name=user_name).first_or_404()
@@ -30,6 +30,9 @@ def user_board(user_name: str):
formsemestres_by_dept,
modimpls_by_formsemestre,
) = FormSemestre.get_user_formsemestres_annee_by_dept(user)
+ depts = {
+ dept_id: Departement.query.get(dept_id) for dept_id in formsemestres_by_dept
+ }
dept_names = {
dept_id: sco_preferences.get_preference("DeptName", dept_id=dept_id)
for dept_id in formsemestres_by_dept
@@ -41,6 +44,7 @@ def user_board(user_name: str):
# TODO: le calendrier avec ses enseignements
return render_template(
"user_board/user_board.j2",
+ depts=depts,
dept_names=dept_names_sorted,
formsemestres_by_dept=formsemestres_by_dept,
modimpls_by_formsemestre=modimpls_by_formsemestre,