diff --git a/core/static/core/accordion.scss b/core/static/core/accordion.scss index 23bb2fa6..8ea5f4d3 100644 --- a/core/static/core/accordion.scss +++ b/core/static/core/accordion.scss @@ -42,6 +42,7 @@ details.accordion>.accordion-content { background: #ffffff; color: #333333; padding: 1em 2.2em; + margin-top: 0; border: 1px solid #dddddd; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 0225b7d9..b4714ca1 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-21 13:16+0200\n" +"POT-Creation-Date: 2026-10-02 12:56+0200\n" "PO-Revision-Date: 2016-07-18\n" "Last-Translator: Maréchal \n" @@ -832,7 +832,7 @@ msgstr "Méthode de paiement" #: counter/templates/counter/last_ops.jinja #: election/templates/election/election_detail.jinja #: forum/templates/forum/macros.jinja -#: pedagogy/templates/pedagogy/fragments/ue_details/comments.jinja +#: pedagogy/templates/pedagogy/fragments/ue_detail/comments.jinja #: pedagogy/templates/pedagogy/guide.jinja sas/templates/sas/album.jinja #: sas/templates/sas/moderation.jinja sas/templates/sas/picture.jinja #: trombi/templates/trombi/detail.jinja @@ -1028,7 +1028,7 @@ msgstr "Outils" #: counter/templates/counter/counter_list.jinja #: election/templates/election/election_detail.jinja #: forum/templates/forum/macros.jinja -#: pedagogy/templates/pedagogy/fragments/ue_details/comments.jinja +#: pedagogy/templates/pedagogy/fragments/ue_detail/comments.jinja #: pedagogy/templates/pedagogy/guide.jinja sas/templates/sas/album.jinja #: trombi/templates/trombi/detail.jinja #: trombi/templates/trombi/edit_profile.jinja @@ -1285,8 +1285,9 @@ msgstr "Actions" #: com/templates/com/mailing_admin.jinja com/templates/com/poster_list.jinja #: core/templates/core/file_detail.jinja -#: core/templates/core/file_moderation.jinja sas/templates/sas/moderation.jinja -#: sas/templates/sas/picture.jinja +#: core/templates/core/file_moderation.jinja +#: pedagogy/templates/pedagogy/fragments/ue_detail/comments.jinja +#: sas/templates/sas/moderation.jinja sas/templates/sas/picture.jinja msgid "Moderate" msgstr "Modérer" @@ -1588,7 +1589,6 @@ msgstr "Descendre" #: com/templates/com/weekmail_preview.jinja #: core/templates/core/user_account_detail.jinja -#: pedagogy/templates/pedagogy/ue_detail.jinja #: trombi/templates/trombi/comment_moderation.jinja #: trombi/templates/trombi/export.jinja msgid "Back" @@ -1933,8 +1933,8 @@ msgstr "" "toujours le voir." #: core/models.py -msgid "ToS approved" -msgstr "CGU approuvées" +msgid "ToS approved at" +msgstr "CGU approuvées le" #: core/models.py msgid "A user with that username already exists" @@ -1943,7 +1943,9 @@ msgstr "Un utilisateur de ce nom d'utilisateur existe déjà" #: core/models.py core/templates/core/macros.jinja #: core/templates/core/user_detail.jinja core/templates/core/user_edit.jinja #: election/templates/election/election_detail.jinja -#: forum/templates/forum/macros.jinja trombi/templates/trombi/user_tools.jinja +#: forum/templates/forum/macros.jinja +#: pedagogy/templates/pedagogy/fragments/ue_detail/comments.jinja +#: trombi/templates/trombi/user_tools.jinja msgid "Profile" msgstr "Profil" @@ -2374,7 +2376,6 @@ msgstr "Propriétés" #: core/templates/core/file_delete_confirm.jinja #: counter/templates/counter/fragments/delete_student_card.jinja -#: pedagogy/templates/pedagogy/fragments/ue_details/comments.jinja #, python-format msgid "Are you sure you want to delete \"%(obj)s\"?" msgstr "Êtes-vous sûr de vouloir supprimer \"%(obj)s\" ?" @@ -3907,7 +3908,6 @@ msgid "Emptied" msgstr "Coffre vidé" #: counter/templates/counter/cash_summary_list.jinja counter/views/cash.py -#: pedagogy/templates/pedagogy/fragments/ue_comment_form.jinja #: pedagogy/templates/pedagogy/moderation.jinja #: trombi/templates/trombi/comment.jinja #: trombi/templates/trombi/user_tools.jinja @@ -5239,6 +5239,7 @@ msgid "reporter" msgstr "signalant" #: pedagogy/templates/pedagogy/fragments/comment_report.jinja +#: pedagogy/templates/pedagogy/fragments/ue_detail/comments.jinja msgid "Report" msgstr "Signaler" @@ -5246,45 +5247,46 @@ msgstr "Signaler" msgid "Leave comment" msgstr "Laisser un commentaire" -#: pedagogy/templates/pedagogy/fragments/ue_details/comments.jinja +#: pedagogy/templates/pedagogy/fragments/ue_detail/comments.jinja #: trombi/templates/trombi/export.jinja msgid "Comments" msgstr "Commentaires" -#: pedagogy/templates/pedagogy/fragments/ue_details/comments.jinja -#: pedagogy/templates/pedagogy/fragments/ue_details/grade.jinja -msgid "Global grade" -msgstr "Note globale" - -#: pedagogy/templates/pedagogy/fragments/ue_details/comments.jinja -#: pedagogy/templates/pedagogy/fragments/ue_details/grade.jinja -msgid "Utility" -msgstr "Utilité" - -#: pedagogy/templates/pedagogy/fragments/ue_details/comments.jinja -#: pedagogy/templates/pedagogy/fragments/ue_details/grade.jinja -msgid "Interest" -msgstr "Intérêt" - -#: pedagogy/templates/pedagogy/fragments/ue_details/comments.jinja -#: pedagogy/templates/pedagogy/fragments/ue_details/grade.jinja -msgid "Teaching" -msgstr "Enseignement" - -#: pedagogy/templates/pedagogy/fragments/ue_details/comments.jinja -#: pedagogy/templates/pedagogy/fragments/ue_details/grade.jinja -msgid "Work load" -msgstr "Charge de travail" - -#: pedagogy/templates/pedagogy/fragments/ue_details/comments.jinja +#: pedagogy/templates/pedagogy/fragments/ue_detail/comments.jinja msgid "This comment has been reported" msgstr "Ce commentaire a été signalé" -#: pedagogy/templates/pedagogy/fragments/ue_details/comments.jinja -msgid "Report this comment" -msgstr "Signaler ce commentaire" +#: pedagogy/templates/pedagogy/fragments/ue_detail/comments.jinja +msgid "It will be hidden until moderated." +msgstr "Il sera caché tant qu'il ne sera pas modéré." -#: pedagogy/templates/pedagogy/fragments/ue_details/form.jinja +#: pedagogy/templates/pedagogy/fragments/ue_detail/comments.jinja +#: pedagogy/templates/pedagogy/fragments/ue_detail/grade.jinja +msgid "Global grade" +msgstr "Note globale" + +#: pedagogy/templates/pedagogy/fragments/ue_detail/comments.jinja +#: pedagogy/templates/pedagogy/fragments/ue_detail/grade.jinja +msgid "Utility" +msgstr "Utilité" + +#: pedagogy/templates/pedagogy/fragments/ue_detail/comments.jinja +#: pedagogy/templates/pedagogy/fragments/ue_detail/grade.jinja +msgid "Interest" +msgstr "Intérêt" + +#: pedagogy/templates/pedagogy/fragments/ue_detail/comments.jinja +#: pedagogy/templates/pedagogy/fragments/ue_detail/grade.jinja +msgid "Teaching" +msgstr "Enseignement" + +#: pedagogy/templates/pedagogy/fragments/ue_detail/comments.jinja +#: pedagogy/templates/pedagogy/fragments/ue_detail/grade.jinja +msgid "Workload" +msgstr "Charge de travail" + +#: pedagogy/templates/pedagogy/fragments/ue_detail/ue_detail.jinja +#: pedagogy/templates/pedagogy/ue_detail.jinja msgid "" "You already posted a comment on this UE. If you want to comment again, " "please modify or delete your previous comment." @@ -5292,26 +5294,6 @@ msgstr "" "Vous avez déjà commenté cette UE. Si vous voulez de nouveau commenter, " "veuillez modifier ou supprimer votre commentaire précédent." -#: pedagogy/templates/pedagogy/fragments/ue_details/grade.jinja -msgid "Objectives" -msgstr "Objectifs" - -#: pedagogy/templates/pedagogy/fragments/ue_details/grade.jinja -msgid "Program" -msgstr "Programme" - -#: pedagogy/templates/pedagogy/fragments/ue_details/grade.jinja -msgid "Earned skills" -msgstr "Compétences acquises" - -#: pedagogy/templates/pedagogy/fragments/ue_details/grade.jinja -msgid "Key concepts" -msgstr "Concepts clefs" - -#: pedagogy/templates/pedagogy/fragments/ue_details/grade.jinja -msgid "UE manager: " -msgstr "Gestionnaire d'UE : " - #: pedagogy/templates/pedagogy/guide.jinja msgid "A guide of courses available at UTBM." msgstr "Un guide de tous les cours disponibles à l'UTBM." @@ -5377,24 +5359,52 @@ msgid "UE Details" msgstr "Détails d'UE" #: pedagogy/templates/pedagogy/ue_detail.jinja -msgid "CM: " -msgstr "CM : " +msgid "Category" +msgstr "Catégorie" #: pedagogy/templates/pedagogy/ue_detail.jinja -msgid "TD: " -msgstr "TD : " +msgid "Credits" +msgstr "Crédits" #: pedagogy/templates/pedagogy/ue_detail.jinja -msgid "TP: " -msgstr "TP : " +msgid "Lectures" +msgstr "Cours magistraux" #: pedagogy/templates/pedagogy/ue_detail.jinja -msgid "TE: " -msgstr "TE : " +msgid "Tutorials" +msgstr "Travaux dirigés" #: pedagogy/templates/pedagogy/ue_detail.jinja -msgid "THE: " -msgstr "THE : " +msgid "Practicals" +msgstr "Travaux pratiques" + +#: pedagogy/templates/pedagogy/ue_detail.jinja +msgid "Work without supervision" +msgstr "Travail hors encadrement" + +#: pedagogy/templates/pedagogy/ue_detail.jinja +msgid "Availability" +msgstr "Disponibilité" + +#: pedagogy/templates/pedagogy/ue_detail.jinja +msgid "Manager" +msgstr "Responsable" + +#: pedagogy/templates/pedagogy/ue_detail.jinja +msgid "Objectives" +msgstr "Objectifs" + +#: pedagogy/templates/pedagogy/ue_detail.jinja +msgid "Program" +msgstr "Programme" + +#: pedagogy/templates/pedagogy/ue_detail.jinja +msgid "Earned skills" +msgstr "Compétences acquises" + +#: pedagogy/templates/pedagogy/ue_detail.jinja +msgid "Key concepts" +msgstr "Concepts clefs" #: pedagogy/templates/pedagogy/ue_edit.jinja msgid "Edit UE" diff --git a/pedagogy/static/pedagogy/css/pedagogy.scss b/pedagogy/static/pedagogy/css/pedagogy.scss index ca7cc368..b7597d17 100644 --- a/pedagogy/static/pedagogy/css/pedagogy.scss +++ b/pedagogy/static/pedagogy/css/pedagogy.scss @@ -1,52 +1,22 @@ @import "core/static/core/devices"; @import "core/static/core/colors"; - -$pedagogy-blue: #1bb9ea; $pedagogy-orange: #ea7900; -$pedagogy-hover-blue: #0e97ce; -$pedagogy-light-blue: #caf0ff; $pedagogy-white-text: #f0f0f0; .pedagogy { - &.star-not-checked { - color: #f7f7f7; + .star-not-checked { + color: lightgray; margin-bottom: 0; margin-top: 0; } - &.star-checked { + .star-checked { color: $pedagogy-orange; margin-bottom: 0; margin-top: 0; } - &.grade-without-star { - display: none; - } - - @media screen and (max-width: $large-devices) { - &.star-not-checked { - margin-left: 5px; - margin-right: 5px; - } - - &.star-checked { - margin-left: 5px; - margin-right: 5px; - } - } - - @media screen and (max-width: $small-devices) { - &.grade-without-star { - display: block; - } - - &.grade-with-star { - display: none; - } - } - #ue-list { font-size: 1.1em; @@ -64,12 +34,10 @@ $pedagogy-white-text: #f0f0f0; } #search_form { - .radio-guide fieldset { input[type="checkbox"] { display: none; } - margin-top: 10px; margin-bottom: 0; color: white; @@ -85,80 +53,79 @@ $pedagogy-white-text: #f0f0f0; } } - #ue_detail { - color: #062f38; - - .ue-quick-info-container { + &#ue_detail { + .ue-infos { + display: flex; + gap: 2em; + flex-direction: row; + @media screen and (max-width: 700px) { + flex-direction: column; + } + } + .infos-column { + display: flex; + flex-direction: column; + gap: 1em; + min-width: 300px; + } + .info-container { + // Darken the background color just enough to make this part + // stand out a little, while not being too perceptible + background: darken($white-color, 1%); display: grid; - grid-template-columns: 20% 20% 20% 20% auto; - grid-template-rows: auto auto; - grid-template-areas: - "hours-cm hours-td hours-tp hours-te hours-the" - "department credit-type semester . ."; - } + grid-template-columns: 1fr 1fr; + border-radius: 5px; + padding: .75rem 1rem ; + grid-gap: .5rem; + @include shadow; - .department { - grid-area: department; - } + .info-container-item { + display: grid; + grid-column: span 2; + grid-template-rows: subgrid; + grid-template-columns: subgrid; + grid-column-gap: 1rem; - .credit-type { - grid-area: credit-type; - } + div { + display: flex; + align-items: center; + } - .semester { - grid-area: semester; - } + :first-child { + justify-content: right; + text-align: right; + } + } - .hours-cm { - grid-area: hours-cm; - } - - .hours-td { - grid-area: hours-td; - } - - .hours-tp { - grid-area: hours-tp; - } - - .hours-te { - grid-area: hours-te; - } - - .hours-the { - grid-area: hours-the; - } - - .leave-comment-not-allowed { - p { - text-align: center; - color: red; + hr { + grid-column: span 2; + width: 50%; + margin: auto; } } .leave-comment { - .leave-comment-grid-container { - display: grid; - grid-template-columns: 270px auto; - grid-template-rows: 100%; - grid-template-areas: "stars comment"; + .comment-form-content { + display: flex; + gap: 2em; @media screen and (max-width: $large-devices) { - grid-template-columns: 100%; - grid-template-rows: auto auto; - grid-template-areas: - "stars" - "comment"; + gap: 1em; + flex-direction: column; } - } - .form-stars { - grid-area: stars; + flex: 0; + min-width: 250px; + display: flex; + align-content: flex-start; + justify-content: center; + flex-wrap: wrap; + gap: 1rem 2em; + height: unset; } - .form-comment { - grid-area: comment; + flex: 2; } .ui-accordion-header-icon { @@ -166,284 +133,81 @@ $pedagogy-white-text: #f0f0f0; margin-right: 10px; } - .input-stars { - margin-top: 20px; + input[type="submit"] { + display: block; + margin-left: auto; } - } - .ue-details-container { - display: grid; - grid-template-columns: 150px 130px auto; - grid-template-rows: 156px 1fr; - grid-template-areas: - "grade grade-stars ue-infos" - ". . ue-infos"; - - @media screen and (max-width: $large-devices) { - grid-template-columns: 50% 50%; - grid-template-rows: auto auto; - grid-template-areas: - "grade grade-stars" - "ue-infos ue-infos"; + summary { + background: $pedagogy-orange; + color: $pedagogy-white-text; + @media screen and (min-width: $large-devices) { + clip-path: polygon(0 0%, 0 100%, 30% 100%, 33% 0); + } } } - .grade { - grid-area: grade; - color: $pedagogy-white-text; - background-color: $pedagogy-blue; - padding-right: 10px; - - >p { - text-align: right; - font-weight: bold; - } - } - - .grade-stars { - grid-area: grade-stars; - color: $pedagogy-white-text; - background-color: $pedagogy-blue; - font-weight: bold; - } - .ue-infos { grid-area: ue-infos; padding-left: 10px; } - .comment-container { - display: grid; - grid-template-columns: 300px auto; - grid-template-rows: auto auto auto; - grid-template-areas: - "grade-block comment" - "grade-block info" - "comment-end-bar comment-end-bar"; - margin-bottom: 30px; - margin-top: 10px; + .comment { + padding: 15px; + margin: 20px; + display: flex; + flex-direction: column; + gap: 10px; + background: $primary-neutral-light-color; + border-radius: 5px; + border: 1px darken($secondary-neutral-light-color, 10%) solid; - @media screen and (max-width: $large-devices) { - grid-template-columns: auto; - grid-template-rows: auto auto auto auto; - grid-template-areas: - "grade-block" - "comment" - "info" - "comment-end-bar"; + &.reported { + border: #fc8181 1px solid; } - .grade-block { - grid-area: grade-block; - width: 300px; + .comment-header { + display: flex; + gap: 20px; - display: grid; - grid-template-columns: 150px 150px; - grid-template-rows: 156px auto; - grid-template-areas: - "grade-type grade-stars" - "grade-extension grade-extension"; - grid-gap: 15px; - - clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 30px, 270px 0); - align-items: start; - - background-color: $pedagogy-blue; - - @media screen and (max-width: $large-devices) { - grid-template-columns: 50% auto; - grid-template-rows: auto; - grid-template-areas: "grade-type grade-stars"; - width: auto; - clip-path: none; - align-content: space-evenly; - align-items: end; + img { + width: 50px; + height: 50px; + border-radius: 50%; } - .grade-extension { - grid-area: grade-extension; - background-color: $pedagogy-blue; + .comment-metadata { + display: flex; + flex-direction: column; + justify-content: center; } - .grade-type { - grid-area: grade-type; - - >p { - color: $pedagogy-white-text; - font-weight: bold; - text-align: right; - } - } - - .grade-stars { - grid-area: grade-stars; + .comment-options { + flex: 2; + display: flex; + justify-content: right; + gap: 15px; } } - .comment { - grid-area: comment; - - display: grid; - grid-template-columns: auto; - grid-template-rows: auto auto; - grid-template-areas: - "anchor" - "markdown"; - - @media screen and (max-width: $large-devices) { - border-left: solid; - border-right: solid; - border-color: $pedagogy-blue; - } - - .anchor { - grid-area: anchor; - text-align: right; - margin-right: 15px; - } - - .markdown { - grid-area: markdown; - - min-height: 139px; - margin-top: 0; - margin-right: 0; - padding: 10px; - text-align: justify; - overflow: auto; - } + .comment-stars { + display: flex; + justify-content: space-evenly; + flex-wrap: wrap; + gap: 1em 2em; + padding: 1.5em; + border-top: 0.0625rem grey dotted; + border-bottom: 0.0625rem grey dotted; } - .info { - grid-area: info; - padding-bottom: 10px; - - @media screen and (max-width: $large-devices) { - border-left: solid; - border-right: solid; - border-color: $pedagogy-blue; - } - - .status-reported { - color: red; - float: left; - padding-left: 10px; - } - - .action { - float: right; - margin-top: 0; - } - } - - .comment-end-bar { - grid-area: comment-end-bar; - - display: grid; - grid-template-columns: 33% auto auto; - grid-template-rows: 2.5em; - grid-template-areas: "author date report"; - - background-color: $pedagogy-blue; - margin-top: -1px; - - @media screen and (max-width: $large-devices) { - grid-template-columns: auto; - grid-template-rows: auto auto auto; - grid-template-areas: - "report" - "date" - "author"; - margin-top: 0; - text-align: center; - } - - .author { - grid-area: author; - - padding-top: 6px; - padding-left: 20px; - - background-color: $pedagogy-orange; - clip-path: polygon(0 10px, 0 100%, 350px 200%, 300px 10px); - - @media screen and (max-width: $large-devices) { - clip-path: none; - padding: 0; - padding-bottom: 7px; - } - - a { - color: $pedagogy-white-text; - font-weight: bold; - } - - a:hover { - color: $pedagogy-hover-blue; - } - } - - .date { - grid-area: date; - color: $pedagogy-white-text; - - @media screen and (max-width: $large-devices) { - padding-bottom: 7px; - } - } - - .report { - grid-area: report; - justify-self: right; - padding-right: 30px; - padding-left: 30px; - - a { - color: $pedagogy-white-text; - cursor: pointer; - } - - a:hover { - color: $pedagogy-hover-blue; - } - - @media screen and (max-width: $large-devices) { - text-align: center; - justify-self: inherit; - padding-bottom: 7px; - background-color: $white-color; - - border-left: solid; - border-right: solid; - border-color: $pedagogy-blue; - - a { - color: $black-color; - } - } - } + .comment-content { + text-align: justify; + padding: .5em 20px 1em; } } } } -details.accordion summary { - - background: $pedagogy-orange !important; - color: $pedagogy-white-text !important; - clip-path: polygon(0 0%, 0 100%, 30% 100%, 33% 0); - - @media screen and (max-width: $large-devices) { - clip-path: none; - } -} - -details.accordion>.accordion-content { - background-color: $white-color; - border-color: $pedagogy-orange; - border-right: none; -} - .buttons { display: flex; justify-content: flex-end; diff --git a/pedagogy/templates/pedagogy/fragments/ue_comment_form.jinja b/pedagogy/templates/pedagogy/fragments/ue_comment_form.jinja index 7ec115be..529dd8b9 100644 --- a/pedagogy/templates/pedagogy/fragments/ue_comment_form.jinja +++ b/pedagogy/templates/pedagogy/fragments/ue_comment_form.jinja @@ -11,44 +11,39 @@ hx-disabled-elt="find input[type='submit']" > {% csrf_token %} -
+ {{ form.non_field_errors() }} + {{ form.author.errors }} + {{ form.ue.errors }} + + {{ form.author }} + {{ form.ue }} +
- {{ form.non_field_errors() }} - {{ form.author.errors }} - {{ form.ue.errors }} - - {{ form.author }} - {{ form.ue }} - -
- +
+ {{ form.grade_global.label }} : {{ form.grade_global.errors }} {{ form.grade_global }} -
- -
- + +
+ {{ form.grade_utility.label }} : {{ form.grade_utility.errors }} {{ form.grade_utility }} -
- -
- + +
+ {{ form.grade_interest.label }} : {{ form.grade_interest.errors }} {{ form.grade_interest }} -
- -
- + +
+ {{ form.grade_teaching.label }} : {{ form.grade_teaching.errors }} {{ form.grade_teaching }} -
- -
- + +
+ {{ form.grade_work_load.label }} : {{ form.grade_work_load.errors }} {{ form.grade_work_load }} -
+
@@ -56,9 +51,7 @@ {{ form.comment }}
-
- -
+

{% if form.is_creation %} diff --git a/pedagogy/templates/pedagogy/fragments/ue_detail/comments.jinja b/pedagogy/templates/pedagogy/fragments/ue_detail/comments.jinja new file mode 100644 index 00000000..fc066b28 --- /dev/null +++ b/pedagogy/templates/pedagogy/fragments/ue_detail/comments.jinja @@ -0,0 +1,129 @@ +{% from "pedagogy/macros.jinja" import display_star %} +{% from "core/macros.jinja" import user_profile_link %} + +{% if comments %} +

{% trans %}Comments{% endtrans %}

+
+{% endif %} + +
+ {%- for comment in comments -%} +
+ {% if comment.is_reported %} +
+
+
+ {% trans %}This comment has been reported{% endtrans %} +
+

{% trans %}It will be hidden until moderated.{% endtrans %}

+ {% if user.has_perm("pedagogy.view_uecommentreport") %} + {% for report in comment.reports.all() %} +
+
+ {{ report.reporter.get_display_name() }} + {{ report.reason|markdown }} +
+
+ {% endfor %} + {% endif %} +
+ {% if comment.author_id == user.id or user.has_perm("pedagogy.delete_uecomment") %} + + {% endif %} +
+ {% endif %} +
+ {% trans %}Profile{% endtrans %} + +
+ {% if comment.author_id == user.id or user.has_perm("pedagogy.change_uecomment") %} + + + + {% endif %} + {% if not comment.is_reported %} + + + + {% if comment.author_id == user.id or user.has_perm("pedagogy.delete_uecomment") %} + + + + {% endif %} + {% endif %} +
+
+
+
+ {% trans %}Global grade{% endtrans %} + {{ display_star(comment.grade_global) }} +
+
+ {% trans %}Utility{% endtrans %} + {{ display_star(comment.grade_utility) }} +
+
+ {% trans %}Interest{% endtrans %} + {{ display_star(comment.grade_interest) }} +
+
+ {% trans %}Teaching{% endtrans %} + {{ display_star(comment.grade_teaching) }} +
+
+ {% trans %}Workload{% endtrans %} + {{ display_star(comment.grade_work_load) }} +
+
+ +
+ {{ comment.comment|markdown }} +
+
+ {%- endfor -%} +
diff --git a/pedagogy/templates/pedagogy/fragments/ue_detail/grade.jinja b/pedagogy/templates/pedagogy/fragments/ue_detail/grade.jinja new file mode 100644 index 00000000..12f136b8 --- /dev/null +++ b/pedagogy/templates/pedagogy/fragments/ue_detail/grade.jinja @@ -0,0 +1,20 @@ +
+ {% trans %}Global grade{% endtrans %} + {{ display_star(object.grade_global_average) }} +
+
+ {% trans %}Utility{% endtrans %} + {{ display_star(object.grade_utility_average) }} +
+
+ {% trans %}Interest{% endtrans %} + {{ display_star(object.grade_interest_average) }} +
+
+ {% trans %}Teaching{% endtrans %} + {{ display_star(object.grade_teaching_average) }} +
+
+ {% trans %}Workload{% endtrans %} + {{ display_star(object.grade_work_load_average) }} +
diff --git a/pedagogy/templates/pedagogy/fragments/ue_detail/ue_detail.jinja b/pedagogy/templates/pedagogy/fragments/ue_detail/ue_detail.jinja new file mode 100644 index 00000000..8c038be9 --- /dev/null +++ b/pedagogy/templates/pedagogy/fragments/ue_detail/ue_detail.jinja @@ -0,0 +1,25 @@ +{# A few hx-partials for swapping a few parts of the main ue_detail.jinja #} + +{% from "pedagogy/macros.jinja" import display_star %} + + + {% include "pedagogy/fragments/ue_detail/grade.jinja" %} + + + + {% if object.has_user_already_commented(user) %} + + {% trans trimmed %} + You already posted a comment on this UE. + If you want to comment again, please modify or delete your previous comment. + {% endtrans %} + +
+ {% elif user.has_perm("pedagogy.add_uecomment") %} + {{ add_comment_form }} + {% endif %} +
+ + + {% include "pedagogy/fragments/ue_detail/comments.jinja" %} + \ No newline at end of file diff --git a/pedagogy/templates/pedagogy/fragments/ue_details/comments.jinja b/pedagogy/templates/pedagogy/fragments/ue_details/comments.jinja deleted file mode 100644 index 04aee21a..00000000 --- a/pedagogy/templates/pedagogy/fragments/ue_details/comments.jinja +++ /dev/null @@ -1,91 +0,0 @@ -{% from "pedagogy/macros.jinja" import display_star %} -{% from "core/macros.jinja" import user_profile_link %} - -{% if comments %} -

{% trans %}Comments{% endtrans %}

-
-{% endif %} - -
- {% for comment in comments %} - -
- -
-
-

{% trans %}Global grade{% endtrans %}

-

{% trans %}Utility{% endtrans %}

-

{% trans %}Interest{% endtrans %}

-

{% trans %}Teaching{% endtrans %}

-

{% trans %}Work load{% endtrans %}

-
-
-

{{ display_star(comment.grade_global) }}

-

{{ display_star(comment.grade_utility) }}

-

{{ display_star(comment.grade_interest) }}

-

{{ display_star(comment.grade_teaching) }}

-

{{ display_star(comment.grade_work_load) }}

-
-
-
- -
-
- -
- {{ comment.comment|markdown }} -
- -
- {% if comment.is_reported %} -

- {% trans %}This comment has been reported{% endtrans %} -

- {% endif %} - - {% if comment.author_id == user.id or user.has_perm("pedagogy.change_comment") %} - - {% endif %} - {% if comment.author_id == user.id or user.has_perm("pedagogy.delete_comment") %} -
- {% csrf_token %} - -
- {% endif %} -
- -
- - -

{{ comment.publish_date.strftime('%d/%m/%Y') }}

- -

{{ user_profile_link(comment.author) }}

-
- -
- {% endfor %} -
diff --git a/pedagogy/templates/pedagogy/fragments/ue_details/form.jinja b/pedagogy/templates/pedagogy/fragments/ue_details/form.jinja deleted file mode 100644 index 7414f4b5..00000000 --- a/pedagogy/templates/pedagogy/fragments/ue_details/form.jinja +++ /dev/null @@ -1,10 +0,0 @@ -{% if object.has_user_already_commented(user) %} -
-

{% trans %}You already posted a comment on this UE. If you want to comment again, please modify or delete your previous comment.{% endtrans %}

-
-
-{% endif %} - -{% if not object.has_user_already_commented(user) and user.has_perm("pedagogy.add_uecomment") %} - {{ add_comment_form }} -{% endif %} diff --git a/pedagogy/templates/pedagogy/fragments/ue_details/grade.jinja b/pedagogy/templates/pedagogy/fragments/ue_details/grade.jinja deleted file mode 100644 index 7f507863..00000000 --- a/pedagogy/templates/pedagogy/fragments/ue_details/grade.jinja +++ /dev/null @@ -1,27 +0,0 @@ -
-
-

{% trans %}Global grade{% endtrans %}

-

{% trans %}Utility{% endtrans %}

-

{% trans %}Interest{% endtrans %}

-

{% trans %}Teaching{% endtrans %}

-

{% trans %}Work load{% endtrans %}

-
-
-

{{ display_star(object.grade_global_average) }}

-

{{ display_star(object.grade_utility_average) }}

-

{{ display_star(object.grade_interest_average) }}

-

{{ display_star(object.grade_teaching_average) }}

-

{{ display_star(object.grade_work_load_average) }}

-
-
-

{% trans %}Objectives{% endtrans %}

-

{{ object.objectives|markdown }}

-

{% trans %}Program{% endtrans %}

-

{{ object.program|markdown }}

-

{% trans %}Earned skills{% endtrans %}

-

{{ object.skills|markdown }}

-

{% trans %}Key concepts{% endtrans %}

-

{{ object.key_concepts|markdown }}

-

{% trans %}UE manager: {% endtrans %}{{ object.manager }}

-
-
diff --git a/pedagogy/templates/pedagogy/macros.jinja b/pedagogy/templates/pedagogy/macros.jinja index 9f332655..8438d4db 100644 --- a/pedagogy/templates/pedagogy/macros.jinja +++ b/pedagogy/templates/pedagogy/macros.jinja @@ -1,5 +1,4 @@ {% macro display_star(grade) -%} - {% if grade >= 0 %} {% for i in range(5) %} {% if i <= grade %} @@ -8,9 +7,7 @@ {% endif %} {% endfor %} - {{ grade }}/5 {% else %} {% trans %} not rated {% endtrans %} {% endif %} - {%- endmacro %} diff --git a/pedagogy/templates/pedagogy/ue_detail.jinja b/pedagogy/templates/pedagogy/ue_detail.jinja index deb8fdf2..c05223dc 100644 --- a/pedagogy/templates/pedagogy/ue_detail.jinja +++ b/pedagogy/templates/pedagogy/ue_detail.jinja @@ -1,91 +1,92 @@ +{% extends "core/base.jinja" %} {% from "pedagogy/macros.jinja" import display_star %} -{% if is_fragment %} - - {% include "pedagogy/fragments/ue_details/grade.jinja" %} - +{% block additional_css %} + +{% endblock %} - - {% include "pedagogy/fragments/ue_details/form.jinja" %} - +{% block title %} + {% trans %}UE Details{% endtrans %} +{% endblock %} - - {% include "pedagogy/fragments/ue_details/comments.jinja" %} - - -{% else %} - {% extends "core/base.jinja" %} - - {% block additional_css %} - - {% endblock %} - - {% block title %} - {% trans %}UE Details{% endtrans %} - {% endblock %} - - {% block content %} - -
-
- - -

{{ object.code }} - {{ object.title }}

-
-
-
- {% trans %}CM: {% endtrans %}{{ object.hours_CM }} +{% block content %} +

{{ object.code }}

+

{{ object.title }}

+
+
+
+ +
+
+

{% trans %}Objectives{% endtrans %}

+

{{ object.objectives|markdown }}

+

{% trans %}Program{% endtrans %}

+

{{ object.program|markdown }}

+

{% trans %}Earned skills{% endtrans %}

+

{{ object.skills|markdown }}

+

{% trans %}Key concepts{% endtrans %}

+

{{ object.key_concepts|markdown }}

+
- {% endblock %} -{% endif %} + +
+ +
+ {% if object.has_user_already_commented(user) %} + + {% trans trimmed %} + You already posted a comment on this UE. + If you want to comment again, please modify or delete your previous comment. + {% endtrans %} + +
+ {% elif user.has_perm("pedagogy.add_uecomment") %} + {{ add_comment_form }} + {% endif %} +
+ +
+ {% include "pedagogy/fragments/ue_detail/comments.jinja" %} +
+
+{% endblock %} diff --git a/pedagogy/views.py b/pedagogy/views.py index 4e54ae1d..83a0bcb3 100644 --- a/pedagogy/views.py +++ b/pedagogy/views.py @@ -88,16 +88,19 @@ class UEDetailView( model = UE pk_url_kwarg = "ue_id" - template_name = "pedagogy/ue_detail.jinja" permission_required = "pedagogy.view_ue" - fragments = { - "add_comment_form": UECommentCreateView, - } + fragments = {"add_comment_form": UECommentCreateView} + + def get_template_names(self) -> list[str]: + is_fragment = self.request.headers.get("HX-Request", False) + return ( + ["pedagogy/fragments/ue_detail/ue_detail.jinja"] + if is_fragment + else ["pedagogy/ue_detail.jinja"] + ) def get_fragment_data(self): - return { - "add_comment_form": {"ue_id": self.object.id}, - } + return {"add_comment_form": {"ue_id": self.object.id}} def get_context_data(self, **kwargs): return super().get_context_data(**kwargs) | {