diff --git a/pedagogy/static/pedagogy/css/pedagogy.scss b/pedagogy/static/pedagogy/css/pedagogy.scss index ca7cc368..20703a5c 100644 --- a/pedagogy/static/pedagogy/css/pedagogy.scss +++ b/pedagogy/static/pedagogy/css/pedagogy.scss @@ -9,44 +9,18 @@ $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 +38,10 @@ $pedagogy-white-text: #f0f0f0; } #search_form { - .radio-guide fieldset { input[type="checkbox"] { display: none; } - margin-top: 10px; margin-bottom: 0; color: white; @@ -85,58 +57,65 @@ $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; + + .info-container-item { + display: grid; + grid-column: span 2; + grid-template-rows: subgrid; + grid-template-columns: subgrid; + grid-column-gap: 1rem; + + div { + display: flex; + align-items: center; + } + + :first-child { + justify-content: right; + text-align: right; + } + } + + hr { + grid-column: span 2; + width: 50%; + margin: auto; + } } - .department { - grid-area: department; - } - - .credit-type { - grid-area: credit-type; - } - - .semester { - grid-area: semester; - } - - .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 { + #leave_comment_not_allowed { p { text-align: center; color: red; } } - .leave-comment { + #leave_comment { .leave-comment-grid-container { display: grid; grid-template-columns: 270px auto; @@ -171,42 +150,6 @@ $pedagogy-white-text: #f0f0f0; } } - .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"; - } - } - - .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; diff --git a/pedagogy/templates/pedagogy/fragments/ue_details/comments.jinja b/pedagogy/templates/pedagogy/fragments/ue_detail/comments.jinja similarity index 88% rename from pedagogy/templates/pedagogy/fragments/ue_details/comments.jinja rename to pedagogy/templates/pedagogy/fragments/ue_detail/comments.jinja index 04aee21a..6cf63bf3 100644 --- a/pedagogy/templates/pedagogy/fragments/ue_details/comments.jinja +++ b/pedagogy/templates/pedagogy/fragments/ue_detail/comments.jinja @@ -7,8 +7,7 @@ {% endif %}
- {% for comment in comments %} - + {%- for comment in comments -%}
@@ -54,11 +53,12 @@ {% endif %} {% if comment.author_id == user.id or user.has_perm("pedagogy.delete_comment") %} -
{% csrf_token %}

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

-

{{ user_profile_link(comment.author) }}

- {% endfor %} + {%- endfor -%}
diff --git a/pedagogy/templates/pedagogy/fragments/ue_details/form.jinja b/pedagogy/templates/pedagogy/fragments/ue_detail/form.jinja similarity index 100% rename from pedagogy/templates/pedagogy/fragments/ue_details/form.jinja rename to pedagogy/templates/pedagogy/fragments/ue_detail/form.jinja 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..d1477f39 --- /dev/null +++ b/pedagogy/templates/pedagogy/fragments/ue_detail/ue_detail.jinja @@ -0,0 +1,11 @@ + + {% include "pedagogy/fragments/ue_detail/grade.jinja" %} + + + + {% include "pedagogy/fragments/ue_detail/form.jinja" %} + + + + {% include "pedagogy/fragments/ue_detail/comments.jinja" %} + \ No newline at end of file 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..08c1ac3d 100644 --- a/pedagogy/templates/pedagogy/ue_detail.jinja +++ b/pedagogy/templates/pedagogy/ue_detail.jinja @@ -1,91 +1,87 @@ +{% 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 %} + + +
+ +
+ {% include "pedagogy/fragments/ue_detail/form.jinja" %} +
+ +
+ {% 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) | {