From 1a5072a35cc0d1977dbe7039041c377fad2e5db4 Mon Sep 17 00:00:00 2001
From: Emmanuel Viennet <emmanuel.viennet@gmail.com>
Date: Sun, 31 Dec 2023 22:59:09 +0100
Subject: [PATCH] =?UTF-8?q?user=5Fboard:=20acc=C3=A8s=20depuis=20accueil?=
 =?UTF-8?q?=20g=C3=A9n=C3=A9ral?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/templates/base.j2                  | 12 +++++++++++-
 app/templates/user_board/user_board.j2 |  8 +++++---
 app/views/user_board.py                | 12 ++++++++----
 3 files changed, 24 insertions(+), 8 deletions(-)

diff --git a/app/templates/base.j2 b/app/templates/base.j2
index eace4df92..70462e266 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 78f18283c..5f5dac7ab 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 9b45ad971..eee48c342 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,
-- 
GitLab