mirror of
https://github.com/ae-utbm/sith.git
synced 2026-10-25 11:49:33 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1798406dde | ||
|
|
20fc7d587a | ||
|
|
94b108d288 | ||
|
|
059d5210ac | ||
|
|
562f75f410 |
No files matched your search
@@ -1,79 +0,0 @@
|
||||
{% extends "core/base.jinja" %}
|
||||
|
||||
{% block content %}
|
||||
{% if club.has_rights_in_club(user) %}
|
||||
<a class="btn btn-blue" href="{{ url("com:news_new") }}">
|
||||
<i class="fa fa-plus"></i> {% trans %}Create news{% endtrans %}
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
{% for semester_code, semester_events in events %}
|
||||
<h3>{{ semester_code }}</h3>
|
||||
{% for event in semester_events %}
|
||||
<details class="accordion">
|
||||
<summary>{{ event.title }}</summary>
|
||||
<div class="accordion-content">
|
||||
|
||||
{# Events that occur weekly from the start to the end of the semester
|
||||
would take a lot of space if shown by default.
|
||||
Thus, if the event has more than one date, those are
|
||||
hidden by a details element.
|
||||
If there is only one date, it is directly displayed. #}
|
||||
{% set dates = event.dates.all()|list %}
|
||||
{% if dates|length == 1 %}
|
||||
<em>
|
||||
<time datetime="{{ dates[0].start_date.isoformat(timespec="seconds") }}">
|
||||
{{ dates[0].start_date|localtime|date(DATETIME_FORMAT) }},
|
||||
{{ dates[0].start_date|localtime|time(DATETIME_FORMAT) }}
|
||||
</time> -
|
||||
<time datetime="{{ dates[0].end_date.isoformat(timespec="seconds") }}">
|
||||
{{ dates[0].end_date|localtime|date(DATETIME_FORMAT) }},
|
||||
{{ dates[0].end_date|localtime|time(DATETIME_FORMAT) }}
|
||||
</time>
|
||||
</em>
|
||||
{% else %}
|
||||
<details>
|
||||
<summary>
|
||||
{% trans trimmed nb_occurrences=dates|length %}
|
||||
Dates ({{ nb_occurrences }} occurrences)
|
||||
{% endtrans %}
|
||||
</summary>
|
||||
<ul>
|
||||
{% for d in dates %}
|
||||
<li>
|
||||
<time datetime="{{ d.start_date.isoformat(timespec="seconds") }}">
|
||||
{{ d.start_date|localtime|date(DATETIME_FORMAT) }},
|
||||
{{ d.start_date|localtime|time(DATETIME_FORMAT) }}
|
||||
</time> -
|
||||
<time datetime="{{ d.end_date.isoformat(timespec="seconds") }}">
|
||||
{{ d.end_date|localtime|date(DATETIME_FORMAT) }},
|
||||
{{ d.end_date|localtime|time(DATETIME_FORMAT) }}
|
||||
</time>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</details>
|
||||
{% endif %}
|
||||
|
||||
<h4>{% trans %}Permalink{% endtrans %}</h4>
|
||||
<p>{{ request.build_absolute_uri(event.get_absolute_url())|urlize }}</p>
|
||||
|
||||
<h4>{% trans %}Summary{% endtrans %}</h4>
|
||||
{% if event.summary %}
|
||||
{{ event.summary|markdown }}
|
||||
{% else %}
|
||||
<p><em>{% trans %}No summary{% endtrans %}</em></p>
|
||||
{% endif %}
|
||||
|
||||
<h4>{% trans %}Description{% endtrans %}</h4>
|
||||
{% if event.content %}
|
||||
{{ event.content|markdown }}
|
||||
{% else %}
|
||||
<p><em>{% trans %}No detailed description{% endtrans %}</em></p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</details>
|
||||
{% endfor %}
|
||||
<br />
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
@@ -1,60 +0,0 @@
|
||||
from datetime import datetime
|
||||
|
||||
from django.test import RequestFactory, TestCase
|
||||
from django.urls import reverse
|
||||
from django.utils.timezone import get_current_timezone
|
||||
from model_bakery import baker
|
||||
|
||||
from club.models import Club
|
||||
from club.views import ClubNewsView
|
||||
from com.models import News, NewsDate
|
||||
from core.baker_recipes import subscriber_user
|
||||
from core.models import User
|
||||
|
||||
|
||||
class TestClubNews(TestCase):
|
||||
@classmethod
|
||||
def setUpTestData(cls):
|
||||
cls.club = baker.make(Club)
|
||||
cls.news = baker.make(
|
||||
News, club=cls.club, is_published=True, author=baker.make(User), _quantity=5
|
||||
)
|
||||
d = datetime(year=2025, month=10, day=1, tzinfo=get_current_timezone())
|
||||
dates = [
|
||||
baker.prepare(NewsDate, news=cls.news[0], start_date=d),
|
||||
baker.prepare(NewsDate, news=cls.news[0], start_date=d.replace(day=8)),
|
||||
baker.prepare(NewsDate, news=cls.news[0], start_date=d.replace(day=15)),
|
||||
baker.prepare(NewsDate, news=cls.news[1], start_date=d.replace(month=5)),
|
||||
baker.prepare(NewsDate, news=cls.news[2], start_date=d.replace(month=4)),
|
||||
baker.prepare(NewsDate, news=cls.news[3], start_date=d.replace(year=2024)),
|
||||
baker.prepare(NewsDate, news=cls.news[4], start_date=d.replace(year=2020)),
|
||||
]
|
||||
NewsDate.objects.bulk_create(dates)
|
||||
cls.url = reverse("club:news_list", kwargs={"club_id": cls.club.id})
|
||||
|
||||
def test_load_page(self):
|
||||
"""Just test that the page loads."""
|
||||
self.client.force_login(subscriber_user.make())
|
||||
res = self.client.get(self.url)
|
||||
assert res.status_code == 200
|
||||
|
||||
def test_page_data(self):
|
||||
"""Test that we display the good events."""
|
||||
# For this test, the object we want to test
|
||||
# is built with `itertools.groupby`.
|
||||
# However, it is consumed when rendering the template,
|
||||
# making it unusable for later testing purposes,
|
||||
# so we must use lower level django APIs in this test.
|
||||
request = RequestFactory().get(self.url)
|
||||
request.user = subscriber_user.make()
|
||||
response = ClubNewsView.as_view()(request, club_id=self.club.id)
|
||||
events = [
|
||||
(semester_code, list(dates))
|
||||
for semester_code, dates in response.context_data["events"]
|
||||
]
|
||||
assert events == [
|
||||
("A25", [self.news[0]]),
|
||||
("P25", [self.news[1], self.news[2]]),
|
||||
("A24", [self.news[3]]),
|
||||
("A20", [self.news[4]]),
|
||||
]
|
||||
@@ -31,7 +31,6 @@ from club.views import (
|
||||
ClubListView,
|
||||
ClubMailingView,
|
||||
ClubMembersView,
|
||||
ClubNewsView,
|
||||
ClubOldMembersView,
|
||||
ClubPageEditView,
|
||||
ClubPageHistView,
|
||||
@@ -137,5 +136,4 @@ urlpatterns = [
|
||||
PosterDeleteView.as_view(),
|
||||
name="poster_delete",
|
||||
),
|
||||
path("<int:club_id>/news/", ClubNewsView.as_view(), name="news_list"),
|
||||
]
|
||||
+1
-35
@@ -37,7 +37,6 @@ from django.contrib.messages.views import SuccessMessageMixin
|
||||
from django.core.exceptions import NON_FIELD_ERRORS, PermissionDenied, ValidationError
|
||||
from django.core.paginator import InvalidPage, Paginator
|
||||
from django.db.models import F, Prefetch, Q, Sum
|
||||
from django.db.models.expressions import OuterRef, Subquery
|
||||
from django.db.models.functions import Length
|
||||
from django.http import Http404, StreamingHttpResponse
|
||||
from django.shortcuts import get_object_or_404, redirect
|
||||
@@ -72,7 +71,7 @@ from club.models import (
|
||||
MailingSubscription,
|
||||
Membership,
|
||||
)
|
||||
from com.models import NewsDate, Poster
|
||||
from com.models import Poster
|
||||
from com.views import (
|
||||
PosterCreateBaseView,
|
||||
PosterDeleteBaseView,
|
||||
@@ -81,7 +80,6 @@ from com.views import (
|
||||
)
|
||||
from core.auth.mixins import CanEditMixin, PermissionOrClubBoardRequiredMixin
|
||||
from core.models import Page, PageRev
|
||||
from core.utils import get_semester_code
|
||||
from core.views import BasePageEditView, DetailFormView, UseFragmentsMixin
|
||||
from core.views.mixins import (
|
||||
AllowFragment,
|
||||
@@ -136,11 +134,6 @@ class ClubTabsMixin(TabedViewMixin):
|
||||
"slug": "history",
|
||||
"name": _("History"),
|
||||
},
|
||||
{
|
||||
"url": reverse("club:news_list", kwargs={"club_id": self.object.id}),
|
||||
"slug": "events",
|
||||
"name": _("Events"),
|
||||
},
|
||||
]
|
||||
if self.request.user.can_edit(self.object):
|
||||
tab_list.extend(
|
||||
@@ -942,30 +935,3 @@ class PosterDeleteView(ClubTabsMixin, PosterDeleteBaseView):
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse_lazy("club:poster_list", kwargs={"club_id": self.club.id})
|
||||
|
||||
|
||||
class ClubNewsView(PermissionRequiredMixin, ClubTabsMixin, DetailView):
|
||||
pk_url_kwarg = "club_id"
|
||||
model = Club
|
||||
permission_required = "club.view_club"
|
||||
template_name = "club/club_news_list.jinja"
|
||||
current_tab = "events"
|
||||
|
||||
def get_context_data(self, **kwargs: Any):
|
||||
events = list(
|
||||
self.object.news.viewable_by(self.request.user)
|
||||
.annotate(
|
||||
first_date=Subquery(
|
||||
NewsDate.objects.filter(news_id=OuterRef("pk"))
|
||||
.order_by("start_date")
|
||||
.values("start_date")[:1]
|
||||
),
|
||||
)
|
||||
.prefetch_related("dates")
|
||||
.order_by("-first_date")
|
||||
)
|
||||
return super().get_context_data(**kwargs) | {
|
||||
"events": itertools.groupby(
|
||||
events, key=lambda event: get_semester_code(event.first_date.date())
|
||||
),
|
||||
}
|
||||
@@ -5,7 +5,6 @@
|
||||
margin-top: 20px;
|
||||
padding: 0.4em;
|
||||
width: 80%;
|
||||
background: $white-color;
|
||||
|
||||
h4 {
|
||||
margin-top: 1em;
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
h3 {
|
||||
--box-shadow: rgb(60 64 67 / 30%) 0 1px 3px 0, rgb(60 64 67 / 15%) 0 3px 7px 2px;
|
||||
background: lighten($second-color, 5%);
|
||||
background: var(--bg-yellow);
|
||||
box-shadow: var(--box-shadow);
|
||||
padding: .75rem;
|
||||
margin: 0 0 0.5em 0;
|
||||
@@ -85,7 +85,7 @@
|
||||
|
||||
#links_content {
|
||||
overflow: auto;
|
||||
box-shadow: $shadow-color 1px 1px 1px;
|
||||
box-shadow: var(--bg-darkened-off-white) 1px 1px 1px;
|
||||
min-height: 20em;
|
||||
padding: 1em;
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
}
|
||||
|
||||
#birthdays_content {
|
||||
box-shadow: $shadow-color 1px 1px 1px;
|
||||
box-shadow: var(--bg-darkened-off-white) 1px 1px 1px;
|
||||
padding: 1em;
|
||||
|
||||
ul.birthdays_year {
|
||||
@@ -123,7 +123,7 @@
|
||||
padding: 0.5em;
|
||||
|
||||
&:nth-child(even) {
|
||||
background: $secondary-neutral-light-color;
|
||||
background: var(--bg-off-white);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
|
||||
/* EVENTS TODAY AND NEXT FEW DAYS */
|
||||
.news_events_group {
|
||||
box-shadow: $shadow-color 1px 1px 1px;
|
||||
box-shadow: var(--bg-darkened-off-white) 1px 1px 1px;
|
||||
margin-left: 0;
|
||||
margin-bottom: 0.5em;
|
||||
|
||||
@@ -153,8 +153,8 @@
|
||||
display: table-cell;
|
||||
padding: 0.6em;
|
||||
vertical-align: middle;
|
||||
background: $primary-neutral-dark-color;
|
||||
color: $white-color;
|
||||
background: var(--deepblue);
|
||||
color: var(--text-white);
|
||||
text-transform: uppercase;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
@@ -180,7 +180,7 @@
|
||||
}
|
||||
|
||||
.news_event:nth-of-type(even) {
|
||||
background: $primary-neutral-light-color;
|
||||
background: var(--bg-white);
|
||||
}
|
||||
|
||||
.news_event {
|
||||
|
||||
@@ -1,123 +0,0 @@
|
||||
/*--------------------------------RESET--------------------------------*/
|
||||
/*--------------------------------RESET--------------------------------*/
|
||||
html,
|
||||
body,
|
||||
div,
|
||||
span,
|
||||
applet,
|
||||
object,
|
||||
iframe,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
p,
|
||||
blockquote,
|
||||
pre,
|
||||
a,
|
||||
abbr,
|
||||
acronym,
|
||||
address,
|
||||
big,
|
||||
cite,
|
||||
code,
|
||||
del,
|
||||
dfn,
|
||||
em,
|
||||
img,
|
||||
ins,
|
||||
kbd,
|
||||
q,
|
||||
s,
|
||||
samp,
|
||||
small,
|
||||
strike,
|
||||
sub,
|
||||
sup,
|
||||
tt,
|
||||
var,
|
||||
b,
|
||||
u,
|
||||
i,
|
||||
center,
|
||||
dl,
|
||||
dt,
|
||||
dd,
|
||||
ol,
|
||||
ul,
|
||||
li,
|
||||
fieldset,
|
||||
form,
|
||||
label,
|
||||
legend,
|
||||
table,
|
||||
caption,
|
||||
tbody,
|
||||
tfoot,
|
||||
thead,
|
||||
tr,
|
||||
th,
|
||||
td,
|
||||
article,
|
||||
aside,
|
||||
canvas,
|
||||
details,
|
||||
embed,
|
||||
figure,
|
||||
figcaption,
|
||||
footer,
|
||||
header,
|
||||
hgroup,
|
||||
menu,
|
||||
nav,
|
||||
output,
|
||||
ruby,
|
||||
section,
|
||||
summary,
|
||||
time,
|
||||
mark,
|
||||
audio,
|
||||
video {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
font-size: 100%;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
/* HTML5 display-role reset for older browsers */
|
||||
article,
|
||||
aside,
|
||||
details,
|
||||
figcaption,
|
||||
figure,
|
||||
footer,
|
||||
header,
|
||||
hgroup,
|
||||
menu,
|
||||
nav,
|
||||
section {
|
||||
display: block;
|
||||
}
|
||||
body {
|
||||
line-height: 1;
|
||||
}
|
||||
ol,
|
||||
ul {
|
||||
/* list-style: none;*/
|
||||
}
|
||||
blockquote,
|
||||
q {
|
||||
quotes: none;
|
||||
}
|
||||
blockquote:before,
|
||||
blockquote:after,
|
||||
q:before,
|
||||
q:after {
|
||||
content: none;
|
||||
}
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
@@ -1,41 +1,37 @@
|
||||
$first-color: hsl(220, 100%, 50%);
|
||||
$second-color: hsl(48, 100%, 67%);
|
||||
$primary-color: hsl(219.9, 53.7%, 50%);
|
||||
$secondary-color: hsl(204, 64%, 44%);
|
||||
$primary-color-text: hsl(0, 0%, 100%);
|
||||
$secondary-color-text: hsla(0, 0%, 0%, 0.87);
|
||||
/**
|
||||
* Sith theme variables
|
||||
*/
|
||||
:root {
|
||||
--bg-yellow: #ffe270;
|
||||
--bg-white: #f9fafb;
|
||||
--bg-off-white: #f0f0f0;
|
||||
--bg-darkened-off-white: #e3e3e3;
|
||||
--bg-lightgrey: #d4d4d4;
|
||||
|
||||
$primary-light-color: hsl(219.8, 46.4%, 64.9%);
|
||||
$primary-dark-color: hsl(203, 75%, 40%);
|
||||
--text-white: #f9fafb;
|
||||
--text-black: #2b2b2b;
|
||||
--text-red: #eb2f06;
|
||||
|
||||
$secondary-light-color: hsl(40, 68%, 65%);
|
||||
$secondary-dark-color: hsl(40, 68%, 35%);
|
||||
|
||||
$primary-neutral-color: hsl(219.6, 20.8%, 50%);
|
||||
$primary-neutral-light-color: hsl(0, 0%, 94%);
|
||||
$primary-neutral-dark-color: hsl(210, 29%, 29%);
|
||||
|
||||
$secondary-neutral-color: hsl(204, 64%, 44%);
|
||||
$secondary-neutral-light-color: hsl(0, 0%, 91%);
|
||||
$secondary-neutral-dark-color: hsl(40, 57.6%, 17%);
|
||||
|
||||
$white-color: hsl(219.6, 20.8%, 98%);
|
||||
$black-color: hsl(0, 0%, 17%);
|
||||
$red-text-color: #eb2f06;
|
||||
$hovered-red-text-color: #ff4d4d;
|
||||
--blue: #3b69c4;
|
||||
--lightblue: #1a78b3;
|
||||
// darkened-deepblue is 10% darker than deepblue
|
||||
// This is explicitely declared, because the `darken` scss function
|
||||
// isn't called at compile-time somehow.
|
||||
--deepblue: #354a5f;
|
||||
--darkened-deepblue: #23313e;
|
||||
}
|
||||
|
||||
/**
|
||||
* Brand colours.
|
||||
* Those are officially defined by their respective companies,
|
||||
* and so are more appropriate as scss variables.
|
||||
*/
|
||||
$faceblue: hsl(221, 44%, 41%);
|
||||
$twitblue: hsl(206, 82%, 63%);
|
||||
$discordblurple: #7289da;
|
||||
$instagradient: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
|
||||
$githubblack: rgb(22, 22, 20);
|
||||
|
||||
$shadow-color: rgb(223, 223, 223);
|
||||
|
||||
$background-button-color: hsl(0, 0%, 95%);
|
||||
|
||||
$deepblue: #354a5f;
|
||||
|
||||
@mixin shadow {
|
||||
box-shadow: rgba(60, 64, 67, 0.3) 0 1px 3px 0,
|
||||
rgba(60, 64, 67, 0.15) 0 4px 8px 3px;
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
}
|
||||
|
||||
.card {
|
||||
background-color: $primary-neutral-light-color;
|
||||
background-color: var(--bg-off-white);
|
||||
border-radius: 5px;
|
||||
position: relative;
|
||||
box-sizing: border-box;
|
||||
@@ -30,12 +30,12 @@
|
||||
gap: 20px;
|
||||
|
||||
&:disabled {
|
||||
background-color: darken($primary-neutral-light-color, 5%);
|
||||
background-color: var(--bg-darkened-off-white);
|
||||
opacity: 65%;
|
||||
}
|
||||
|
||||
&.clickable:not(:disabled):hover {
|
||||
background-color: darken($primary-neutral-light-color, 5%);
|
||||
background-color: var(--bg-darkened-off-white);
|
||||
}
|
||||
|
||||
&.selected {
|
||||
|
||||
@@ -11,7 +11,7 @@ ui-tab-group {
|
||||
.tab-headers {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
background-color: $primary-neutral-light-color;
|
||||
background-color: var(--bg-off-white);
|
||||
padding: 3px 12px 12px;
|
||||
column-gap: 20px;
|
||||
border-top-left-radius: 5px;
|
||||
@@ -25,23 +25,27 @@ ui-tab-group {
|
||||
background-color: unset;
|
||||
position: relative;
|
||||
|
||||
&:hover {
|
||||
background-color: var(--bg-lightgrey);
|
||||
}
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
border-bottom: 4px solid darken($primary-neutral-light-color, 10%);
|
||||
border-bottom: 4px solid var(--bg-lightgrey);
|
||||
border-radius: 2px;
|
||||
transition: all 0.2s ease-in-out;
|
||||
}
|
||||
|
||||
&:hover:after {
|
||||
border-bottom-color: darken($primary-neutral-light-color, 20%);
|
||||
filter: brightness(85%);
|
||||
}
|
||||
|
||||
&.active:after {
|
||||
border-bottom-color: $primary-dark-color;
|
||||
border-bottom-color: var(--lightblue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,92 +2,75 @@
|
||||
@import "devices";
|
||||
|
||||
footer.bottom-links {
|
||||
>section>a {
|
||||
> section > a {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
text-align: center;
|
||||
|
||||
hr {
|
||||
border: none;
|
||||
}
|
||||
|
||||
@media (max-width: $small-devices) {
|
||||
margin-top: 0.6em;
|
||||
padding: 1.25em;
|
||||
background-color: $primary-neutral-dark-color;
|
||||
background-color: var(--deepblue);
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
gap: 1.25em;
|
||||
|
||||
>section {
|
||||
|
||||
> section {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
gap: 0.8em;
|
||||
|
||||
}
|
||||
|
||||
a {
|
||||
color: $white-color;
|
||||
width: auto;
|
||||
color: var(--text-white);
|
||||
|
||||
&:hover {
|
||||
color: $white-color;
|
||||
text-shadow: 0.5px 0.5px 0.5px $shadow-color;
|
||||
text-shadow: 0.5px 0.5px 0.5px var(--bg-darkened-off-white);
|
||||
}
|
||||
}
|
||||
|
||||
.fa-github {
|
||||
color: $white-color;
|
||||
color: var(--text-white);
|
||||
}
|
||||
|
||||
hr {
|
||||
width: 100%;
|
||||
height: 0px;
|
||||
border: none;
|
||||
border-top: 0.5px solid $white-color;
|
||||
border-top: var(--bg-white) 1px solid;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media (min-width: $small-devices) {
|
||||
width: 90%;
|
||||
margin: 2em auto;
|
||||
|
||||
font-size: 90%;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
|
||||
section:first-of-type {
|
||||
margin: 0.6em 0;
|
||||
color: $white-color;
|
||||
border-radius: 5px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
background-color: $primary-neutral-dark-color;
|
||||
box-shadow: $shadow-color 0 0 15px;
|
||||
background-color: var(--deepblue);
|
||||
|
||||
a {
|
||||
color: $white-color;
|
||||
width: auto;
|
||||
padding: 0.8em;
|
||||
flex: 1;
|
||||
font-weight: bold;
|
||||
color: var(--text-white);
|
||||
|
||||
&:hover {
|
||||
color: $white-color;
|
||||
text-shadow: 0.5px 0.5px 0.5px $shadow-color;
|
||||
text-shadow: 0.5px 0.5px 0.5px var(--bg-darkened-off-white);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.fa-github {
|
||||
color: $githubblack;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: none;
|
||||
height: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
+10
-14
@@ -16,7 +16,6 @@
|
||||
input[type="file"] {
|
||||
border: none;
|
||||
text-decoration: none;
|
||||
background-color: $background-button-color;
|
||||
padding: 0.4em;
|
||||
margin: 0.1em;
|
||||
font-size: 1.2em;
|
||||
@@ -24,7 +23,7 @@
|
||||
color: black;
|
||||
|
||||
&:not(.link-like):not(:disabled):hover {
|
||||
background: hsl(0, 0%, 83%);
|
||||
background: var(--bg-lightgrey);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +52,7 @@
|
||||
.ts-control {
|
||||
border: none;
|
||||
text-decoration: none;
|
||||
background-color: $background-button-color;
|
||||
//background-color: $background-button-color;
|
||||
padding: 0.4em;
|
||||
margin: 0.1em;
|
||||
font-size: 1.2em;
|
||||
@@ -64,7 +63,7 @@
|
||||
textarea {
|
||||
border: none;
|
||||
text-decoration: none;
|
||||
background-color: $background-button-color;
|
||||
//background-color: $background-button-color;
|
||||
padding: 7px;
|
||||
font-size: 1.2em;
|
||||
border-radius: 5px;
|
||||
@@ -75,7 +74,7 @@
|
||||
border: none;
|
||||
text-decoration: none;
|
||||
font-size: 1.2em;
|
||||
background-color: $background-button-color;
|
||||
//background-color: $background-button-color;
|
||||
padding: 10px;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
@@ -83,14 +82,14 @@
|
||||
|
||||
a:not(.button) {
|
||||
text-decoration: none;
|
||||
color: $primary-dark-color;
|
||||
color: var(--lightblue);
|
||||
|
||||
&:hover {
|
||||
color: $primary-light-color;
|
||||
color: var(--blue);
|
||||
}
|
||||
|
||||
&:active {
|
||||
color: $primary-color;
|
||||
color: var(--blue);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -762,16 +761,13 @@ form {
|
||||
// a submit input that should look like a regular <a>
|
||||
input[type="submit"], button {
|
||||
&.link-like {
|
||||
color: $primary-dark-color;
|
||||
color: var(--lightblue);
|
||||
&:hover {
|
||||
color: $primary-light-color;
|
||||
color: var(--blue);
|
||||
}
|
||||
|
||||
&.link-red {
|
||||
color: $red-text-color;
|
||||
&:hover {
|
||||
color: $hovered-red-text-color;
|
||||
}
|
||||
color: var(--text-red);
|
||||
}
|
||||
font-weight: normal;
|
||||
font-size: 100%;
|
||||
|
||||
@@ -7,7 +7,7 @@ $background-color-hovered: #283747;
|
||||
|
||||
.header {
|
||||
box-sizing: border-box;
|
||||
background-color: $deepblue;
|
||||
background-color: var(--deepblue);
|
||||
box-shadow: 3px 3px 3px 0 #dfdfdf;
|
||||
border-radius: 0;
|
||||
width: 100%;
|
||||
@@ -96,7 +96,7 @@ $background-color-hovered: #283747;
|
||||
border-radius: 0;
|
||||
margin: 0;
|
||||
box-sizing: border-box;
|
||||
background-color: $deepblue;
|
||||
background-color: var(--deepblue);
|
||||
width: 45px;
|
||||
height: 25px;
|
||||
padding: 0;
|
||||
@@ -212,7 +212,7 @@ $background-color-hovered: #283747;
|
||||
background-position: center center;
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
background-color: $deepblue;
|
||||
background-color: var(--deepblue);
|
||||
}
|
||||
|
||||
>.options {
|
||||
@@ -298,7 +298,7 @@ $background-color-hovered: #283747;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
padding: 5px;
|
||||
background-color: $red-text-color;
|
||||
background-color: var(--text-red);
|
||||
border-radius: 50%;
|
||||
position: absolute;
|
||||
top: -50%;
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
.markdown {
|
||||
--bg-lightgrey: rgb(240, 241, 245);
|
||||
--border-lightgrey: rgb(215, 216, 220);
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
@@ -28,8 +25,8 @@
|
||||
font-size: 14px;
|
||||
tab-size: 4;
|
||||
border-radius: 4px;
|
||||
border: 1px solid var(--border-lightgrey);
|
||||
background-color: var(--bg-lightgrey);
|
||||
border: 1px solid var(--bg-lightgrey);
|
||||
background-color: var(--bg-off-white);
|
||||
padding: 1px 2px;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
$desktop-size: 500px;
|
||||
|
||||
nav.navbar {
|
||||
background-color: $primary-dark-color;
|
||||
background-color: var(--lightblue);
|
||||
margin: 1em;
|
||||
color: white;
|
||||
border-radius: 0.6em;
|
||||
|
||||
@@ -6,27 +6,21 @@
|
||||
margin: 30px;
|
||||
|
||||
button {
|
||||
background-color: $secondary-neutral-light-color;
|
||||
background-color: var(--bg-off-white);
|
||||
min-width: 37px;
|
||||
|
||||
&:hover {
|
||||
background-color: darken($secondary-neutral-light-color, 10%);
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
color: #fff;
|
||||
background-color: darken($secondary-neutral-light-color, 5%);
|
||||
background-color: var(--bg-lightgrey);
|
||||
}
|
||||
|
||||
&.active,
|
||||
&.active:hover {
|
||||
background-color: $primary-neutral-color;
|
||||
background-color: var(--deepblue);
|
||||
color: white;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
&:first-of-type,
|
||||
&:last-of-type {
|
||||
.pagination-arrow {
|
||||
// previous and next buttons
|
||||
&:disabled {
|
||||
// Hide the arrows when they are disabled, without
|
||||
|
||||
+52
-94
@@ -2,12 +2,21 @@
|
||||
@import "forms";
|
||||
@import "devices";
|
||||
|
||||
/*----- RESET -----*/
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
||||
/*--------------------------------GENERAL------------------------------*/
|
||||
|
||||
body {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
font-family: sans-serif;
|
||||
background-color: var(--bg-white);
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
[aria-busy] {
|
||||
@@ -57,7 +66,7 @@ body {
|
||||
|
||||
.collapse-header {
|
||||
color: white;
|
||||
background-color: $deepblue;
|
||||
background-color: var(--deepblue);
|
||||
padding: 5px 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -141,7 +150,7 @@ body {
|
||||
}
|
||||
|
||||
#info_box {
|
||||
background: $primary-neutral-light-color;
|
||||
background: var(--bg-off-white);
|
||||
|
||||
&:before {
|
||||
content: "\f05a";
|
||||
@@ -150,11 +159,11 @@ body {
|
||||
}
|
||||
|
||||
#alert_box {
|
||||
background: $second-color;
|
||||
background: var(--bg-yellow);
|
||||
|
||||
&:before {
|
||||
content: "\f06a";
|
||||
color: $white-color;
|
||||
color: var(--text-white);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -189,10 +198,10 @@ body {
|
||||
border-radius: 5px;
|
||||
|
||||
&.btn-blue {
|
||||
background-color: $deepblue;
|
||||
background-color: var(--deepblue);
|
||||
|
||||
&:not(:disabled):hover {
|
||||
background-color: darken($deepblue, 10%);
|
||||
background-color: var(--darkened-deepblue);
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
@@ -215,7 +224,7 @@ body {
|
||||
&.btn-green {
|
||||
$bg-color: rgba(0, 210, 83, 0.4);
|
||||
background-color: $bg-color;
|
||||
color: $black-color;
|
||||
color: var(--text-black);
|
||||
|
||||
&:not(:disabled):hover {
|
||||
background-color: darken($bg-color, 15%);
|
||||
@@ -272,8 +281,8 @@ body {
|
||||
/*--------------------------------CONTENT------------------------------*/
|
||||
#content {
|
||||
padding: 1.5em 3%;
|
||||
box-shadow: $shadow-color 0 5px 10px;
|
||||
background: $white-color;
|
||||
box-shadow: var(--bg-darkened-off-white) 0 5px 10px;
|
||||
background: var(--bg-white);
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
@@ -343,7 +352,7 @@ body {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
float: right;
|
||||
background: $primary-neutral-light-color;
|
||||
background: var(--bg-off-white);
|
||||
padding: 5px;
|
||||
border-radius: 6px;
|
||||
text-align: center;
|
||||
@@ -351,7 +360,7 @@ body {
|
||||
a {
|
||||
padding: 7px;
|
||||
display: inline-block;
|
||||
color: $black-color;
|
||||
color: var(--text-black);
|
||||
font-weight: bold;
|
||||
margin: 2px;
|
||||
flex: 1;
|
||||
@@ -359,14 +368,14 @@ body {
|
||||
white-space: nowrap;
|
||||
|
||||
&.selected_tab {
|
||||
background: $primary-color;
|
||||
color: $white-color;
|
||||
background: var(--blue);
|
||||
color: var(--text-white);
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: $primary-color;
|
||||
color: $white-color;
|
||||
background: var(--blue);
|
||||
color: var(--text-white);
|
||||
border-radius: 6px;
|
||||
}
|
||||
}
|
||||
@@ -398,28 +407,33 @@ body {
|
||||
}
|
||||
}
|
||||
|
||||
/* Fontawesome icons */
|
||||
.fa-brands, .fa-link {
|
||||
}
|
||||
|
||||
/* Fontawesome icons */
|
||||
.fa-brands, .fa-link {
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
|
||||
.fa-facebook {
|
||||
.fa-facebook {
|
||||
color: $faceblue;
|
||||
}
|
||||
}
|
||||
|
||||
.fa-discord {
|
||||
.fa-discord {
|
||||
color: $discordblurple;
|
||||
}
|
||||
}
|
||||
|
||||
.fa-square-instagram::before, .fa-instagram::before {
|
||||
.fa-square-instagram::before, .fa-instagram::before {
|
||||
background: $instagradient;
|
||||
background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.fa-bluesky, .fa-square-bluesky {
|
||||
.fa-bluesky, .fa-square-bluesky {
|
||||
color: #0f73ff;
|
||||
}
|
||||
}
|
||||
|
||||
.fa-github {
|
||||
color: $githubblack;
|
||||
}
|
||||
|
||||
@media screen and (max-width: $small-devices) {
|
||||
@@ -481,16 +495,6 @@ dt {
|
||||
margin-top: 25px;
|
||||
}
|
||||
|
||||
.edit-bar {
|
||||
display: block;
|
||||
margin: 4px;
|
||||
|
||||
a {
|
||||
display: inline-block;
|
||||
margin: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
.important {
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
@@ -503,7 +507,6 @@ table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
overflow: hidden;
|
||||
box-shadow: rgba(60, 64, 67, 0.3) 0 1px 3px 0,
|
||||
rgba(60, 64, 67, 0.15) 0 4px 8px 3px;
|
||||
@@ -515,25 +518,21 @@ table {
|
||||
}
|
||||
}
|
||||
|
||||
th {
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
td,
|
||||
th {
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
padding: 5px 10px;
|
||||
|
||||
>input[type="checkbox"] {
|
||||
> input[type="checkbox"] {
|
||||
padding: unset;
|
||||
}
|
||||
|
||||
>ul {
|
||||
> ul {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
>input[type="checkbox"] {
|
||||
> input[type="checkbox"] {
|
||||
padding: unset;
|
||||
}
|
||||
}
|
||||
@@ -543,10 +542,6 @@ td {
|
||||
border-collapse: collapse;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
>ul {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
th,
|
||||
@@ -556,23 +551,23 @@ thead td {
|
||||
}
|
||||
|
||||
thead {
|
||||
background-color: $deepblue;
|
||||
background-color: var(--deepblue);
|
||||
color: white;
|
||||
}
|
||||
|
||||
tbody>tr {
|
||||
tbody > tr {
|
||||
&:nth-child(even):not(.highlight) {
|
||||
background: $primary-neutral-light-color;
|
||||
background: var(--bg-off-white);
|
||||
}
|
||||
|
||||
&.clickable:hover {
|
||||
cursor: pointer;
|
||||
background: $secondary-neutral-light-color;
|
||||
background: var(--bg-lightgrey);
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&.highlight {
|
||||
color: $primary-dark-color;
|
||||
color: var(--lightblue);
|
||||
font-style: italic;
|
||||
}
|
||||
}
|
||||
@@ -598,7 +593,7 @@ em {
|
||||
}
|
||||
|
||||
.highlight {
|
||||
background: $second-color;
|
||||
background: var(--bg-yellow);
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@@ -700,15 +695,15 @@ u,
|
||||
height: 18em;
|
||||
overflow: hidden;
|
||||
border: 1px solid black;
|
||||
box-shadow: $shadow-color 1px 1px 1px;
|
||||
box-shadow: var(--bg-darkened-off-white) 1px 1px 1px;
|
||||
|
||||
&:hover {
|
||||
box-shadow: 1px 1px 5px $second-color;
|
||||
box-shadow: 1px 1px 5px var(--bg-yellow);
|
||||
}
|
||||
}
|
||||
|
||||
.matmat_user a {
|
||||
color: $primary-neutral-dark-color;
|
||||
color: var(--deepblue);
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
@@ -723,7 +718,6 @@ u,
|
||||
display: block;
|
||||
margin: 10px;
|
||||
padding: 10px;
|
||||
background: $white-color;
|
||||
}
|
||||
|
||||
textarea {
|
||||
@@ -731,43 +725,7 @@ textarea {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.ui-dialog .ui-dialog-buttonpane {
|
||||
bottom: 0;
|
||||
position: absolute;
|
||||
width: 97%;
|
||||
}
|
||||
|
||||
#cash_summary_form label,
|
||||
.inline {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.form_button {
|
||||
width: 150px;
|
||||
height: 120px;
|
||||
padding: 2px;
|
||||
display: inline-block;
|
||||
font-size: 0.8em;
|
||||
|
||||
span {
|
||||
width: 70px;
|
||||
float: right;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 50px;
|
||||
max-height: 50px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: bold;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
button {
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
@@ -71,7 +71,7 @@ main {
|
||||
border-radius: 50%;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background-color: $primary-neutral-light-color;
|
||||
background-color: var(--bg-white);
|
||||
|
||||
> span {
|
||||
font-size: small;
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
}
|
||||
|
||||
&:enabled>.fa {
|
||||
background-color: #354a5f;
|
||||
background-color: var(--deepblue);
|
||||
color: white;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
<meta property="og:image" content="{{ request.build_absolute_uri(static("core/img/logo_no_text.png")) }}" />
|
||||
{% endblock %}
|
||||
<link rel="shortcut icon" href="{{ static('core/img/favicon.ico') }}">
|
||||
<link rel="stylesheet" href="{{ static('core/base.css') }}">
|
||||
<link rel="stylesheet" href="{{ static('core/style.scss') }}">
|
||||
<link rel="stylesheet" href="{{ static('core/tooltips.scss') }}">
|
||||
<link rel="stylesheet" href="{{ static('core/markdown.scss') }}">
|
||||
|
||||
@@ -102,6 +102,7 @@
|
||||
@click.prevent="{{ page }}--"
|
||||
:disabled="{{ page }} <= 1"
|
||||
@keyup.right.window="{{ page }} = Math.min({{ nb_pages }}, {{ page }} + 1)"
|
||||
class="pagination-arrow"
|
||||
>
|
||||
<i class="fa fa-caret-left"></i>
|
||||
</button>
|
||||
@@ -112,6 +113,7 @@
|
||||
@click.prevent="{{ page }}++"
|
||||
:disabled="{{ page }} >= {{ nb_pages }}"
|
||||
@keyup.left.window="{{ page }} = Math.max(1, {{ page }} - 1)"
|
||||
class="pagination-arrow"
|
||||
>
|
||||
<i class="fa fa-caret-right"></i>
|
||||
</button>
|
||||
@@ -163,12 +165,14 @@
|
||||
href="?{{ querystring(request, page=current_page.previous_page_number()) }}"
|
||||
{%- endif -%}
|
||||
>
|
||||
<button>
|
||||
<button class="pagination-arrow">
|
||||
<i class="fa fa-caret-left"></i>
|
||||
</button>
|
||||
</a>
|
||||
{% else %}
|
||||
<button disabled="disabled"><i class="fa fa-caret-left"></i></button>
|
||||
<button disabled="disabled" class="pagination-arrow">
|
||||
<i class="fa fa-caret-left"></i>
|
||||
</button>
|
||||
{% endif %}
|
||||
{% for i in paginator.get_elided_page_range(current_page.number) %}
|
||||
{% if i == current_page.number %}
|
||||
@@ -201,12 +205,14 @@
|
||||
{%- else -%}
|
||||
href="?{{querystring(request, page=current_page.next_page_number())}}"
|
||||
{%- endif -%}
|
||||
><button>
|
||||
><button class="pagination-arrow">
|
||||
<i class="fa fa-caret-right"></i>
|
||||
</button>
|
||||
</a>
|
||||
{% else %}
|
||||
<button disabled="disabled"><i class="fa fa-caret-right"></i></button>
|
||||
<button disabled="disabled" class="pagination-arrow">
|
||||
<i class="fa fa-caret-right"></i>
|
||||
</button>
|
||||
{% endif %}
|
||||
</nav>
|
||||
{% endmacro %}
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
padding: 0.5em;
|
||||
margin: 0.2em;
|
||||
height: 100%;
|
||||
background: $secondary-neutral-light-color;
|
||||
background: var(--bg-off-white);
|
||||
|
||||
img {
|
||||
max-width: 70%;
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
.fa-plus,
|
||||
.fa-minus {
|
||||
cursor: pointer;
|
||||
background-color: #354a5f;
|
||||
background-color: var(--deepblue);
|
||||
color: white;
|
||||
border-radius: 50%;
|
||||
padding: 5px;
|
||||
|
||||
@@ -288,7 +288,7 @@ $min_col_width: 100px;
|
||||
border: none;
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
background-color: $primary-neutral-light-color;
|
||||
background-color: var(--bg-white);
|
||||
padding: 0.4em;
|
||||
margin: 0.1em;
|
||||
font-size: 1.18em;
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
}
|
||||
|
||||
.topic {
|
||||
border: solid $primary-neutral-color 1px;
|
||||
border: solid var(--darkened-deepblue) 1px;
|
||||
border-radius: 5px;
|
||||
padding: 1px;
|
||||
margin: 1px;
|
||||
|
||||
@@ -23,7 +24,7 @@
|
||||
}
|
||||
|
||||
a {
|
||||
color: $black-color;
|
||||
color: var(--text-black);
|
||||
}
|
||||
|
||||
a:hover {
|
||||
@@ -56,7 +57,7 @@
|
||||
}
|
||||
|
||||
.forum {
|
||||
background: $primary-neutral-light-color;
|
||||
background: var(--bg-white);
|
||||
padding: 1px;
|
||||
margin: 1px;
|
||||
|
||||
@@ -66,7 +67,7 @@
|
||||
}
|
||||
|
||||
a {
|
||||
color: $black-color;
|
||||
color: var(--text-black);
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
@@ -91,7 +92,7 @@
|
||||
|
||||
.category {
|
||||
margin-top: 5px;
|
||||
background: $secondary-color;
|
||||
background: var(--deepblue);
|
||||
color: white;
|
||||
border-radius: 10px 10px 0 0;
|
||||
.title {
|
||||
@@ -105,12 +106,12 @@
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
background: $secondary-neutral-light-color;
|
||||
background: var(--bg-off-white);
|
||||
border-radius: 5px;
|
||||
border: 1px darken($secondary-neutral-light-color, 10%) solid;
|
||||
border: 1px var(--bg-lightgrey) solid;
|
||||
|
||||
&:nth-child(odd) {
|
||||
background: $primary-neutral-light-color;
|
||||
background: var(--bg-white);
|
||||
}
|
||||
|
||||
.message-header {
|
||||
|
||||
+24
-129
@@ -6,7 +6,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-25 12:04+0100\n"
|
||||
"POT-Creation-Date: 2026-10-19 19:45+0200\n"
|
||||
"PO-Revision-Date: 2016-07-18\n"
|
||||
"Last-Translator: Maréchal <thomas.girod@utbm.fr\n"
|
||||
"Language-Team: AE info <ae.info@utbm.fr>\n"
|
||||
@@ -394,8 +394,7 @@ msgstr ""
|
||||
"de la présidence."
|
||||
|
||||
#: club/models.py core/models.py counter/models.py eboutic/models.py
|
||||
#: election/models.py pedagogy/models.py sas/models.py timetable/models.py
|
||||
#: trombi/models.py
|
||||
#: election/models.py pedagogy/models.py sas/models.py trombi/models.py
|
||||
msgid "user"
|
||||
msgstr "utilisateur"
|
||||
|
||||
@@ -581,7 +580,6 @@ msgid "Role"
|
||||
msgstr "Rôle"
|
||||
|
||||
#: club/templates/club/club_members.jinja
|
||||
#: club/templates/club/club_news_list.jinja
|
||||
#: club/templates/club/club_old_members.jinja
|
||||
#: core/templates/core/group_list.jinja core/templates/core/user_clubs.jinja
|
||||
msgid "Description"
|
||||
@@ -596,34 +594,6 @@ msgstr "Depuis"
|
||||
msgid "There are no members in this club."
|
||||
msgstr "Il n'y a pas de membres dans ce club."
|
||||
|
||||
#: club/templates/club/club_news_list.jinja
|
||||
#: com/templates/com/news_admin_list.jinja com/templates/com/news_edit.jinja
|
||||
#: com/templates/com/news_list.jinja core/templates/core/user_tools.jinja
|
||||
msgid "Create news"
|
||||
msgstr "Créer une nouvelle"
|
||||
|
||||
#: club/templates/club/club_news_list.jinja
|
||||
#, python-format
|
||||
msgid "Dates (%(nb_occurrences)s occurrences)"
|
||||
msgstr "Dates (%(nb_occurrences)s occurrences)"
|
||||
|
||||
#: club/templates/club/club_news_list.jinja
|
||||
msgid "Permalink"
|
||||
msgstr "Permalien"
|
||||
|
||||
#: club/templates/club/club_news_list.jinja
|
||||
#: com/templates/com/news_admin_list.jinja
|
||||
msgid "Summary"
|
||||
msgstr "Résumé"
|
||||
|
||||
#: club/templates/club/club_news_list.jinja
|
||||
msgid "No summary"
|
||||
msgstr "Pas de Résumé"
|
||||
|
||||
#: club/templates/club/club_news_list.jinja
|
||||
msgid "No detailed description"
|
||||
msgstr "Pas de description détaillée"
|
||||
|
||||
#: club/templates/club/club_old_members.jinja
|
||||
msgid "Club old members"
|
||||
msgstr "Anciens membres du club"
|
||||
@@ -1060,11 +1030,6 @@ msgstr "Anciens membres"
|
||||
msgid "History"
|
||||
msgstr "Historique"
|
||||
|
||||
#: club/views.py com/templates/com/news_admin_list.jinja
|
||||
#: core/templates/core/base/navbar.jinja
|
||||
msgid "Events"
|
||||
msgstr "Événements"
|
||||
|
||||
#: club/views.py core/templates/core/base/header.jinja core/views/user.py
|
||||
#: sas/templates/sas/picture.jinja trombi/views.py
|
||||
msgid "Tools"
|
||||
@@ -1352,6 +1317,11 @@ msgstr "Administration des nouvelles"
|
||||
msgid "News"
|
||||
msgstr "Nouvelles"
|
||||
|
||||
#: com/templates/com/news_admin_list.jinja com/templates/com/news_edit.jinja
|
||||
#: com/templates/com/news_list.jinja core/templates/core/user_tools.jinja
|
||||
msgid "Create news"
|
||||
msgstr "Créer une nouvelle"
|
||||
|
||||
#: com/templates/com/news_admin_list.jinja
|
||||
msgid "Weeklies"
|
||||
msgstr "Événements hebdomadaires"
|
||||
@@ -1366,6 +1336,10 @@ msgstr "Événements hebdomadaires affichées"
|
||||
msgid "Title"
|
||||
msgstr "Titre"
|
||||
|
||||
#: com/templates/com/news_admin_list.jinja
|
||||
msgid "Summary"
|
||||
msgstr "Résumé"
|
||||
|
||||
#: com/templates/com/news_admin_list.jinja com/templates/com/weekmail.jinja
|
||||
#: forum/templates/forum/forum.jinja sas/models.py
|
||||
msgid "Author"
|
||||
@@ -1393,6 +1367,11 @@ msgstr "Dépublier"
|
||||
msgid "Weeklies to moderate"
|
||||
msgstr "Nouvelles hebdomadaires à modérer"
|
||||
|
||||
#: com/templates/com/news_admin_list.jinja
|
||||
#: core/templates/core/base/navbar.jinja
|
||||
msgid "Events"
|
||||
msgstr "Événements"
|
||||
|
||||
#: com/templates/com/news_admin_list.jinja
|
||||
msgid "Displayed events"
|
||||
msgstr "Événements affichés"
|
||||
@@ -1890,7 +1869,7 @@ msgstr "département"
|
||||
msgid "dpt option"
|
||||
msgstr "Filière"
|
||||
|
||||
#: core/models.py pedagogy/models.py timetable/models.py
|
||||
#: core/models.py pedagogy/models.py
|
||||
msgid "semester"
|
||||
msgstr "semestre"
|
||||
|
||||
@@ -2015,18 +1994,6 @@ msgstr ""
|
||||
"Autorise les cotisants (ou les personnes whitelistées, si votre profil est "
|
||||
"caché) à accéder aux statistiques de votre compte AE"
|
||||
|
||||
#: core/models.py
|
||||
msgid "show your timetable to others"
|
||||
msgstr "montrez votre emploi du temps aux autres"
|
||||
|
||||
#: core/models.py
|
||||
msgid ""
|
||||
"Allow subscribers to see your timetable and to compare it to theirs (if you "
|
||||
"have filled it)"
|
||||
msgstr ""
|
||||
"Permet aux cotisants de voir votre emploi du temps et de le comparer au leur "
|
||||
"(si vous l'avez enregistré)"
|
||||
|
||||
#: core/models.py
|
||||
msgid "get a notification for every click"
|
||||
msgstr "avoir une notification pour chaque click"
|
||||
@@ -5234,7 +5201,7 @@ msgstr "heures THE"
|
||||
msgid "hours TE"
|
||||
msgstr "heures TE"
|
||||
|
||||
#: pedagogy/models.py timetable/models.py
|
||||
#: pedagogy/models.py
|
||||
msgid "ue"
|
||||
msgstr "UE"
|
||||
|
||||
@@ -6032,46 +5999,6 @@ msgstr "Membre existant"
|
||||
msgid "the groups that can create subscriptions"
|
||||
msgstr "les groupes pouvant créer des cotisations"
|
||||
|
||||
#: timetable/models.py
|
||||
msgid "timetable"
|
||||
msgstr "emploi du temps"
|
||||
|
||||
#: timetable/models.py
|
||||
msgid "timetables"
|
||||
msgstr "emplois du temps"
|
||||
|
||||
#: timetable/models.py
|
||||
msgid "weekday"
|
||||
msgstr "jour de la semaine"
|
||||
|
||||
#: timetable/models.py
|
||||
msgid "start at"
|
||||
msgstr "début"
|
||||
|
||||
#: timetable/models.py
|
||||
msgid "end at"
|
||||
msgstr "fin"
|
||||
|
||||
#: timetable/models.py
|
||||
msgid "course type"
|
||||
msgstr "type de cours"
|
||||
|
||||
#: timetable/models.py
|
||||
msgid "room"
|
||||
msgstr "salle"
|
||||
|
||||
#: timetable/models.py
|
||||
msgid "week group"
|
||||
msgstr "groupe de semaine"
|
||||
|
||||
#: timetable/models.py
|
||||
msgid "timetable slot"
|
||||
msgstr "créneau d'emploi du temps"
|
||||
|
||||
#: timetable/models.py
|
||||
msgid "timetable slots"
|
||||
msgstr "créneaux d'emploi du temps"
|
||||
|
||||
#: timetable/templates/timetable/generator.jinja
|
||||
msgid "Timetable generator"
|
||||
msgstr "Générateur d'emploi du temps"
|
||||
@@ -6102,44 +6029,8 @@ msgid "Generate"
|
||||
msgstr "Générer"
|
||||
|
||||
#: timetable/templates/timetable/generator.jinja
|
||||
msgid "Save on your profile"
|
||||
msgstr "Enregistrer sur votre profil"
|
||||
|
||||
#: timetable/templates/timetable/generator.jinja
|
||||
msgid "Make this timetable public"
|
||||
msgstr "Rendre cet emploi du temps publique"
|
||||
|
||||
#: timetable/templates/timetable/generator.jinja
|
||||
#, python-format
|
||||
msgid ""
|
||||
"You can change this at any time in <a href=\"%(url)s\">your preferences</a>"
|
||||
msgstr ""
|
||||
"Vous pouvez changer ceci n'importe quand dans <a href=\"%(url)s\">vos préférences</a>"
|
||||
|
||||
#: timetable/templates/timetable/generator.jinja
|
||||
msgid "Save timetable"
|
||||
msgstr "Enregistrer l'emploi du temps"
|
||||
|
||||
#: timetable/templates/timetable/generator.jinja
|
||||
#: trombi/templates/trombi/detail.jinja
|
||||
msgid "Export"
|
||||
msgstr "Export"
|
||||
|
||||
#: timetable/templates/timetable/generator.jinja
|
||||
msgid "Export to PNG"
|
||||
msgstr "Exporter en PNG"
|
||||
|
||||
#: timetable/views.py
|
||||
msgid "Timetables"
|
||||
msgstr "Emplois du temps"
|
||||
|
||||
#: timetable/views.py
|
||||
msgid "Generator"
|
||||
msgstr "Générateur"
|
||||
|
||||
#: timetable/views.py
|
||||
msgid "My timetables"
|
||||
msgstr "Mes emplois du temps"
|
||||
msgid "Save to PNG"
|
||||
msgstr "Sauver en PNG"
|
||||
|
||||
#: trombi/models.py
|
||||
msgid "subscription deadline"
|
||||
@@ -6254,6 +6145,10 @@ msgstr "Fin des inscriptions : "
|
||||
msgid "Comment deadline: "
|
||||
msgstr "Fin des commentaires : "
|
||||
|
||||
#: trombi/templates/trombi/detail.jinja
|
||||
msgid "Export"
|
||||
msgstr "Exporter"
|
||||
|
||||
#: trombi/templates/trombi/detail.jinja
|
||||
msgid "Add user"
|
||||
msgstr "Ajouter une personne"
|
||||
|
||||
@@ -23,7 +23,6 @@ $pedagogy-white-text: #f0f0f0;
|
||||
overflow-wrap: break-word;
|
||||
|
||||
.closed td.title {
|
||||
color: lighten($black-color, 10%);
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@@ -69,9 +68,6 @@ $pedagogy-white-text: #f0f0f0;
|
||||
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: 1fr 1fr;
|
||||
border-radius: 5px;
|
||||
@@ -158,9 +154,9 @@ $pedagogy-white-text: #f0f0f0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
background: $primary-neutral-light-color;
|
||||
background: var(--bg-off-white);
|
||||
border-radius: 5px;
|
||||
border: 1px darken($secondary-neutral-light-color, 10%) solid;
|
||||
border: 1px var(--bg-lightgrey) solid;
|
||||
|
||||
&.reported {
|
||||
border: #fc8181 1px solid;
|
||||
|
||||
@@ -27,7 +27,7 @@ main {
|
||||
font-size: 1.2em;
|
||||
line-height: 1.2em;
|
||||
color: black;
|
||||
background-color: $primary-neutral-light-color;
|
||||
background-color: var(--bg-white);
|
||||
border-radius: 5px;
|
||||
font-weight: bold;
|
||||
|
||||
@@ -36,7 +36,7 @@ main {
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
background-color: $primary-neutral-light-color;
|
||||
background-color: var(--bg-white);
|
||||
color: #d4d4d4;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -239,7 +239,7 @@
|
||||
>.tools {
|
||||
flex: 1;
|
||||
.btn {
|
||||
background-color: $primary-neutral-light-color;
|
||||
background-color: var(--bg-white);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
display: block;
|
||||
margin: 2em auto;
|
||||
.header {
|
||||
background-color: $white-color;
|
||||
background-color: var(--bg-white);
|
||||
font-weight: bold;
|
||||
box-shadow: none;
|
||||
width: calc(100% - var(--hour-side-width) - 10px);
|
||||
|
||||
Reference in new issue
Block a user