Compare commits
1 Commits
ccc6ed26fd
...
develop-1.
Author | SHA1 | Date | |
---|---|---|---|
995a6c87d9 |
@ -37,4 +37,3 @@ class EpisodeAdmin(SortableAdminBase, ChildPageAdmin):
|
||||
# readonly_fields = ('parent',)
|
||||
|
||||
inlines = (TrackInline, EpisodeSoundInline, DiffusionInline)
|
||||
ordering = ["-pub_date", "-pk"]
|
||||
|
@ -181,8 +181,8 @@ class Settings(BaseSettings):
|
||||
"""Allow comments."""
|
||||
|
||||
# ---- bleach
|
||||
ALLOWED_TAGS = [*sanitizer.ALLOWED_TAGS, "br", "p", "hr", "h2", "h3", "h4", "h5", "iframe", "pre"]
|
||||
ALLOWED_ATTRIBUTES = [*sanitizer.ALLOWED_ATTRIBUTES, "src", "width", "height", "frameborder", "href"]
|
||||
ALLOWED_TAGS = [*sanitizer.ALLOWED_TAGS, "br", "p", "h3", "h4", "h5"]
|
||||
ALLOWED_ATTRIBUTES = sanitizer.ALLOWED_ATTRIBUTES
|
||||
ALLOWED_PROTOCOLS = sanitizer.ALLOWED_PROTOCOLS
|
||||
|
||||
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Aircox 0.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-11-07 08:18+0100\n"
|
||||
"POT-Creation-Date: 2024-04-28 18:57+0000\n"
|
||||
"PO-Revision-Date: 2016-10-10 16:00+02\n"
|
||||
"Last-Translator: Aarys\n"
|
||||
"Language-Team: Aircox's translators team\n"
|
||||
@ -22,7 +22,7 @@ msgstr ""
|
||||
msgid "start"
|
||||
msgstr "début"
|
||||
|
||||
#: admin/diffusion.py:31 models/diffusion.py:127 models/program.py:182
|
||||
#: admin/diffusion.py:31 models/diffusion.py:127 models/program.py:172
|
||||
msgid "end"
|
||||
msgstr "fin"
|
||||
|
||||
@ -38,7 +38,7 @@ msgstr "Depuis"
|
||||
msgid "Until"
|
||||
msgstr "Jusque"
|
||||
|
||||
#: admin/filters.py:28 models/page.py:282 tests/admin/test_filters.py:53
|
||||
#: admin/filters.py:28 models/page.py:289 tests/admin/test_filters.py:53
|
||||
msgid "None"
|
||||
msgstr "Aucun"
|
||||
|
||||
@ -88,7 +88,7 @@ msgstr "temps"
|
||||
msgid "Search"
|
||||
msgstr "Chercher"
|
||||
|
||||
#: filters.py:36 models/episode.py:135
|
||||
#: filters.py:36 models/episode.py:131
|
||||
msgid "Podcast"
|
||||
msgstr "Podcast"
|
||||
|
||||
@ -140,33 +140,31 @@ msgstr "éditer les dates de diffusion"
|
||||
msgid "rerun"
|
||||
msgstr "rediffusion"
|
||||
|
||||
#: models/episode.py:61 templates/aircox/dashboard/statistics.html:29
|
||||
#: models/episode.py:60 templates/aircox/dashboard/statistics.html:29
|
||||
msgid "Episode"
|
||||
msgstr "Épisode"
|
||||
|
||||
#: models/episode.py:62
|
||||
#: templates/aircox/dashboard/widgets/program_episodes.html:4
|
||||
#: templates/aircox/program_form.html:10
|
||||
#: models/episode.py:61
|
||||
msgid "Episodes"
|
||||
msgstr "Épisodes"
|
||||
|
||||
#: models/episode.py:122 models/page.py:344 models/track.py:35
|
||||
#: models/episode.py:118 models/page.py:351 models/track.py:35
|
||||
msgid "order"
|
||||
msgstr "ordre"
|
||||
|
||||
#: models/episode.py:124 models/track.py:37
|
||||
#: models/episode.py:120 models/track.py:37
|
||||
msgid "position in the playlist"
|
||||
msgstr "position dans la playlist"
|
||||
|
||||
#: models/episode.py:127 models/sound.py:59
|
||||
#: models/episode.py:123 models/sound.py:59
|
||||
msgid "Broadcast"
|
||||
msgstr "Broadcast"
|
||||
|
||||
#: models/episode.py:129 models/sound.py:61
|
||||
#: models/episode.py:125 models/sound.py:61
|
||||
msgid "The sound is broadcasted on air"
|
||||
msgstr "Le son est radiodiffusé"
|
||||
|
||||
#: models/episode.py:136 templates/aircox/episode_detail.html:16
|
||||
#: models/episode.py:132 templates/aircox/episode_detail.html:16
|
||||
#: templates/aircox/episode_form.html:11 templates/aircox/episode_list.html:8
|
||||
msgid "Podcasts"
|
||||
msgstr "Podcasts"
|
||||
@ -215,7 +213,7 @@ msgstr "stop"
|
||||
msgid "other"
|
||||
msgstr "autre"
|
||||
|
||||
#: models/log.py:89 models/page.py:342 models/program.py:55
|
||||
#: models/log.py:89 models/page.py:349 models/program.py:55
|
||||
#: models/station.py:146
|
||||
msgid "station"
|
||||
msgstr "station"
|
||||
@ -257,7 +255,7 @@ msgstr "Log"
|
||||
msgid "Logs"
|
||||
msgstr "Logs"
|
||||
|
||||
#: models/page.py:43 models/page.py:345 models/track.py:45
|
||||
#: models/page.py:43 models/page.py:352 models/track.py:45
|
||||
msgid "title"
|
||||
msgstr "titre"
|
||||
|
||||
@ -273,8 +271,7 @@ msgstr "Catégorie"
|
||||
msgid "Categories"
|
||||
msgstr "Catégories"
|
||||
|
||||
#: models/page.py:84 templates/aircox/dashboard/widgets/program_episodes.html:6
|
||||
#: views/episode.py:150
|
||||
#: models/page.py:84
|
||||
msgid "draft"
|
||||
msgstr "brouillon"
|
||||
|
||||
@ -294,107 +291,107 @@ msgstr "statut"
|
||||
msgid "cover"
|
||||
msgstr "couverture"
|
||||
|
||||
#: models/page.py:102 models/page.py:322
|
||||
#: models/page.py:103 models/page.py:329
|
||||
msgid "content"
|
||||
msgstr "contenu"
|
||||
|
||||
#: models/page.py:195
|
||||
#: models/page.py:202
|
||||
msgid "category"
|
||||
msgstr "catégorie"
|
||||
|
||||
#: models/page.py:200
|
||||
#: models/page.py:207
|
||||
msgid "publication date"
|
||||
msgstr "date de publication"
|
||||
|
||||
#: models/page.py:202
|
||||
#: models/page.py:209
|
||||
msgid "featured"
|
||||
msgstr "en avant"
|
||||
|
||||
#: models/page.py:206
|
||||
#: models/page.py:213
|
||||
msgid "allow comments"
|
||||
msgstr "autoriser les commentaires"
|
||||
|
||||
#: models/page.py:221
|
||||
#: models/page.py:228
|
||||
msgid "Publication"
|
||||
msgstr "Publication"
|
||||
|
||||
#: models/page.py:222
|
||||
#: models/page.py:229
|
||||
msgid "Publications"
|
||||
msgstr "Publications"
|
||||
|
||||
#: models/page.py:283
|
||||
#: models/page.py:290
|
||||
msgid "Home Page"
|
||||
msgstr "Page d'accueil"
|
||||
|
||||
#: models/page.py:284
|
||||
#: models/page.py:291
|
||||
msgid "Timetable"
|
||||
msgstr "Horaires"
|
||||
|
||||
#: models/page.py:285
|
||||
#: models/page.py:292
|
||||
msgid "Programs list"
|
||||
msgstr "Liste des émissions"
|
||||
|
||||
#: models/page.py:286
|
||||
#: models/page.py:293
|
||||
msgid "Episodes list"
|
||||
msgstr "Liste des épisodes"
|
||||
|
||||
#: models/page.py:287
|
||||
#: models/page.py:294
|
||||
msgid "Articles list"
|
||||
msgstr "Liste des articles"
|
||||
|
||||
#: models/page.py:288
|
||||
#: models/page.py:295
|
||||
msgid "Publications list"
|
||||
msgstr "Publications"
|
||||
|
||||
#: models/page.py:289
|
||||
#: models/page.py:296
|
||||
msgid "Podcasts list"
|
||||
msgstr "Podcasts"
|
||||
|
||||
#: models/page.py:292
|
||||
#: models/page.py:299
|
||||
msgid "attach to"
|
||||
msgstr "attacher à"
|
||||
|
||||
#: models/page.py:297
|
||||
#: models/page.py:304
|
||||
msgid "display this page content to related element"
|
||||
msgstr "Afficher le contenu de cette page pour l'élément sélectionné"
|
||||
|
||||
#: models/page.py:315
|
||||
#: models/page.py:322
|
||||
msgid "related page"
|
||||
msgstr "page liée"
|
||||
|
||||
#: models/page.py:319
|
||||
#: models/page.py:326
|
||||
msgid "nickname"
|
||||
msgstr "pseudo"
|
||||
|
||||
#: models/page.py:320
|
||||
#: models/page.py:327
|
||||
msgid "email"
|
||||
msgstr "email"
|
||||
|
||||
#: models/page.py:335
|
||||
#: models/page.py:342
|
||||
msgid "Comment"
|
||||
msgstr "Commentaire"
|
||||
|
||||
#: models/page.py:336 templates/aircox/page_detail.html:51
|
||||
#: models/page.py:343 templates/aircox/page_detail.html:51
|
||||
msgid "Comments"
|
||||
msgstr "Commentaires"
|
||||
|
||||
#: models/page.py:343
|
||||
#: models/page.py:350
|
||||
msgid "menu"
|
||||
msgstr "menu"
|
||||
|
||||
#: models/page.py:346
|
||||
#: models/page.py:353
|
||||
msgid "url"
|
||||
msgstr "url"
|
||||
|
||||
#: models/page.py:351
|
||||
#: models/page.py:358
|
||||
msgid "page"
|
||||
msgstr "page"
|
||||
|
||||
#: models/page.py:357
|
||||
#: models/page.py:364
|
||||
msgid "Menu item"
|
||||
msgstr "Élément du menu"
|
||||
|
||||
#: models/page.py:358
|
||||
#: models/page.py:365
|
||||
msgid "Menu items"
|
||||
msgstr "Éléments de menu"
|
||||
|
||||
@ -414,7 +411,7 @@ msgstr "synchroniser"
|
||||
msgid "update later diffusions according to schedule changes"
|
||||
msgstr "met à jour les dates de diffusion à venir lorsque l'horaire change"
|
||||
|
||||
#: models/program.py:66 permissions.py:18
|
||||
#: models/program.py:66 permissions.py:17
|
||||
msgid "editors"
|
||||
msgstr "éditeurs"
|
||||
|
||||
@ -423,23 +420,23 @@ msgstr "éditeurs"
|
||||
msgid "Programs"
|
||||
msgstr "Émissions"
|
||||
|
||||
#: models/program.py:167 models/rerun.py:42
|
||||
#: models/program.py:157 models/rerun.py:42
|
||||
msgid "related program"
|
||||
msgstr "émission apparentée"
|
||||
|
||||
#: models/program.py:170
|
||||
#: models/program.py:160
|
||||
msgid "delay"
|
||||
msgstr "délai"
|
||||
|
||||
#: models/program.py:173
|
||||
#: models/program.py:163
|
||||
msgid "minimal delay between two sound plays"
|
||||
msgstr "délai minimum entre deux sons joués"
|
||||
|
||||
#: models/program.py:176
|
||||
#: models/program.py:166
|
||||
msgid "begin"
|
||||
msgstr "début"
|
||||
|
||||
#: models/program.py:179 models/program.py:185
|
||||
#: models/program.py:169 models/program.py:175
|
||||
msgid "used to define a time range this stream is played"
|
||||
msgstr "utilisé pour définir une période durant lequel ce stream est joué"
|
||||
|
||||
@ -553,6 +550,8 @@ msgid "downloadable"
|
||||
msgstr "téléchargeable"
|
||||
|
||||
#: models/sound.py:55
|
||||
#, fuzzy
|
||||
#| msgid "sound can be downloaded by visitors"
|
||||
msgid "Sound can be downloaded by website visitors."
|
||||
msgstr "Le son peut être téléchargé par les visiteurs du site."
|
||||
|
||||
@ -707,7 +706,7 @@ msgstr "Séparateur de l'éditeur de playlist"
|
||||
msgid " By %(filter_title)s "
|
||||
msgstr "Par %(filter_title)s "
|
||||
|
||||
#: templates/aircox/base.html:71
|
||||
#: templates/aircox/base.html:70
|
||||
msgid "Main menu"
|
||||
msgstr "Menu principal"
|
||||
|
||||
@ -736,7 +735,8 @@ msgid "Last Comments"
|
||||
msgstr "Derniers commentaires"
|
||||
|
||||
#: templates/aircox/dashboard/statistics.html:4
|
||||
#: templates/aircox/widgets/nav.html:41 views/admin.py:35
|
||||
#: templates/aircox/widgets/nav.html:41 tests/test_admin_site.py:40
|
||||
#: views/admin.py:35
|
||||
msgid "Statistics"
|
||||
msgstr "Statistiques"
|
||||
|
||||
@ -905,56 +905,53 @@ msgid "Post comment"
|
||||
msgstr "Commenter"
|
||||
|
||||
#: templates/aircox/page_form.html:14
|
||||
#, python-format
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Create a %(model)s"
|
||||
msgid "Create a %(model)s"
|
||||
msgstr "Ajouter un %(model)s"
|
||||
msgstr "Ajouter %(models)s"
|
||||
|
||||
#: templates/aircox/page_form.html:34
|
||||
#: templates/aircox/page_form.html:28
|
||||
msgid "Select an image"
|
||||
msgstr "Sélectionner une image"
|
||||
|
||||
#: templates/aircox/page_form.html:50
|
||||
#: templates/aircox/page_form.html:44
|
||||
msgid "Are you sure you want to remove this item from server?"
|
||||
msgstr "Êtes-vous sûr de vouloir retirer ce fichier du serveur?"
|
||||
|
||||
#: templates/aircox/page_form.html:97
|
||||
#: templates/aircox/page_form.html:91
|
||||
msgid "Change cover"
|
||||
msgstr "Changer de couverture"
|
||||
|
||||
#: templates/aircox/page_form.html:135
|
||||
#: templates/aircox/page_form.html:125
|
||||
msgid "Update"
|
||||
msgstr "Mise à jour"
|
||||
|
||||
#: templates/aircox/program_detail.html:26
|
||||
#: templates/aircox/program_detail.html:24
|
||||
#, python-format
|
||||
msgid "Rerun of %(date)s"
|
||||
msgstr "Rediffusion du %(date)s"
|
||||
|
||||
#: templates/aircox/program_detail.html:27
|
||||
#: templates/aircox/program_detail.html:25
|
||||
msgid "Rerun"
|
||||
msgstr "Rediffusion"
|
||||
|
||||
#: templates/aircox/program_detail.html:48
|
||||
#: templates/aircox/program_detail.html:41
|
||||
msgid "Last Episodes"
|
||||
msgstr "Derniers Épisodes"
|
||||
|
||||
#: templates/aircox/program_detail.html:49
|
||||
#: templates/aircox/program_detail.html:42
|
||||
msgid "All episodes"
|
||||
msgstr "Tous les épisodes"
|
||||
|
||||
#: templates/aircox/program_detail.html:56
|
||||
#: templates/aircox/program_detail.html:49
|
||||
msgid "Last Articles"
|
||||
msgstr "Derniers articles"
|
||||
|
||||
#: templates/aircox/program_detail.html:57
|
||||
#: templates/aircox/program_detail.html:50
|
||||
msgid "All articles"
|
||||
msgstr "Tous les articles"
|
||||
|
||||
#: templates/aircox/program_form.html:12
|
||||
msgid "New episode"
|
||||
msgstr "Nouvel épisode"
|
||||
|
||||
#: templates/aircox/program_form.html:17
|
||||
#: templates/aircox/program_form.html:13
|
||||
msgid "Editors"
|
||||
msgstr "Éditeurs"
|
||||
|
||||
@ -1024,7 +1021,7 @@ msgstr "Prochain"
|
||||
msgid "Dashboard"
|
||||
msgstr "Tableau de bord"
|
||||
|
||||
#: templates/aircox/widgets/nav.html:50
|
||||
#: templates/aircox/widgets/nav.html:47
|
||||
msgid "Disconnect"
|
||||
msgstr "Déconnexion"
|
||||
|
||||
@ -1247,35 +1244,31 @@ msgstr "dashboard/"
|
||||
msgid "dashboard/program/<pk>/"
|
||||
msgstr "dashboard/emissions/<pk>/"
|
||||
|
||||
#: urls.py:131
|
||||
msgid "dashboard/program/<pk>/add-episode/"
|
||||
msgstr "dashboard/emissions/<pk>/nouvel-episode/"
|
||||
|
||||
#: urls.py:133
|
||||
#: urls.py:130
|
||||
msgid "dashboard/episodes/<pk>/"
|
||||
msgstr "dashboard/episodes/<pk>/"
|
||||
|
||||
#: urls.py:134
|
||||
#: urls.py:131
|
||||
msgid "dashboard/statistics/"
|
||||
msgstr "dashboard/statistiques/"
|
||||
|
||||
#: urls.py:135
|
||||
#: urls.py:132
|
||||
msgid "dashboard/statistics/<date:date>/"
|
||||
msgstr "dashboard/statistiques/<date:date>/"
|
||||
|
||||
#: urls.py:136
|
||||
#: urls.py:133
|
||||
msgid "dashboard/users/"
|
||||
msgstr "dashboard/utilisateurs/"
|
||||
|
||||
#: urls.py:138
|
||||
#: urls.py:135
|
||||
msgid "errors/no-station/"
|
||||
msgstr "erreurs/pas-de-station/"
|
||||
|
||||
#: views/page.py:100
|
||||
#: views/page.py:89
|
||||
#, python-brace-format
|
||||
msgid "{model}"
|
||||
msgstr "{model}"
|
||||
|
||||
#: views/page.py:210
|
||||
#: views/page.py:204
|
||||
msgid "comments are not allowed"
|
||||
msgstr "les commentaires ne sont pas autorisés"
|
||||
|
@ -2,7 +2,6 @@ import os
|
||||
|
||||
from django.conf import settings as d_settings
|
||||
from django.db import models
|
||||
from django.urls import reverse
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
@ -86,9 +85,6 @@ class Episode(ChildPage):
|
||||
)
|
||||
return super().get_init_kwargs_from(page, title=title, program=page, **kwargs)
|
||||
|
||||
def get_absolute_url(self):
|
||||
return reverse(self.detail_url_name, kwargs={"slug": self.slug})
|
||||
|
||||
|
||||
class EpisodeSoundQuerySet(models.QuerySet):
|
||||
def episode(self, episode):
|
||||
|
@ -182,7 +182,8 @@ class BasePage(Renderable, models.Model):
|
||||
|
||||
# FIXME: rename
|
||||
class PageQuerySet(BasePageQuerySet):
|
||||
pass
|
||||
def published(self):
|
||||
return self.filter(status=Page.STATUS_PUBLISHED, pub_date__lte=tz.now())
|
||||
|
||||
|
||||
class Page(BasePage):
|
||||
@ -240,7 +241,7 @@ class ChildPage(Page):
|
||||
|
||||
@property
|
||||
def display_title(self):
|
||||
if self.title:
|
||||
if self.is_published:
|
||||
return self.title
|
||||
return self.parent and self.parent.title or ""
|
||||
|
||||
|
@ -23,7 +23,6 @@ class PagePermissions:
|
||||
"""Format used for permission name (displayed to humans)."""
|
||||
perms_codename_format = "{obj._meta.label_lower}_{obj.pk}_{perm}"
|
||||
"""Format used for permissions codename."""
|
||||
perms_cn_format = "{obj._meta.model_name}_{obj.pk}_{perm}"
|
||||
|
||||
def __init__(self, model):
|
||||
self.model = model
|
||||
@ -79,7 +78,7 @@ class PagePermissions:
|
||||
# TODO: avoid multiple database hits
|
||||
for name in infos["perms"]:
|
||||
perm, _ = Permission.objects.get_or_create(
|
||||
codename=self.perms_cn_format.format(obj=obj, perm=name),
|
||||
codename=self.perms_codename_format.format(obj=obj, perm=name),
|
||||
content_type=ContentType.objects.get_for_model(obj),
|
||||
defaults={"name": self.perms_name_format.format(obj=obj, perm=name)},
|
||||
)
|
||||
|
@ -16,7 +16,6 @@ Usefull context:
|
||||
<meta name="description" content="{{ site.description }}" />
|
||||
<meta name="keywords" content="{{ site.tags }}" />
|
||||
<meta name="generator" content="Aircox" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<link rel="icon" href="{% thumbnail site.favicon 32x32 crop %}" />
|
||||
|
||||
{% block assets %}
|
||||
@ -76,8 +75,10 @@ Usefull context:
|
||||
{% for item, render in items %}
|
||||
{{ render }}
|
||||
{% endfor %}
|
||||
{% include "./widgets/nav.html" %}
|
||||
{% endblock %}
|
||||
{% if user.is_authenticated %}
|
||||
{% include "./widgets/nav.html" %}
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
</nav>
|
||||
|
@ -7,11 +7,9 @@
|
||||
{% endblock %}
|
||||
|
||||
{% block page-form-actions %}
|
||||
<a class="button secondary withmargin" href="{% url 'episode-list' parent_slug=object.slug %}">{% trans "Episodes" %}</a>
|
||||
<a class="button secondary withmargin" href="{% url 'program-add-episode' object.pk %}" target="_self">{% trans "New episode" %}</a>
|
||||
{% if object and object.pk and request.user.is_superuser %}
|
||||
<button type="button"
|
||||
class="button secondary withmargin"
|
||||
class="button secondary"
|
||||
@click="$refs['group-users-modal'].open({id: {{ object.editors_group_id }}, name: '{{ object.editors_group.name }}' })">{% translate "Editors" %}</button>
|
||||
|
||||
{{ block.super }}
|
||||
|
@ -1,20 +1,11 @@
|
||||
{% load aircox i18n %}
|
||||
{% if not user.is_authenticated %}
|
||||
<div class="dropdown-trigger nav-item">
|
||||
<a class="button square" href="{% url 'dashboard' %}" style="background-color:unset;">
|
||||
<span class="icon">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="dropdown is-hoverable is-right" style="display:block;">
|
||||
<div class="dropdown-trigger nav-item">
|
||||
<a class="button square" aria-haspopup="true" aria-controls="dropdown-menu" style="background-color:unset;">
|
||||
<div class="dropdown is-hoverable is-right">
|
||||
<div class="dropdown-trigger">
|
||||
<button class="button square" aria-haspopup="true" aria-controls="dropdown-menu" type="button">
|
||||
<span class="icon">
|
||||
<i class="fa-regular fa-user" aria-hidden="true"></i>
|
||||
<i class="fa fa-user" aria-hidden="true"></i>
|
||||
</span>
|
||||
</a>
|
||||
</button>
|
||||
</div>
|
||||
<div class="dropdown-menu" id="dropdown-menu" role="menu" style="z-index:200">
|
||||
<div class="dropdown-content">
|
||||
@ -49,17 +40,11 @@
|
||||
{% translate "Statistics" %}
|
||||
</a>
|
||||
{% endblock %}
|
||||
{% endif %}
|
||||
{% if user.is_authenticated %}
|
||||
<hr class="dropdown-divider" />
|
||||
<form id="logout" action="{% url 'logout' %}" method="post">
|
||||
{% csrf_token %}
|
||||
<a class="dropdown-item" href="#" type="submit" onclick="document.getElementById('logout').submit();">
|
||||
{% translate "Disconnect" %}
|
||||
</a>
|
||||
</form>
|
||||
{% endif %}
|
||||
<a class="dropdown-item" href="{% url "logout" %}" data-force-reload="1">
|
||||
{% translate "Disconnect" %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
@ -13,14 +13,14 @@
|
||||
{% with request.resolver_match.view_name as view_name %}
|
||||
|
||||
{% if request.path != object.get_absolute_url %}
|
||||
<a href="{% url view_name|detail_view page.slug %}" target="_self" title="{% translate 'View' %} {{ page }}" class="button secondary withmargin">
|
||||
<a href="{% url view_name|detail_view page.slug %}" target="_self" title="{% translate 'View' %} {{ page }}">
|
||||
<span class="icon">
|
||||
<i class="fa-regular fa-eye"></i>
|
||||
</span>
|
||||
<span>{% translate 'View' %} </span>
|
||||
</a>
|
||||
{% elif can_edit %}
|
||||
<a href="{% url view_name|edit_view page.pk %}" target="_self" title="{% translate 'Edit' %} {{ page }}" class="button secondary withmargin">
|
||||
<a href="{% url view_name|edit_view page.pk %}" target="_self" title="{% translate 'Edit' %} {{ page }}">
|
||||
<span class="icon">
|
||||
<i class="fa-solid fa-pencil"></i>
|
||||
</span>
|
||||
|
@ -181,8 +181,3 @@ def is_checkbox(field):
|
||||
def is_select(field):
|
||||
"""Return True if field is a select."""
|
||||
return isinstance(field.widget, forms.Select)
|
||||
|
||||
|
||||
@register.filter
|
||||
def model_name(instance):
|
||||
return instance.__class__.__name__
|
||||
|
@ -127,9 +127,6 @@ urls = [
|
||||
# ---- dashboard
|
||||
path(_("dashboard/"), views.dashboard.DashboardView.as_view(), name="dashboard"),
|
||||
path(_("dashboard/program/<pk>/"), views.program.ProgramUpdateView.as_view(), name="program-edit"),
|
||||
path(
|
||||
_("dashboard/program/<pk>/add-episode/"), views.episode.EpisodeCreateView.as_view(), name="program-add-episode"
|
||||
),
|
||||
path(_("dashboard/episodes/<pk>/"), views.episode.EpisodeUpdateView.as_view(), name="episode-edit"),
|
||||
path(_("dashboard/statistics/"), views.dashboard.StatisticsView.as_view(), name="dashboard-statistics"),
|
||||
path(_("dashboard/statistics/<date:date>/"), views.dashboard.StatisticsView.as_view(), name="dashboard-statistics"),
|
||||
|
@ -1,9 +1,5 @@
|
||||
from django.contrib.auth.mixins import UserPassesTestMixin
|
||||
from django.http import Http404, HttpResponseRedirect
|
||||
from django.shortcuts import get_object_or_404
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.views.generic.base import View
|
||||
|
||||
from aircox.models import Episode, Program, StaticPage, Track
|
||||
from aircox import forms, filters, permissions
|
||||
@ -16,7 +12,6 @@ __all__ = (
|
||||
"EpisodeDetailView",
|
||||
"EpisodeListView",
|
||||
"PodcastListView",
|
||||
"EpisodeCreateView",
|
||||
"EpisodeUpdateView",
|
||||
)
|
||||
|
||||
@ -40,17 +35,6 @@ class EpisodeDetailView(PageDetailView):
|
||||
def get_related_url(self):
|
||||
return reverse("episode-list", kwargs={"parent_slug": self.object.parent.slug})
|
||||
|
||||
def get(self, *args, **kwargs):
|
||||
"""When episode is unpublished and user not authorized, redirect to
|
||||
parent page."""
|
||||
try:
|
||||
self.object = super().get_object()
|
||||
except Http404:
|
||||
episode = get_object_or_404(Episode, slug=self.kwargs["slug"])
|
||||
return HttpResponseRedirect(reverse("program-detail", kwargs={"slug": episode.program.slug}))
|
||||
context = self.get_context_data(object=self.object)
|
||||
return self.render_to_response(context)
|
||||
|
||||
|
||||
@attach
|
||||
class EpisodeListView(PageListView):
|
||||
@ -71,13 +55,6 @@ class EpisodeUpdateView(UserPassesTestMixin, VueFormDataMixin, PageUpdateView):
|
||||
form_class = forms.EpisodeForm
|
||||
template_name = "aircox/episode_form.html"
|
||||
|
||||
def get_form_kwargs(self, *args, **kwargs):
|
||||
"""Render selected attribute on option 0."""
|
||||
fk = super().get_form_kwargs(*args, **kwargs)
|
||||
if not fk["instance"].status:
|
||||
fk["initial"]["status"] = "0"
|
||||
return fk
|
||||
|
||||
def can_edit(self, obj):
|
||||
return self.test_func()
|
||||
|
||||
@ -162,17 +139,3 @@ class EpisodeUpdateView(UserPassesTestMixin, VueFormDataMixin, PageUpdateView):
|
||||
if invalid:
|
||||
return self.get(request, **formsets)
|
||||
return resp
|
||||
|
||||
|
||||
class EpisodeCreateView(UserPassesTestMixin, View):
|
||||
def get(self, request, **kwargs):
|
||||
program = self.get_object()
|
||||
episode = Episode.objects.create(program=program, title="%s (%s)" % (program.title, _("draft")))
|
||||
return HttpResponseRedirect(reverse("episode-edit", kwargs={"pk": episode.pk}))
|
||||
|
||||
def test_func(self):
|
||||
program = self.get_object()
|
||||
return permissions.program.can(self.request.user, "update", program)
|
||||
|
||||
def get_object(self):
|
||||
return get_object_or_404(Program, pk=self.kwargs["pk"])
|
||||
|
@ -148,7 +148,7 @@ class PageListView(FiltersMixin, BasePageListView):
|
||||
return super().get_filterset(data, query)
|
||||
|
||||
def get_queryset(self):
|
||||
qs = super().get_queryset().select_related("category").order_by("-pub_date", "-pk")
|
||||
qs = super().get_queryset().select_related("category").order_by("-pub_date")
|
||||
cat_ids = self.model.objects.published().values_list("category_id", flat=True)
|
||||
self.categories = Category.objects.filter(id__in=cat_ids)
|
||||
return qs
|
||||
|
@ -1,136 +0,0 @@
|
||||
from django.urls import include, path, register_converter
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from rest_framework.routers import DefaultRouter
|
||||
|
||||
from . import models, views, viewsets
|
||||
from .converters import DateConverter, PagePathConverter, WeekConverter
|
||||
|
||||
__all__ = ["api", "urls"]
|
||||
|
||||
|
||||
register_converter(PagePathConverter, "page_path")
|
||||
register_converter(DateConverter, "date")
|
||||
register_converter(WeekConverter, "week")
|
||||
|
||||
|
||||
# urls = [
|
||||
# path('on_air', views.on_air, name='aircox.on_air'),
|
||||
# path('monitor', views.Monitor.as_view(), name='aircox.monitor'),
|
||||
# path('stats', views.StatisticsView.as_view(), name='aircox.stats'),
|
||||
# ]
|
||||
|
||||
|
||||
router = DefaultRouter()
|
||||
router.register("user", viewsets.UserViewSet, basename="user")
|
||||
router.register("group", viewsets.GroupViewSet, basename="group")
|
||||
router.register("usergroup", viewsets.UserGroupViewSet, basename="usergroup")
|
||||
|
||||
router.register("images", viewsets.ImageViewSet, basename="image")
|
||||
router.register("sound", viewsets.SoundViewSet, basename="sound")
|
||||
router.register("track", viewsets.TrackROViewSet, basename="track")
|
||||
router.register("comment", viewsets.CommentViewSet, basename="comment")
|
||||
|
||||
|
||||
api = [
|
||||
path("logs/", views.log.LogListAPIView.as_view(), name="live"),
|
||||
path(
|
||||
"user/settings/",
|
||||
viewsets.UserSettingsViewSet.as_view({"get": "retrieve", "post": "update", "put": "update"}),
|
||||
name="user-settings",
|
||||
),
|
||||
] + router.urls
|
||||
|
||||
|
||||
urls = [
|
||||
path("", views.home.HomeView.as_view(), name="home"),
|
||||
path("api/", include((api, "aircox"), namespace="api")),
|
||||
# ---- ---- objects views
|
||||
# ---- articles
|
||||
path(
|
||||
_("articles/<slug:slug>/"),
|
||||
views.article.ArticleDetailView.as_view(),
|
||||
name="article-detail",
|
||||
),
|
||||
path(
|
||||
_("articles/"),
|
||||
views.article.ArticleListView.as_view(model=models.article.Article),
|
||||
name="article-list",
|
||||
),
|
||||
path(
|
||||
_("articles/c/<slug:category_slug>/"),
|
||||
views.article.ArticleListView.as_view(model=models.article.Article),
|
||||
name="article-list",
|
||||
),
|
||||
# ---- timetable
|
||||
path(_("timetable/"), views.diffusion.TimeTableView.as_view(), name="timetable-list"),
|
||||
path(
|
||||
_("timetable/<date:date>/"),
|
||||
views.diffusion.TimeTableView.as_view(),
|
||||
name="timetable-list",
|
||||
),
|
||||
# ---- pages
|
||||
path(
|
||||
_("publications/"),
|
||||
views.PageListView.as_view(model=models.Page, attach_to_value=models.StaticPage.Target.PAGES),
|
||||
name="page-list",
|
||||
),
|
||||
path(
|
||||
_("publications/c/<slug:category_slug>/"),
|
||||
views.PageListView.as_view(model=models.Page, attach_to_value=models.StaticPage.Target.PAGES),
|
||||
name="page-list",
|
||||
),
|
||||
path(
|
||||
_("pages/<slug:slug>/"),
|
||||
views.BasePageDetailView.as_view(
|
||||
model=models.StaticPage,
|
||||
queryset=models.StaticPage.objects.filter(attach_to__isnull=True),
|
||||
),
|
||||
name="static-page-detail",
|
||||
),
|
||||
path(
|
||||
_("pages/"),
|
||||
views.BasePageListView.as_view(
|
||||
model=models.StaticPage,
|
||||
queryset=models.StaticPage.objects.filter(attach_to__isnull=True),
|
||||
),
|
||||
name="static-page-list",
|
||||
),
|
||||
# ---- programs
|
||||
path(_("programs/"), views.program.ProgramListView.as_view(), name="program-list"),
|
||||
path(_("programs/c/<slug:category_slug>/"), views.program.ProgramListView.as_view(), name="program-list"),
|
||||
path(
|
||||
_("programs/<slug:slug>/"),
|
||||
views.program.ProgramDetailView.as_view(),
|
||||
name="program-detail",
|
||||
),
|
||||
path(_("programs/<slug:parent_slug>/articles/"), views.article.ArticleListView.as_view(), name="article-list"),
|
||||
path(_("programs/<slug:parent_slug>/podcasts/"), views.episode.PodcastListView.as_view(), name="podcast-list"),
|
||||
path(_("programs/<slug:parent_slug>/episodes/"), views.episode.EpisodeListView.as_view(), name="episode-list"),
|
||||
path(
|
||||
_("programs/<slug:parent_slug>/diffusions/"), views.diffusion.DiffusionListView.as_view(), name="diffusion-list"
|
||||
),
|
||||
path(
|
||||
_("programs/<slug:parent_slug>/publications/"),
|
||||
views.PageListView.as_view(model=models.Page, attach_to_value=models.StaticPage.Target.PAGES),
|
||||
name="page-list",
|
||||
),
|
||||
# ---- episodes
|
||||
path(_("programs/episodes/"), views.episode.EpisodeListView.as_view(), name="episode-list"),
|
||||
path(_("programs/episodes/c/<slug:category_slug>/"), views.episode.EpisodeListView.as_view(), name="episode-list"),
|
||||
path(
|
||||
_("programs/episodes/<slug:slug>/"),
|
||||
views.episode.EpisodeDetailView.as_view(),
|
||||
name="episode-detail",
|
||||
),
|
||||
path(_("podcasts/"), views.episode.PodcastListView.as_view(), name="podcast-list"),
|
||||
path(_("podcasts/c/<slug:category_slug>/"), views.episode.PodcastListView.as_view(), name="podcast-list"),
|
||||
# ---- dashboard
|
||||
path(_("dashboard/"), views.dashboard.DashboardView.as_view(), name="dashboard"),
|
||||
path(_("dashboard/program/<pk>/"), views.program.ProgramUpdateView.as_view(), name="program-edit"),
|
||||
path(_("dashboard/episodes/<pk>/"), views.episode.EpisodeUpdateView.as_view(), name="episode-edit"),
|
||||
path(_("dashboard/statistics/"), views.dashboard.StatisticsView.as_view(), name="dashboard-statistics"),
|
||||
path(_("dashboard/statistics/<date:date>/"), views.dashboard.StatisticsView.as_view(), name="dashboard-statistics"),
|
||||
path(_("dashboard/users/"), views.auth.UserListView.as_view(), name="user-list"),
|
||||
# ---- others
|
||||
path(_("errors/no-station/"), views.errors.NoStationErrorView.as_view(), name="errors-no-station"),
|
||||
]
|
@ -1,239 +0,0 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-11-12 10:10+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: aircox_urls.py:50
|
||||
msgid "articles/<slug:slug>/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:55
|
||||
msgid "articles/"
|
||||
msgstr "articles/"
|
||||
|
||||
#: aircox_urls.py:60
|
||||
msgid "articles/c/<slug:category_slug>/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:65 urls.py:32
|
||||
msgid "timetable/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:67 urls.py:34
|
||||
msgid "timetable/<date:date>/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:73
|
||||
msgid "publications/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:78
|
||||
msgid "publications/c/<slug:category_slug>/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:83
|
||||
msgid "pages/<slug:slug>/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:91
|
||||
msgid "pages/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:99
|
||||
msgid "programs/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:100
|
||||
msgid "programs/c/<slug:category_slug>/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:102
|
||||
msgid "programs/<slug:slug>/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:106
|
||||
msgid "programs/<slug:parent_slug>/articles/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:107
|
||||
msgid "programs/<slug:parent_slug>/podcasts/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:108
|
||||
msgid "programs/<slug:parent_slug>/episodes/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:110
|
||||
msgid "programs/<slug:parent_slug>/diffusions/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:113
|
||||
msgid "programs/<slug:parent_slug>/publications/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:118
|
||||
msgid "programs/episodes/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:119
|
||||
msgid "programs/episodes/c/<slug:category_slug>/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:121
|
||||
msgid "programs/episodes/<slug:slug>/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:125
|
||||
msgid "podcasts/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:126
|
||||
msgid "podcasts/c/<slug:category_slug>/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:128
|
||||
msgid "dashboard/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:129
|
||||
msgid "dashboard/program/<pk>/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:130
|
||||
msgid "dashboard/episodes/<pk>/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:131
|
||||
msgid "dashboard/statistics/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:132
|
||||
msgid "dashboard/statistics/<date:date>/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:133
|
||||
msgid "dashboard/users/"
|
||||
msgstr ""
|
||||
|
||||
#: aircox_urls.py:135
|
||||
msgid "errors/no-station/"
|
||||
msgstr ""
|
||||
|
||||
#: templates/aircox/episode_list.html:8
|
||||
msgid "Podcasts"
|
||||
msgstr ""
|
||||
|
||||
#: templates/aircox/episode_list.html:38 templates/aircox/home.html:22
|
||||
#: templates/aircox/page_list.html:19 templates/aircox/podcast_list.html:19
|
||||
msgid "Categories"
|
||||
msgstr ""
|
||||
|
||||
#: templates/aircox/page_detail.html:43
|
||||
#, python-format
|
||||
msgid "Related %(models)s"
|
||||
msgstr ""
|
||||
|
||||
#: templates/aircox/page_detail.html:54
|
||||
msgid "Comments"
|
||||
msgstr ""
|
||||
|
||||
#: templates/aircox/page_detail.html:64
|
||||
msgid "Post a comment"
|
||||
msgstr ""
|
||||
|
||||
#: templates/aircox/page_detail.html:91
|
||||
msgid "Post comment"
|
||||
msgstr ""
|
||||
|
||||
#: templates/aircox/page_list.html:77
|
||||
msgid "There is nothing published here..."
|
||||
msgstr ""
|
||||
|
||||
#: templates/aircox/program_detail.html:25
|
||||
#, python-format
|
||||
msgid "Rerun of %(date)s"
|
||||
msgstr ""
|
||||
|
||||
#: templates/aircox/program_detail.html:26
|
||||
msgid "Rerun"
|
||||
msgstr ""
|
||||
|
||||
#: templates/aircox/program_detail.html:46
|
||||
msgid "Last Episodes"
|
||||
msgstr "Derniers Épisodes"
|
||||
|
||||
#: templates/aircox/program_detail.html:47
|
||||
msgid "All episodes"
|
||||
msgstr "TOus les épisodes"
|
||||
|
||||
#: templates/aircox/program_detail.html:57
|
||||
msgid "Last Articles"
|
||||
msgstr "Derniers articles"
|
||||
|
||||
#: templates/aircox/program_detail.html:58
|
||||
msgid "All articles"
|
||||
msgstr "Tous les articles"
|
||||
|
||||
#: templates/aircox/widgets/episode.html:35
|
||||
msgid "Live diffusion"
|
||||
msgstr "Diffusion en direct"
|
||||
|
||||
#: templates/aircox/widgets/episode.html:38
|
||||
msgid "Differed diffusion"
|
||||
msgstr "Diffusion diférée"
|
||||
|
||||
#: templates/aircox/widgets/episode.html:65
|
||||
#: templates/aircox/widgets/episode.html:67
|
||||
msgid "Listen"
|
||||
msgstr "Écouter"
|
||||
|
||||
#: templates/aircox/widgets/item.html:26
|
||||
msgid "Draft"
|
||||
msgstr "Brouillon"
|
||||
|
||||
#: templates/aircox/widgets/list_pagination.html:12
|
||||
msgid "pagination"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: Bottom of the list, "previous page"
|
||||
#: templates/aircox/widgets/list_pagination.html:16
|
||||
msgid "first"
|
||||
msgstr "première"
|
||||
|
||||
#: templates/aircox/widgets/list_pagination.html:18
|
||||
#: templates/aircox/widgets/list_pagination.html:19
|
||||
#: templates/aircox/widgets/list_pagination.html:20
|
||||
#| msgid "Previous"
|
||||
msgid "previous"
|
||||
msgstr "précédente"
|
||||
|
||||
#: templates/aircox/widgets/list_pagination.html:31
|
||||
#: templates/aircox/widgets/list_pagination.html:32
|
||||
#: templates/aircox/widgets/list_pagination.html:33
|
||||
msgid "next"
|
||||
msgstr "suivante"
|
||||
|
||||
#: templates/aircox/widgets/list_pagination.html:36
|
||||
#: templates/aircox/widgets/list_pagination.html:37
|
||||
#: templates/aircox/widgets/list_pagination.html:38
|
||||
msgid "last"
|
||||
msgstr "dernière"
|
||||
|
||||
#: templates/aircox/widgets/preview.html:59
|
||||
msgid "Edit"
|
||||
msgstr "Édition"
|
@ -1,11 +1,15 @@
|
||||
// Enable styling body background while using vue hotreload
|
||||
// Tags with side effect (<script> and <style>) are ignored in client component templates.
|
||||
|
||||
const backgrounds = new Map();
|
||||
//backgrounds.set('default', "linear-gradient(#738ef2, white)");
|
||||
//backgrounds.set('default', "linear-gradient(rgba(115, 142, 242, 0.9), white)");
|
||||
backgrounds.set('default', "white");
|
||||
backgrounds.set('/', "url(/static/radiocampus/backgrounds/photo-04-20.jpg) no-repeat center center fixed");
|
||||
backgrounds.set('/podcasts/', "url(/static/radiocampus/backgrounds/photo-04-20.jpg) no-repeat center center fixed");
|
||||
|
||||
|
||||
class BackgroundLoad {
|
||||
// change background style on load
|
||||
// and also on vuejs pageLoaded event
|
||||
|
||||
constructor () {
|
||||
let url = new URL(document.location);
|
||||
this.path = url.pathname;
|
||||
@ -19,30 +23,14 @@ class BackgroundLoad {
|
||||
}
|
||||
|
||||
update () {
|
||||
let theme = this.get_theme_name();
|
||||
document.body.className = theme;
|
||||
|
||||
// home page uses different theme
|
||||
if (this.path == "/") {
|
||||
document.body.classList.add('home');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
get_theme_name () {
|
||||
var currentTime = new Date().getHours();
|
||||
if (document.body) {
|
||||
if (3 <= currentTime && currentTime <15) {
|
||||
return "yellow";
|
||||
}
|
||||
else {
|
||||
return "blue";
|
||||
}
|
||||
}
|
||||
let background = backgrounds.get(this.path) || backgrounds.get("default");
|
||||
//let target = document.getElementsByClassName("page")[0];
|
||||
let target = document.body;
|
||||
target.style.background = background;
|
||||
//document.body.
|
||||
target.style.backgroundSize = "cover";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
window.onload = function() {
|
||||
let backgroundLoad = new BackgroundLoad();
|
||||
}
|
||||
|
BIN
radiocampus/static/radiocampus/backgrounds/08.jpeg
Normal file
After Width: | Height: | Size: 1.9 MiB |
BIN
radiocampus/static/radiocampus/backgrounds/09.jpeg
Normal file
After Width: | Height: | Size: 1.7 MiB |
Before Width: | Height: | Size: 108 KiB |
Before Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 34 KiB |
BIN
radiocampus/static/radiocampus/backgrounds/photo-04-19.jpg
Normal file
After Width: | Height: | Size: 448 KiB |
BIN
radiocampus/static/radiocampus/backgrounds/photo-04-20.jpg
Normal file
After Width: | Height: | Size: 1.8 MiB |
Before Width: | Height: | Size: 1.9 MiB |
Before Width: | Height: | Size: 1.9 MiB |
BIN
radiocampus/static/radiocampus/fonts/CampusGroteskv8-Regular.otf
Normal file
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 162 KiB |
Before Width: | Height: | Size: 156 KiB |
Before Width: | Height: | Size: 184 KiB |
Before Width: | Height: | Size: 178 KiB |
Before Width: | Height: | Size: 106 KiB |
Before Width: | Height: | Size: 122 KiB |
Before Width: | Height: | Size: 124 KiB |
Before Width: | Height: | Size: 154 KiB |
Before Width: | Height: | Size: 147 KiB |
Before Width: | Height: | Size: 107 KiB |
Before Width: | Height: | Size: 174 KiB |
Before Width: | Height: | Size: 168 KiB |
Before Width: | Height: | Size: 103 KiB |
Before Width: | Height: | Size: 118 KiB |
Before Width: | Height: | Size: 119 KiB |
Before Width: | Height: | Size: 80 KiB |
Before Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 126 KiB |
Before Width: | Height: | Size: 77 KiB |
@ -1,250 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 1190.6 841.9">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
fill: none;
|
||||
}
|
||||
|
||||
.cls-1, .cls-2 {
|
||||
stroke-width: 0px;
|
||||
}
|
||||
|
||||
.cls-2 {
|
||||
fill: #000;
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<g>
|
||||
<g>
|
||||
<path class="cls-2" d="M215.8-748.5c24.6.2,40.9,16,40.9,39.6s-15.6,43-38.9,43h-28.5l59,62.9h-25.2l-56.9-62.9h-12.6v62.9h-18.8v-145.5h81.1ZM153.5-684.1h64c13.3-.2,21.6-9.6,21.6-23.8s-8.3-22.3-21.6-22.5h-64v46.2Z"/>
|
||||
<path class="cls-2" d="M370.4-651.2h-66.3l-19.5,48.1h-19.3l58.4-145.5h26.7l58.4,145.5h-19.3l-19.3-48.1ZM363.2-669.4l-22.7-56.5-3.2-8.1-3.2,8.1-22.7,56.5h51.8Z"/>
|
||||
<path class="cls-2" d="M489.9-748.5c36.8.2,60.1,30.2,60.1,70.8s-19,74.7-61.4,74.7h-60.6v-145.5h61.8ZM446.9-621.2h45.6c25.5,0,39.4-22,39.4-55.4s-16.1-53.5-40.2-53.7h-44.7v109.1h0Z"/>
|
||||
<path class="cls-2" d="M657.2-620.8v17.8h-94.1v-17.8h38.5v-110h-32.1v-17.8h81.3v17.8h-31.5v110h37.9Z"/>
|
||||
</g>
|
||||
<path class="cls-2" d="M369.4-476.5h-66.3l-19.5,48.1h-19.3l58.4-145.5h26.7l58.4,145.5h-19.3l-19.3-48.1ZM362.1-494.7l-22.7-56.5-3.2-8.1-3.2,8.1-22.7,56.5h51.8Z"/>
|
||||
<path class="cls-2" d="M678.2-573.6c24.6.2,40.9,16,40.9,39.6s-15.6,43-38.9,43h-59.9v62.9h-18.8v-145.5h76.8ZM620.2-509.2h59.7c13.3-.2,21.6-9.6,21.6-23.7s-8.3-22.2-21.6-22.5h-59.7v46.2Z"/>
|
||||
<path class="cls-2" d="M849.6-471.1c-.2,29.8-20.5,47.3-54.8,47.3s-57.8-18.2-57.8-45.4v-104.4h19v102.1c.2,18.8,14.1,29.1,37.7,29.1s36.6-10.3,36.8-29.1v-102.1h19v102.5h0Z"/>
|
||||
<path class="cls-2" d="M929.4-442c17.8,0,30.8-6.8,30.8-21.4s-10.3-18.8-19.5-22c-11.8-4.1-21.4-5.6-35.1-9.6-17.1-5.1-29.7-19.7-29.7-40s15.6-42.6,47.7-42.6,38.1,4.1,55,22.5l-12.8,13.1c-15.2-14.8-34.2-17.3-43.2-17.3-17.3,0-27.8,11.1-27.8,23.5s6,19.3,20.1,23.3c7.3,2.1,18.6,5.4,34.4,10.1,23.5,7.1,29.7,21.4,29.7,38.7s-19.9,40-49.6,40-43.2-7.7-56.1-25.9l15.6-11.6c10.7,13.9,24.4,19.3,40.4,19.3Z"/>
|
||||
<path class="cls-2" d="M536.2-272.3v18.2h-103.2v-145.9h18.2v127.7h85Z"/>
|
||||
<path class="cls-2" d="M253.4-296.5c0,26.3-19.1,43-46,42.4l-9-.2h-63.4v-145.6h69.8c27.2,1.1,39,18.2,39,38.5s-3.9,21-9.2,27c10.7,7.3,18.8,20.8,18.8,37.9ZM153.2-340.8h51.8c14.8,0,20.5-8.6,20.5-20.3s-5.6-20.6-24.2-20.6h-48.2v40.9ZM235.2-298c0-13.5-7.3-24.6-24.8-24.6h-57.2v50.1h55c19.7,0,27-10.5,27-25.5Z"/>
|
||||
<g>
|
||||
<path class="cls-2" d="M301.9-381.8c0,10.1-8.2,18.3-18.3,18.3s-18.3-8.2-18.3-18.3,8.2-18.3,18.3-18.3,18.3,8.2,18.3,18.3Z"/>
|
||||
<circle class="cls-2" cx="393.6" cy="-381.8" r="18.3"/>
|
||||
<path class="cls-2" d="M338.6-345.3c0,10.1-8.2,18.3-18.3,18.4-10.1,0-18.3-8.2-18.4-18.3,0-10.1,8.2-18.3,18.3-18.4,10.1,0,18.3,8.2,18.4,18.3Z"/>
|
||||
<circle class="cls-2" cx="356.9" cy="-345.3" r="18.3"/>
|
||||
<path class="cls-2" d="M338.6-308.6c0,10.1-8.2,18.3-18.3,18.4-10.1,0-18.3-8.2-18.4-18.3,0-10.1,8.2-18.3,18.3-18.4,10.1,0,18.3,8.2,18.4,18.3Z"/>
|
||||
<circle class="cls-2" cx="357" cy="-308.7" r="18.3"/>
|
||||
<path class="cls-2" d="M301.9-271.8c0,10.1-8.2,18.3-18.3,18.3s-18.3-8.2-18.3-18.3,8.2-18.3,18.3-18.3c10.1,0,18.3,8.2,18.3,18.3Z"/>
|
||||
<circle class="cls-2" cx="393.6" cy="-271.8" r="18.3"/>
|
||||
</g>
|
||||
<polygon class="cls-2" points="428.4 -573.9 428.4 -428.6 439 -428.6 439 -557.1 480.8 -557.1 480.8 -428.6 501.2 -428.6 501.2 -557.1 544.2 -557.1 544.2 -428.6 569.8 -428.6 569.8 -573.9 428.4 -573.9"/>
|
||||
<polygon class="cls-2" points="253.5 -428.2 172.8 -428.2 172.8 -463.1 134.9 -463.1 134.9 -549.4 173.3 -549.4 173.3 -574.4 216.5 -574.4 216.5 -557.4 190.3 -557.4 190.3 -532.4 151.9 -532.4 151.9 -480.1 189.8 -480.1 189.8 -445.2 253.5 -445.2 253.5 -428.2"/>
|
||||
<path class="cls-2" d="M809.9-693.8c6.1,4.5,12.4,8.6,18.8,12.5v-21.3c-2.8-1.8-5.5-3.7-8.1-5.7-16-11.8-29.8-25.3-41.5-40.3h-22.2c14.1,20.9,31.9,39.2,53,54.8Z"/>
|
||||
<path class="cls-2" d="M695.8-655.8c-7.1-5.4-14.5-10.4-22.1-14.9v21.3c3.8,2.5,7.5,5.2,11.2,7.9,14.8,11.3,27.8,24.1,39,38.4h22.3c-13.7-20-30.6-37.7-50.4-52.8Z"/>
|
||||
<path class="cls-2" d="M828.7-648.7v-21.6c-3.8,2.4-7.5,4.8-11.1,7.4-24.3,17-44.8,37.5-60.5,60h22.5c13.7-17.2,30.4-32.7,49.1-45.7Z"/>
|
||||
<path class="cls-2" d="M746.5-748.7h-22.1c-13.9,18.4-31.1,34.2-50.8,47v21.1c29.4-17.1,54.4-40.3,72.8-68.1Z"/>
|
||||
<path class="cls-2" d="M760-347.3c0,69.6-16.9,97.2-53.1,97.2s-39.4-10.3-47.7-25.7l14.1-10.1c6.6,12.2,17.1,18,34.5,18s32.3-12.4,34.5-44.3c-9,7.9-21.2,13.1-34.7,13.1-31.7,0-52.2-24-52.2-48.2s20.8-56.9,52.2-56.9c31.3,0,52.4,24.2,52.4,56.9ZM743.8-350.5c0-23.1-17.6-34.2-36.2-34.2s-34.7,11.1-34.7,34.2,14.8,33.4,34.7,33.4c20.8,0,36.2-13.5,36.2-33.4Z"/>
|
||||
<path class="cls-2" d="M875.6-272.8v18.4h-92.5v-18.4c57.4-42.6,71.7-60.8,71.7-83.7s-11.3-28.9-31.7-28.9-33,11.3-26.8,39.2l-17.1,7.9c-9.2-30.2,4.7-65.9,45.6-65.9s47.3,18.2,47.3,43.9-21,59.5-62.9,87.6h66.4Z"/>
|
||||
<path class="cls-2" d="M907.7-276.4v22h-22v-22h22Z"/>
|
||||
<path class="cls-2" d="M960.6-399.9h18.4v145.8h-18.4v-122.7l-39,37.9v-22.7l39-38.3Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-2" d="M1448.4-1634.5c24.6.2,40.9,16,40.9,39.6s-15.6,43-38.9,43h-28.5l59,62.9h-25.2l-56.9-62.9h-12.6v62.9h-18.8v-145.5h81.1ZM1386.1-1570.1h64c13.3-.2,21.6-9.6,21.6-23.8s-8.3-22.3-21.6-22.5h-64v46.2Z"/>
|
||||
<path class="cls-2" d="M1603-1537.1h-66.3l-19.5,48.1h-19.3l58.4-145.5h26.7l58.4,145.5h-19.3l-19.3-48.1ZM1595.7-1555.3l-22.7-56.5-3.2-8.1-3.2,8.1-22.7,56.5h51.8Z"/>
|
||||
<path class="cls-2" d="M1722.4-1634.5c36.8.2,60.1,30.2,60.1,70.8s-19,74.7-61.4,74.7h-60.6v-145.5h61.8ZM1679.4-1507.2h45.6c25.5,0,39.4-22,39.4-55.4s-16.1-53.5-40.2-53.7h-44.7v109.1h0Z"/>
|
||||
<path class="cls-2" d="M1889.8-1506.7v17.8h-94.1v-17.8h38.5v-110h-32.1v-17.8h81.3v17.8h-31.5v110h37.9Z"/>
|
||||
<path class="cls-2" d="M1602-1362.4h-66.3l-19.5,48.1h-19.3l58.4-145.5h26.7l58.4,145.5h-19.3l-19.3-48.1ZM1594.7-1380.6l-22.7-56.5-3.2-8.1-3.2,8.1-22.7,56.5h51.8Z"/>
|
||||
<path class="cls-2" d="M1910.8-1459.6c24.6.2,40.9,16,40.9,39.6s-15.6,43-38.9,43h-59.9v62.9h-18.8v-145.5h76.8ZM1852.8-1395.2h59.7c13.3-.2,21.6-9.6,21.6-23.8s-8.3-22.2-21.6-22.5h-59.7v46.2Z"/>
|
||||
<path class="cls-2" d="M2082.2-1357.1c-.2,29.7-20.5,47.3-54.8,47.3s-57.8-18.2-57.8-45.4v-104.4h19v102.1c.2,18.8,14.1,29.1,37.7,29.1s36.6-10.3,36.8-29.1v-102.1h19v102.5h0Z"/>
|
||||
<path class="cls-2" d="M2162-1328c17.8,0,30.8-6.8,30.8-21.4s-10.3-18.8-19.5-22c-11.8-4.1-21.4-5.6-35.1-9.6-17.1-5.1-29.7-19.7-29.7-40s15.6-42.6,47.7-42.6,38.1,4.1,55,22.5l-12.8,13.1c-15.2-14.8-34.2-17.3-43.2-17.3-17.3,0-27.8,11.1-27.8,23.5s6,19.3,20.1,23.3c7.3,2.1,18.6,5.4,34.4,10.1,23.5,7.1,29.7,21.4,29.7,38.7s-19.9,40-49.6,40-43.2-7.7-56.1-25.9l15.6-11.6c10.7,13.9,24.4,19.3,40.4,19.3Z"/>
|
||||
<polygon class="cls-2" points="1660.9 -1459.9 1660.9 -1314.5 1671.6 -1314.5 1671.6 -1443.1 1713.3 -1443.1 1713.3 -1314.5 1733.8 -1314.5 1733.8 -1443.1 1776.7 -1443.1 1776.7 -1314.5 1802.4 -1314.5 1802.4 -1459.9 1660.9 -1459.9"/>
|
||||
<polygon class="cls-2" points="1486.1 -1314.1 1405.3 -1314.1 1405.3 -1349.1 1367.5 -1349.1 1367.5 -1435.3 1405.9 -1435.3 1405.9 -1460.4 1449 -1460.4 1449 -1443.4 1422.9 -1443.4 1422.9 -1418.3 1384.5 -1418.3 1384.5 -1366.1 1422.3 -1366.1 1422.3 -1331.1 1486.1 -1331.1 1486.1 -1314.1"/>
|
||||
<path class="cls-2" d="M2050.1-1548.9c-24.3,17-44.8,37.5-60.5,60h22.5c13.7-17.2,30.4-32.7,49.1-45.7v-21.6c-3.8,2.4-7.5,4.8-11.1,7.4Z"/>
|
||||
<path class="cls-2" d="M2042.5-1579.8c6.1,4.5,12.4,8.7,18.8,12.6v-21.3c-2.8-1.8-5.5-3.7-8.1-5.7-16-11.8-29.8-25.3-41.5-40.3h-22.2c14.1,20.9,31.9,39.2,53,54.8Z"/>
|
||||
<path class="cls-2" d="M1979.1-1634.6h-22.1c-13.9,18.4-31.1,34.2-50.8,47v21.1c29.5-17.1,54.4-40.3,72.9-68.1Z"/>
|
||||
<path class="cls-2" d="M1928.3-1541.7c-7.1-5.4-14.5-10.3-22.1-14.9v21.3c3.8,2.5,7.5,5.2,11.2,7.9,14.8,11.3,27.8,24.1,39,38.4h22.3c-13.7-20-30.6-37.7-50.4-52.8Z"/>
|
||||
<path class="cls-2" d="M1408.8-1192.9c0,10.2-8.2,18.5-18.5,18.5-10.2,0-18.5-8.2-18.5-18.5,0-10.2,8.2-18.5,18.5-18.5,10.2,0,18.5,8.3,18.5,18.5Z"/>
|
||||
<path class="cls-2" d="M1445.8-1193c0,10.2-8.2,18.5-18.5,18.5-10.2,0-18.5-8.2-18.5-18.5,0-10.2,8.3-18.5,18.5-18.5,10.2,0,18.5,8.3,18.5,18.5Z"/>
|
||||
<path class="cls-2" d="M1408.8-1155.9c0,10.2-8.3,18.5-18.5,18.5-10.2,0-18.5-8.2-18.5-18.5,0-10.2,8.3-18.5,18.5-18.5,10.2,0,18.5,8.2,18.5,18.5Z"/>
|
||||
<path class="cls-2" d="M1445.8-1156c0,10.2-8.3,18.5-18.5,18.5-10.2,0-18.5-8.2-18.5-18.5,0-10.2,8.2-18.5,18.5-18.5,10.2,0,18.5,8.2,18.5,18.5Z"/>
|
||||
<path class="cls-2" d="M1584.4-1182.4c0,26.3-19,43-46,42.4l-9-.2h-63.3v-145.5h69.8c27.2,1.1,38.9,18.2,38.9,38.5s-3.9,21-9.2,27c10.7,7.3,18.8,20.8,18.8,37.9ZM1484.2-1226.7h51.8c14.8,0,20.5-8.6,20.5-20.3s-5.6-20.5-24.2-20.5h-48.2v40.9ZM1566.2-1183.9c0-13.5-7.3-24.6-24.8-24.6h-57.1v50.1h55c19.7,0,27-10.5,27-25.5Z"/>
|
||||
<path class="cls-2" d="M1620.8-1267.5v40.9h77.2v18.2h-77.2v50.1h85.8v18.2h-104v-145.5h104v18.2h-85.8Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-2" d="M1448.8-748.7c24.6.2,40.9,16,40.9,39.6s-15.6,43-38.9,43h-28.5l59,62.9h-25.2l-56.9-62.9h-12.6v62.9h-18.8v-145.5h81.1ZM1386.6-684.3h64c13.3-.2,21.6-9.6,21.6-23.8s-8.3-22.3-21.6-22.5h-64v46.2Z"/>
|
||||
<path class="cls-2" d="M1603.5-651.4h-66.3l-19.5,48.1h-19.3l58.4-145.5h26.7l58.4,145.5h-19.3l-19.3-48.1ZM1596.2-669.5l-22.7-56.5-3.2-8.1-3.2,8.1-22.7,56.5h51.8Z"/>
|
||||
<path class="cls-2" d="M1722.9-748.7c36.8.2,60.1,30.2,60.1,70.8s-19,74.7-61.4,74.7h-60.6v-145.5h61.8ZM1679.9-621.4h45.6c25.5,0,39.4-22,39.4-55.4s-16.1-53.5-40.2-53.7h-44.7v109.1h0Z"/>
|
||||
<path class="cls-2" d="M1890.3-621v17.8h-94.1v-17.8h38.5v-110h-32.1v-17.8h81.3v17.8h-31.5v110h37.9Z"/>
|
||||
<path class="cls-2" d="M1602.5-476.7h-66.3l-19.5,48.1h-19.3l58.4-145.5h26.7l58.4,145.5h-19.3l-19.3-48.1ZM1595.2-494.9l-22.7-56.5-3.2-8.1-3.2,8.1-22.7,56.5h51.8Z"/>
|
||||
<path class="cls-2" d="M1911.3-573.8c24.6.2,40.9,16,40.9,39.6s-15.6,43-38.9,43h-59.9v62.9h-18.8v-145.5h76.8ZM1853.3-509.4h59.7c13.3-.2,21.6-9.6,21.6-23.8s-8.3-22.2-21.6-22.5h-59.7v46.2Z"/>
|
||||
<path class="cls-2" d="M2082.6-471.3c-.2,29.7-20.5,47.3-54.8,47.3s-57.8-18.2-57.8-45.4v-104.4h19v102.1c.2,18.8,14.1,29.1,37.7,29.1s36.6-10.3,36.8-29.1v-102.1h19v102.5h0Z"/>
|
||||
<path class="cls-2" d="M2162.5-442.2c17.8,0,30.8-6.8,30.8-21.4s-10.3-18.8-19.5-22c-11.8-4.1-21.4-5.6-35.1-9.6-17.1-5.1-29.7-19.7-29.7-40s15.6-42.6,47.7-42.6,38.1,4.1,55,22.5l-12.8,13.1c-15.2-14.8-34.2-17.3-43.2-17.3-17.3,0-27.8,11.1-27.8,23.5s6,19.3,20.1,23.3c7.3,2.1,18.6,5.4,34.4,10.1,23.5,7.1,29.7,21.4,29.7,38.7s-19.9,40-49.6,40-43.2-7.7-56.1-25.9l15.6-11.6c10.7,13.9,24.4,19.3,40.4,19.3Z"/>
|
||||
<polygon class="cls-2" points="1661.4 -574.1 1661.4 -428.8 1672.1 -428.8 1672.1 -557.3 1713.8 -557.3 1713.8 -428.8 1734.2 -428.8 1734.2 -557.3 1777.2 -557.3 1777.2 -428.8 1802.8 -428.8 1802.8 -574.1 1661.4 -574.1"/>
|
||||
<polygon class="cls-2" points="1486.6 -428.4 1405.8 -428.4 1405.8 -463.3 1368 -463.3 1368 -549.6 1406.4 -549.6 1406.4 -574.6 1449.5 -574.6 1449.5 -557.6 1423.4 -557.6 1423.4 -532.6 1385 -532.6 1385 -480.3 1422.8 -480.3 1422.8 -445.4 1486.6 -445.4 1486.6 -428.4"/>
|
||||
<path class="cls-2" d="M2050.6-663.1c-24.3,17-44.8,37.5-60.5,60h22.5c13.7-17.2,30.4-32.7,49.1-45.7v-21.6c-3.8,2.4-7.5,4.8-11.1,7.4Z"/>
|
||||
<path class="cls-2" d="M2042.9-694c6.1,4.5,12.4,8.7,18.8,12.6v-21.3c-2.8-1.8-5.5-3.7-8.1-5.7-16-11.8-29.8-25.3-41.5-40.3h-22.2c14.1,20.9,31.9,39.2,53,54.8Z"/>
|
||||
<path class="cls-2" d="M1979.6-748.8h-22.1c-13.9,18.4-31.1,34.2-50.8,47v21.1c29.5-17.1,54.4-40.3,72.9-68.1Z"/>
|
||||
<path class="cls-2" d="M1928.8-655.9c-7.1-5.4-14.5-10.3-22.1-14.9v21.3c3.8,2.5,7.5,5.2,11.2,7.9,14.8,11.3,27.8,24.1,39,38.4h22.3c-13.7-20-30.6-37.7-50.4-52.8Z"/>
|
||||
<g>
|
||||
<path class="cls-2" d="M1409.3-307.2c0,10.2-8.2,18.5-18.5,18.5-10.2,0-18.5-8.2-18.5-18.5,0-10.2,8.3-18.5,18.5-18.5,10.2,0,18.5,8.3,18.5,18.5Z"/>
|
||||
<path class="cls-2" d="M1446.3-307.2c0,10.2-8.2,18.5-18.5,18.5-10.2,0-18.5-8.2-18.5-18.5,0-10.2,8.3-18.5,18.5-18.5,10.2,0,18.5,8.2,18.5,18.5Z"/>
|
||||
<path class="cls-2" d="M1409.3-270.2c0,10.2-8.3,18.5-18.5,18.5-10.2,0-18.5-8.2-18.5-18.5s8.2-18.5,18.5-18.5c10.2,0,18.5,8.2,18.5,18.5Z"/>
|
||||
<circle class="cls-2" cx="1427.8" cy="-270.2" r="18.5"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-2" d="M1584.9-296.6c0,26.3-19,43-46,42.4l-9-.2h-63.3v-145.5h69.8c27.2,1.1,38.9,18.2,38.9,38.5s-3.9,21-9.2,27c10.7,7.3,18.8,20.8,18.8,37.9ZM1484.7-340.9h51.8c14.8,0,20.5-8.6,20.5-20.3s-5.6-20.5-24.2-20.5h-48.1v40.9ZM1566.7-298.1c0-13.5-7.3-24.6-24.8-24.6h-57.1v50.1h55c19.7,0,27-10.5,27-25.5Z"/>
|
||||
<path class="cls-2" d="M1621.3-381.8v40.9h77.2v18.2h-77.2v50.1h85.8v18.2h-104v-145.5h104v18.2h-85.8Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-2" d="M1993.6-346.7c0,69.6-16.9,97.2-53.1,97.2s-39.4-10.3-47.7-25.7l14.1-10.1c6.6,12.2,17.1,18,34.5,18s32.3-12.4,34.5-44.3c-9,7.9-21.2,13.1-34.7,13.1-31.7,0-52.2-24-52.2-48.2s20.8-56.9,52.2-56.9c31.3,0,52.4,24.2,52.4,56.9ZM1977.4-349.9c0-23.1-17.6-34.3-36.2-34.3s-34.7,11.1-34.7,34.3,14.8,33.4,34.7,33.4c20.8,0,36.2-13.5,36.2-33.4Z"/>
|
||||
<path class="cls-2" d="M2109.2-272.2v18.4h-92.5v-18.4c57.4-42.6,71.7-60.8,71.7-83.7s-11.3-28.9-31.7-28.9-33,11.3-26.8,39.2l-17.1,7.9c-9.2-30.2,4.7-65.9,45.6-65.9s47.3,18.2,47.3,43.9-21,59.5-62.9,87.6h66.4Z"/>
|
||||
<path class="cls-2" d="M2141.3-275.8v22h-22v-22h22Z"/>
|
||||
<path class="cls-2" d="M2194.2-399.3h18.4v145.8h-18.4v-122.7l-39,37.9v-22.7l39-38.3Z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-2" d="M3011.2-678.5c.2-.1.4-.2.6-.4h-1.2c.2.1.4.2.6.4Z"/>
|
||||
<path class="cls-2" d="M2744.4-663.2c-24.3,17-44.8,37.5-60.5,60h22.5c13.7-17.2,30.4-32.7,49.1-45.7v-21.6c-3.8,2.4-7.5,4.8-11.1,7.4Z"/>
|
||||
<path class="cls-2" d="M2736.8-694.1c6.1,4.5,12.4,8.7,18.8,12.6v-21.3c-2.8-1.8-5.5-3.7-8.1-5.7-16-11.8-29.8-25.3-41.5-40.3h-22.2c14.1,20.9,31.9,39.2,53,54.8Z"/>
|
||||
<path class="cls-2" d="M2673.4-748.9h-22.1c-13.9,18.4-31.1,34.2-50.8,47v21.1c29.5-17.1,54.4-40.3,72.8-68.1Z"/>
|
||||
<path class="cls-2" d="M2622.6-656c-7.1-5.4-14.5-10.3-22.1-14.9v21.3c3.8,2.5,7.5,5.2,11.2,7.9,14.8,11.3,27.8,24.1,39,38.4h22.3c-13.7-20-30.6-37.7-50.4-52.8Z"/>
|
||||
<polygon class="cls-2" points="2912.4 -602.8 2831.7 -602.8 2831.7 -637.7 2793.8 -637.7 2793.8 -723.9 2832.2 -723.9 2832.2 -749 2875.4 -749 2875.4 -732 2849.2 -732 2849.2 -706.9 2810.8 -706.9 2810.8 -654.7 2848.7 -654.7 2848.7 -619.8 2912.4 -619.8 2912.4 -602.8"/>
|
||||
<polygon class="cls-2" points="2944.5 -748 2944.5 -602.6 2955.1 -602.6 2955.1 -731.2 2996.9 -731.2 2996.9 -602.6 3017.3 -602.6 3017.3 -731.2 3060.3 -731.2 3060.3 -602.6 3085.9 -602.6 3085.9 -748 2944.5 -748"/>
|
||||
<path class="cls-2" d="M3162.6-733.1c0,10.5-8.5,19.1-19.1,19.1s-19.1-8.5-19.1-19.1,8.5-19.1,19.1-19.1,19.1,8.5,19.1,19.1Z"/>
|
||||
<circle class="cls-2" cx="3258" cy="-733.1" r="19.1"/>
|
||||
<path class="cls-2" d="M3200.7-695.1c0,10.5-8.5,19.1-19,19.1s-19.1-8.5-19.1-19c0-10.5,8.5-19.1,19-19.1,10.5,0,19.1,8.5,19.1,19Z"/>
|
||||
<circle class="cls-2" cx="3219.8" cy="-695.1" r="19.1"/>
|
||||
<path class="cls-2" d="M3200.8-656.9c0,10.5-8.5,19.1-19,19.1-10.5,0-19.1-8.5-19.1-19s8.5-19.1,19-19.1,19.1,8.5,19.1,19Z"/>
|
||||
<circle class="cls-2" cx="3219.9" cy="-656.9" r="19.1"/>
|
||||
<path class="cls-2" d="M3162.6-618.6c0,10.5-8.5,19.1-19.1,19.1s-19.1-8.5-19.1-19.1,8.5-19.1,19.1-19.1,19.1,8.5,19.1,19.1Z"/>
|
||||
<circle class="cls-2" cx="3258" cy="-618.6" r="19.1"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-2" d="M2765-1536.3c-27.7,19.4-51.1,42.7-69,68.4h25.6c15.6-19.6,34.6-37.3,56-52.1v-24.7c-4.3,2.7-8.5,5.5-12.7,8.4Z"/>
|
||||
<path class="cls-2" d="M2756.2-1571.5c6.9,5.1,14.1,9.9,21.5,14.3v-24.3c-3.1-2.1-6.2-4.3-9.3-6.5-18.2-13.4-34-28.8-47.3-46h-25.3c16.1,23.8,36.3,44.8,60.4,62.5Z"/>
|
||||
<path class="cls-2" d="M2683.9-1634h-25.2c-15.9,20.9-35.5,39-57.9,53.6v24.1c33.6-19.5,62-45.9,83.1-77.7Z"/>
|
||||
<path class="cls-2" d="M2626-1528.1c-8.1-6.1-16.5-11.8-25.2-17v24.3c4.3,2.9,8.6,5.9,12.7,9.1,16.9,12.8,31.7,27.5,44.5,43.8h25.4c-15.7-22.8-34.9-43-57.5-60.2Z"/>
|
||||
<polygon class="cls-2" points="2951.8 -1466.7 2859.7 -1466.7 2859.7 -1506.5 2816.6 -1506.5 2816.6 -1604.9 2860.3 -1604.9 2860.3 -1633.5 2909.6 -1633.5 2909.6 -1614.1 2879.7 -1614.1 2879.7 -1585.5 2835.9 -1585.5 2835.9 -1525.9 2879.1 -1525.9 2879.1 -1486.1 2951.8 -1486.1 2951.8 -1466.7"/>
|
||||
<polygon class="cls-2" points="2600.8 -1442.6 2600.8 -1276.8 2612.9 -1276.8 2612.9 -1423.4 2660.5 -1423.4 2660.5 -1276.8 2683.9 -1276.8 2683.9 -1423.4 2732.9 -1423.4 2732.9 -1276.8 2762.1 -1276.8 2762.1 -1442.6 2600.8 -1442.6"/>
|
||||
<path class="cls-2" d="M2854.6-1421c0,11.5-9.4,20.9-20.9,20.9s-20.9-9.4-20.9-20.9,9.4-20.9,20.9-20.9c11.5,0,20.9,9.4,20.9,20.9Z"/>
|
||||
<circle class="cls-2" cx="2959.1" cy="-1421" r="20.9"/>
|
||||
<path class="cls-2" d="M2896.4-1379.4c0,11.5-9.3,20.9-20.9,20.9-11.5,0-20.9-9.3-20.9-20.9,0-11.5,9.3-20.9,20.9-20.9,11.5,0,20.9,9.3,20.9,20.9Z"/>
|
||||
<path class="cls-2" d="M2938.2-1379.5c0,11.5-9.3,20.9-20.9,20.9-11.5,0-20.9-9.3-20.9-20.9,0-11.5,9.3-20.9,20.9-20.9,11.5,0,20.9,9.3,20.9,20.9Z"/>
|
||||
<path class="cls-2" d="M2896.5-1337.6c0,11.5-9.3,20.9-20.9,20.9-11.5,0-20.9-9.3-20.9-20.9,0-11.5,9.3-20.9,20.9-20.9,11.5,0,20.9,9.3,20.9,20.9Z"/>
|
||||
<circle class="cls-2" cx="2917.4" cy="-1337.6" r="20.9"/>
|
||||
<path class="cls-2" d="M2854.6-1295.6c0,11.5-9.4,20.9-20.9,20.9s-20.9-9.4-20.9-20.9,9.4-20.9,20.9-20.9c11.5,0,20.9,9.4,20.9,20.9Z"/>
|
||||
<path class="cls-2" d="M2980-1295.6c0,11.5-9.4,20.9-20.9,20.9s-20.9-9.4-20.9-20.9,9.4-20.9,20.9-20.9c11.5,0,20.9,9.4,20.9,20.9Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path class="cls-2" d="M215.5-1634c24.6.2,40.9,16,40.9,39.6s-15.6,43-38.9,43h-28.5l59,62.9h-25.2l-56.9-62.9h-12.6v62.9h-18.8v-145.5h81.1ZM153.2-1569.6h64c13.3-.2,21.6-9.6,21.6-23.8s-8.3-22.3-21.6-22.5h-64v46.2Z"/>
|
||||
<path class="cls-2" d="M370.1-1536.7h-66.3l-19.5,48.1h-19.3l58.4-145.5h26.7l58.4,145.5h-19.3l-19.3-48.1ZM362.8-1554.9l-22.7-56.5-3.2-8.1-3.2,8.1-22.7,56.5h51.8Z"/>
|
||||
<path class="cls-2" d="M489.5-1634c36.8.2,60.1,30.2,60.1,70.8s-19,74.7-61.4,74.7h-60.6v-145.5h61.8ZM446.5-1506.7h45.6c25.5,0,39.4-22,39.4-55.4s-16-53.5-40.2-53.7h-44.7v109.1h0Z"/>
|
||||
<path class="cls-2" d="M656.9-1506.3v17.8h-94.1v-17.8h38.5v-110h-32.1v-17.8h81.3v17.8h-31.5v110h37.9Z"/>
|
||||
</g>
|
||||
<path class="cls-2" d="M369.1-1362h-66.3l-19.5,48.1h-19.3l58.4-145.5h26.7l58.4,145.5h-19.3l-19.3-48.1ZM361.8-1380.2l-22.7-56.5-3.2-8.1-3.2,8.1-22.7,56.5h51.8Z"/>
|
||||
<path class="cls-2" d="M677.9-1459.1c24.6.2,40.9,16,40.9,39.6s-15.6,43-38.9,43h-59.9v62.9h-18.8v-145.5h76.8ZM619.9-1394.7h59.7c13.3-.2,21.6-9.6,21.6-23.8s-8.3-22.2-21.6-22.5h-59.7v46.2Z"/>
|
||||
<path class="cls-2" d="M849.3-1356.6c-.2,29.7-20.5,47.3-54.8,47.3s-57.8-18.2-57.8-45.4v-104.4h19v102.1c.2,18.8,14.1,29.1,37.7,29.1s36.6-10.3,36.8-29.1v-102.1h19v102.5h0Z"/>
|
||||
<path class="cls-2" d="M929.1-1327.5c17.8,0,30.8-6.8,30.8-21.4s-10.3-18.8-19.5-22c-11.8-4.1-21.4-5.6-35.1-9.6-17.1-5.1-29.7-19.7-29.7-40s15.6-42.6,47.7-42.6,38.1,4.1,55,22.5l-12.8,13.1c-15.2-14.8-34.2-17.3-43.2-17.3-17.3,0-27.8,11.1-27.8,23.5s6,19.3,20.1,23.3c7.3,2.1,18.6,5.4,34.4,10.1,23.5,7.1,29.7,21.4,29.7,38.7s-19.9,40-49.6,40-43.2-7.7-56.1-25.9l15.6-11.6c10.7,13.9,24.4,19.3,40.4,19.3Z"/>
|
||||
<path class="cls-2" d="M535.8-1157.8v18.2h-103.2v-145.9h18.2v127.7h85Z"/>
|
||||
<path class="cls-2" d="M253.1-1182c0,26.3-19.1,43-46,42.4l-9-.2h-63.4v-145.6h69.8c27.2,1.1,39,18.2,39,38.5s-3.9,21-9.2,27c10.7,7.3,18.8,20.8,18.8,37.9ZM152.9-1226.3h51.8c14.8,0,20.5-8.6,20.5-20.3s-5.6-20.6-24.2-20.6h-48.2v40.9h0ZM234.9-1183.5c0-13.5-7.3-24.6-24.8-24.6h-57.2v50.1h55c19.7,0,27-10.5,27-25.5Z"/>
|
||||
<g>
|
||||
<circle class="cls-2" cx="283.3" cy="-1267.3" r="18.3"/>
|
||||
<circle class="cls-2" cx="393.3" cy="-1267.3" r="18.3"/>
|
||||
<path class="cls-2" d="M338.3-1230.8c0,10.1-8.2,18.3-18.3,18.4-10.1,0-18.3-8.2-18.4-18.3,0-10.1,8.2-18.3,18.3-18.4,10.1,0,18.3,8.2,18.4,18.3Z"/>
|
||||
<circle class="cls-2" cx="356.6" cy="-1230.8" r="18.3"/>
|
||||
<path class="cls-2" d="M338.3-1194.2c0,10.1-8.2,18.3-18.3,18.4-10.1,0-18.3-8.2-18.4-18.3,0-10.1,8.2-18.3,18.3-18.4,10.1,0,18.3,8.2,18.4,18.3Z"/>
|
||||
<circle class="cls-2" cx="356.6" cy="-1194.2" r="18.3"/>
|
||||
<circle class="cls-2" cx="283.3" cy="-1157.3" r="18.3"/>
|
||||
<circle class="cls-2" cx="393.3" cy="-1157.3" r="18.3"/>
|
||||
</g>
|
||||
<polygon class="cls-2" points="253.2 -1313.7 172.4 -1313.7 172.4 -1348.6 134.6 -1348.6 134.6 -1434.9 173 -1434.9 173 -1459.9 216.2 -1459.9 216.2 -1442.9 190 -1442.9 190 -1417.9 151.6 -1417.9 151.6 -1365.6 189.4 -1365.6 189.4 -1330.7 253.2 -1330.7 253.2 -1313.7"/>
|
||||
<path class="cls-2" d="M756.8-1487.9h22.5c0,0,.1-.2.2-.3h-22.6c0,0-.1.2-.2.3Z"/>
|
||||
<path class="cls-2" d="M673.4-1587.1v21.2c29.4-17.1,54.3-40.2,72.8-67.9h-22.2c-13.9,18.2-31,34-50.5,46.7Z"/>
|
||||
<path class="cls-2" d="M828.7-1533.8v-21.7c-3.7,2.3-7.4,4.8-11.1,7.3-24.4,17.1-44.9,37.6-60.6,60.1h22.6c13.7-17.2,30.4-32.6,49.1-45.7Z"/>
|
||||
<path class="cls-2" d="M695.5-1541c-7.1-5.4-14.5-10.4-22.1-14.9v21.3c3.8,2.5,7.5,5.2,11.2,7.9,14.8,11.3,27.9,24.2,39,38.5h22.4c-13.8-20.1-30.7-37.8-50.5-52.8Z"/>
|
||||
<path class="cls-2" d="M820.6-1593.7c-15.9-11.7-29.7-25.1-41.3-40.1h-22.3c14.1,20.8,31.8,39.1,52.9,54.6,6.1,4.5,12.3,8.6,18.8,12.5v-21.4c-2.7-1.8-5.4-3.7-8.1-5.7Z"/>
|
||||
<polygon class="cls-2" points="428 -1459.4 428 -1314.1 438.7 -1314.1 438.7 -1442.2 480.4 -1442.2 480.4 -1314.1 500.8 -1314.1 500.8 -1442.2 543.7 -1442.2 543.7 -1314.1 569.2 -1314.1 569.2 -1459.4 428 -1459.4"/>
|
||||
</g>
|
||||
<path class="cls-1" d="M1684.9,411c-11.5,0-20.9-9.3-20.9-20.9,0,11.5-9.3,20.9-20.9,20.9,11.5,0,20.9,9.3,20.9,20.9,0-11.5,9.3-20.9,20.9-20.9Z"/>
|
||||
<path class="cls-2" d="M1646.7,283.4v-39.9h-43.1v-25.6c.2,0,.4-.1.6-.2-.2,0-.4-.1-.6-.2v-33.6h43.8v-28.6h29.8v-19.4h-49.2v28.6h-43.8v98.3h43.1v39.9h92.1v-19.4h-72.7Z"/>
|
||||
<path class="cls-2" d="M1462.8,301.6h25.6c15.6-19.6,34.6-37.3,56-52.1v-24.7c-4.3,2.7-8.5,5.5-12.7,8.4-27.7,19.4-51.1,42.7-69,68.4Z"/>
|
||||
<path class="cls-2" d="M1535.1,181.5c-18.2-13.4-34-28.8-47.3-46h-25.3c16.1,23.8,36.3,44.8,60.4,62.5,3.5,2.6,7.1,5.1,10.8,7.5,3.5,2.3,7.1,4.6,10.7,6.8v-24.3c-3.1-2.1-6.2-4.3-9.3-6.5Z"/>
|
||||
<path class="cls-2" d="M1450.7,135.5h-25.2c-15.9,20.9-35.5,39-57.9,53.6v24.1c4.2-2.4,8.3-5,12.4-7.6,28.2-18.6,52.3-42.3,70.7-70.1Z"/>
|
||||
<path class="cls-2" d="M1424.8,301.6h25.4c-15.7-22.8-34.9-43-57.5-60.2-8.1-6.1-16.5-11.8-25.2-17v24.3c4.3,2.9,8.6,5.9,12.7,9.1,16.9,12.8,31.7,27.5,44.5,43.8Z"/>
|
||||
<polygon class="cls-2" points="1465.6 326.9 1447.3 326.9 1442.1 326.9 1369.8 326.9 1369.8 492.7 1382 492.7 1382 346.1 1429.6 346.1 1429.6 372 1429.6 492.7 1449.8 492.7 1452.9 492.7 1452.9 365.8 1452.9 347.6 1452.9 346.1 1460.7 346.1 1474.7 346.1 1501.9 346.1 1501.9 492.7 1531.1 492.7 1531.1 326.9 1470.8 326.9 1465.6 326.9"/>
|
||||
<path class="cls-2" d="M1601.3,369.4c11.5,0,20.9-9.4,20.9-20.9s-9.4-20.9-20.9-20.9-20.9,9.4-20.9,20.9,9.4,20.9,20.9,20.9Z"/>
|
||||
<circle class="cls-2" cx="1726.7" cy="348.5" r="20.9"/>
|
||||
<path class="cls-2" d="M1664,390.1c0-11.5-9.4-20.9-20.9-20.9-11.5,0-20.9,9.4-20.9,20.9,0,11.5,9.4,20.9,20.9,20.9,11.5,0,20.9-9.4,20.9-20.9Z"/>
|
||||
<circle class="cls-2" cx="1684.9" cy="390.1" r="20.9"/>
|
||||
<path class="cls-2" d="M1643.1,411c-11.5,0-20.9,9.4-20.9,20.9,0,11.5,9.4,20.9,20.9,20.9,11.5,0,20.9-9.4,20.9-20.9,0-11.5-9.4-20.9-20.9-20.9Z"/>
|
||||
<path class="cls-2" d="M1684.9,411c-11.5,0-20.9,9.4-20.9,20.9,0,11.5,9.4,20.9,20.9,20.9,11.5,0,20.9-9.4,20.9-20.9,0-11.5-9.4-20.9-20.9-20.9Z"/>
|
||||
<path class="cls-2" d="M1601.3,453c-11.5,0-20.9,9.4-20.9,20.9s9.4,20.9,20.9,20.9,20.9-9.4,20.9-20.9c0-11.5-9.4-20.9-20.9-20.9Z"/>
|
||||
<path class="cls-2" d="M1726.7,453c-11.5,0-20.9,9.4-20.9,20.9s9.4,20.9,20.9,20.9,20.9-9.4,20.9-20.9c0-11.5-9.4-20.9-20.9-20.9Z"/>
|
||||
<path class="cls-2" d="M1900.6,139.4h-125.5c-5.5,0-10,5-10,11.1v85c0,6.1,4.5,11.1,10,11.1h18.5c.1,0,.2,0,.3,0h0s58.9,0,58.9,0h0c0,0,.1.2.1.3v19.2c0,.1,0,.2,0,.2h-30.1s0,0,0-.2v-10h-3.7v10c0,2.2,1.7,3.9,3.8,3.9h30.1c2.1,0,3.8-1.8,3.8-3.9v-19.2c0-.1,0-.2,0-.3h25.1c.1,0,.2,0,.3,0h18.5c5.5,0,10-5,10-11.1v-85c0-6.1-4.5-11.1-10-11.1ZM1790.1,238.2v-59.5c0-2.5,1.7-4.6,3.8-4.6h87.8c2.1,0,3.8,2.1,3.8,4.6v59.5c0,2.5-1.6,4.5-3.7,4.6h-8c.3-.8.5-1.7.5-2.7v-41.6c0-3.5-2.6-6.4-5.8-6.4h-61.5c-3.2,0-5.8,2.9-5.8,6.4v41.6c0,1,.2,1.9.5,2.7h-8c-2,0-3.7-2.1-3.7-4.6ZM1822.7,242.4v-20.4c0-.2,0-.3,0-.4h30.1s.1.1.1.3v20.4c0,.2,0,.3,0,.3h0s-30.1,0-30.1,0h0s-.1-.2-.1-.4ZM1852.9,218h-30.1c-2.1,0-3.8,1.8-3.8,4.1v20.4c0,.1,0,.2,0,.4h-2.7c-.5,0-.9-.6-.9-1.3v-29.1c0-.7.4-1.3.9-1.3h43c.5,0,.9.6.9,1.3v29.1c0,.7-.4,1.3-.9,1.3h0s-2.7,0-2.7,0c0-.1,0-.2,0-.4v-20.4c0-2.2-1.7-4.1-3.8-4.1ZM1859.4,207.3h-43c-2.6,0-4.6,2.2-4.6,5v29.1c0,.5,0,.9.2,1.3h-4.8c-1.2,0-2.1-1.2-2.1-2.7v-41.6c0-1.5,1-2.6,2.1-2.6h61.5c1.2,0,2.1,1.2,2.1,2.6v41.6c0,1.5-1,2.6-2.1,2.6h0s-4.8,0-4.8,0c.1-.4.2-.9.2-1.3v-29.1c0-2.8-2.1-5-4.6-5ZM1906.9,235.4c0,4.1-2.8,7.3-6.3,7.3h-12.5c.8-1.3,1.3-2.9,1.3-4.6v-59.5c0-4.6-3.4-8.3-7.6-8.3h-87.8c-4.2,0-7.6,3.7-7.6,8.3v59.5c0,1.7.5,3.3,1.3,4.6h-12.5c-3.5,0-6.3-3.3-6.3-7.3v-85c0-4.1,2.8-7.3,6.3-7.3h125.5c3.5,0,6.3,3.3,6.3,7.3v85h0Z"/>
|
||||
<path class="cls-2" d="M2058,139h-126.3c-5.5,0-10,4.8-10,10.6v42.1h3.7v-42.1c0-3.8,2.8-6.9,6.3-6.9h126.3c3.5,0,6.3,3.1,6.3,6.9v80.9c0,3.3-2.8,7.1-6.3,7.1h-12.6c.8-1.3,1.2-2.8,1.2-4.4v-56.6c0-4.4-3.4-8-7.6-8h-88.4c-4.2,0-7.6,3.6-7.6,8v29.5h3.7v-29.5c0-2.4,1.7-4.3,3.9-4.3h88.4c2.1,0,3.9,1.9,3.9,4.3v56.6c0,2.4-1.8,4.4-3.9,4.4h0s-7.9,0-7.9,0c.3-.8.5-1.6.5-2.5v-39.6c0-3.4-2.6-6.1-5.9-6.1h-61.9c-3.2,0-5.9,2.8-5.9,6.1v20.6h3.7v-20.6c0-1.3,1-2.4,2.2-2.4h61.9c1.2,0,2.2,1.1,2.2,2.4v39.6c0,1.3-.9,2.4-1.9,2.5h-5c0-.4.2-.8.2-1.2v-27.7c0-2.7-2.1-4.9-4.7-4.9h-43.3c-2.6,0-4.7,2.2-4.7,4.9v14.4h3.7v-14.4c0-.6.4-1.1,1-1.1h43.3c.5,0,.9.5.9,1.1v27.7c0,.6-.4,1.2-.9,1.2h0s-2.7,0-2.7,0c0-.1,0-.2,0-.3v-19.4c0-2.2-1.7-4-3.8-4h-30.3c-2.1,0-3.8,1.8-3.8,4v10.1h3.7v-10.1c0-.2,0-.2.1-.2h30.3s.1,0,.1.2v19.4c0,.2,0,.3-.1.3h0s-30.1,0-30.1,0v3.7s45.9,0,45.9,0h0c.2,0,.4,0,.6,0h31.6c5.4,0,10-5,10-10.8v-80.9c0-5.9-4.5-10.6-10-10.6Z"/>
|
||||
<path class="cls-2" d="M2010.1,261c0,.2,0,.2-.1.2h-30.3s-.1,0-.1-.2v-19.4c0-.2,0-.3.1-.3v-3.7c-2.1,0-3.8,1.8-3.8,4v19.4c0,2.2,1.7,4,3.8,4h30.3c2.1,0,3.8-1.8,3.8-4v-10.1h-3.7v10.1Z"/>
|
||||
<path class="cls-2" d="M2225,336.8h-3.7v-186c0-3.8-2.8-6.9-6.2-6.9h-124.4c-3.4,0-6.2,3.1-6.2,6.9h-3.7c0-5.8,4.5-10.6,9.9-10.6h124.4c5.5,0,9.9,4.7,9.9,10.6v186Z"/>
|
||||
<path class="cls-2" d="M2203.9,307.6h-3.7v-130.2c0-2.3-1.7-4.3-3.8-4.3h-87.1c-2.1,0-3.8,1.9-3.8,4.3h-3.7c0-4.4,3.4-8,7.5-8h87.1c4.1,0,7.5,3.6,7.5,8v130.2Z"/>
|
||||
<path class="cls-2" d="M2189.2,287.2h-3.7v-91.2c0-1.3-.9-2.4-2.1-2.4h-61c-1.2,0-2.1,1.1-2.1,2.4h-3.7c0-3.4,2.6-6.1,5.8-6.1h61c3.2,0,5.8,2.8,5.8,6.1v91.2h0Z"/>
|
||||
<path class="cls-2" d="M2178.8,272.8h-3.7v-63.8c0-.6-.4-1.1-.9-1.1h-42.7c-.5,0-.9.5-.9,1.1h-3.7c0-2.7,2.1-4.9,4.6-4.9h42.7c2.6,0,4.6,2.2,4.6,4.9v63.8h0Z"/>
|
||||
<path class="cls-2" d="M2171.6,262.8h-3.7v-44.7c0-.2,0-.2,0-.2h-29.9s0,0,0,.2h-3.7c0-2.2,1.7-4,3.8-4h29.9c2.1,0,3.8,1.8,3.8,4v44.7Z"/>
|
||||
<path class="cls-2" d="M2137.8,265.9c-2.1,0-3.8-1.8-3.8-4h3.7c0,.2,0,.3.1.3v3.7Z"/>
|
||||
<path class="cls-2" d="M2131.5,276.2c-2.5,0-4.6-2.2-4.6-4.9h3.7c0,.6.4,1.2.9,1.2v3.7h0Z"/>
|
||||
<path class="cls-2" d="M2122.3,291.6c-3.2,0-5.8-2.8-5.8-6.3h3.7c0,1.4.9,2.5,2.1,2.5v3.7h0Z"/>
|
||||
<path class="cls-2" d="M2109.4,312.3c-4.1,0-7.5-3.7-7.5-8.1h3.7c0,2.4,1.7,4.4,3.7,4.4v3.7h0Z"/>
|
||||
<path class="cls-2" d="M2090.4,344.1c-5.5,0-9.9-4.9-9.9-10.9h3.7c0,4,2.8,7.2,6.2,7.2v3.7Z"/>
|
||||
<g>
|
||||
<path class="cls-2" d="M1157.8,206.6v9.8h-55.5v-78.5h9.8v68.7h45.7Z"/>
|
||||
<path class="cls-2" d="M1005.1,193.6c0,14.2-10.2,23.1-24.8,22.8h-4.8c0-.1-34.1-.1-34.1-.1v-78.3h37.5c14.6.6,21,9.8,21,20.7s-2.1,11.3-5,14.5c5.8,3.9,10.1,11.2,10.1,20.4ZM951.2,169.7h27.9c7.9,0,11.1-4.6,11.1-10.9s-3-11.1-13-11.1h-25.9v22h0ZM995.3,192.8c0-7.3-3.9-13.2-13.4-13.2h-30.8v26.9h29.6c10.6,0,14.5-5.6,14.5-13.7Z"/>
|
||||
<circle class="cls-2" cx="1021.5" cy="147.7" r="9.9" transform="translate(643.1 1108) rotate(-76.7)"/>
|
||||
<circle class="cls-2" cx="1080.7" cy="147.7" r="9.9"/>
|
||||
<circle class="cls-2" cx="1041.3" cy="167.3" r="9.9"/>
|
||||
<path class="cls-2" d="M1070.8,167.3c0,5.4-4.4,9.9-9.8,9.9-5.4,0-9.9-4.4-9.9-9.8,0-5.4,4.4-9.9,9.8-9.9,5.4,0,9.9,4.4,9.9,9.8Z"/>
|
||||
<circle class="cls-2" cx="1041.3" cy="187" r="9.9"/>
|
||||
<circle class="cls-2" cx="1061" cy="187" r="9.9"/>
|
||||
<circle class="cls-2" cx="1021.5" cy="206.8" r="9.9" transform="translate(585.5 1153.5) rotate(-76.7)"/>
|
||||
<circle class="cls-2" cx="1080.7" cy="206.8" r="9.9"/>
|
||||
<path class="cls-2" d="M574.6,189.6h-35.7l-10.5,25.9h-10.4l31.4-78.3h14.4l31.4,78.3h-10.4l-10.4-25.9ZM570.7,179.8l-12.2-30.4-1.7-4.4-1.7,4.4-12.2,30.4h27.9Z"/>
|
||||
<path class="cls-2" d="M740.7,137.3c13.2.1,22,8.6,22,21.3s-8.4,23.1-21,23.1h-32.2v33.8h-10.1v-78.3h41.3ZM709.5,172h32.1c7.1-.1,11.6-5.2,11.6-12.8s-4.5-12-11.6-12.1h-32.1v24.9Z"/>
|
||||
<path class="cls-2" d="M832.9,192.5c-.1,16-11.1,25.4-29.5,25.4s-31.1-9.8-31.1-24.4v-56.2h10.2v54.9c.1,10.1,7.6,15.7,20.3,15.7s19.7-5.5,19.8-15.7v-54.9h10.2v55.1Z"/>
|
||||
<path class="cls-2" d="M875.9,208.1c9.6,0,16.6-3.7,16.6-11.5s-5.5-10.1-10.5-11.9c-6.3-2.2-11.5-3-18.9-5.2-9.2-2.8-16-10.6-16-21.5s8.4-22.9,25.7-22.9,20.5,2.2,29.6,12.1l-6.9,7c-8.2-7.9-18.4-9.3-23.3-9.3-9.3,0-15,6-15,12.7s3.2,10.4,10.8,12.5c3.9,1.2,10,2.9,18.5,5.4,12.7,3.8,16,11.5,16,20.8s-10.7,21.5-26.7,21.5-23.3-4.1-30.2-13.9l8.4-6.2c5.8,7.5,13.1,10.4,21.8,10.4Z"/>
|
||||
<polygon class="cls-2" points="512.3 215.6 468.8 215.6 468.8 196.8 448.4 196.8 448.4 150.4 469.1 150.4 469.1 136.9 492.3 136.9 492.3 146 478.2 146 478.2 159.5 457.6 159.5 457.6 187.6 477.9 187.6 477.9 206.4 512.3 206.4 512.3 215.6"/>
|
||||
<path class="cls-2" d="M73.2,137.2c13.2.1,22,8.6,22,21.3s-8.4,23.1-21,23.1h-15.3l31.8,33.9h-13.6l-30.6-33.9h-6.8v33.8h-10.1v-78.3h43.6ZM39.7,171.9h34.4c7.1-.1,11.6-5.2,11.6-12.8s-4.5-12-11.6-12.1h-34.4v24.9Z"/>
|
||||
<path class="cls-2" d="M156.4,189.6h-35.7l-10.5,25.9h-10.4l31.4-78.3h14.4l31.4,78.3h-10.4l-10.4-25.9ZM152.5,179.8l-12.2-30.4-1.7-4.4-1.7,4.4-12.2,30.4h27.9Z"/>
|
||||
<path class="cls-2" d="M220.7,137.2c19.8.1,32.3,16.2,32.3,38.1s-10.2,40.2-33,40.2h-32.6v-78.3h33.3ZM197.5,205.7h24.5c13.7,0,21.2-11.9,21.2-29.8s-8.6-28.8-21.6-28.9h-24.1v58.7Z"/>
|
||||
<path class="cls-2" d="M310.7,205.9v9.6h-50.6v-9.6h20.7v-59.2h-17.3v-9.6h43.7v9.6h-16.9v59.2h20.4Z"/>
|
||||
<polygon class="cls-2" points="612 215.7 612 146.2 634.5 146.2 634.5 215.7 645.5 215.7 645.5 146.2 668.6 146.2 668.6 215.7 682.4 215.7 682.4 136.7 606.3 136.7 606.3 215.7 612 215.7"/>
|
||||
<path class="cls-2" d="M319.6,162.4v11.4c15.8-9.2,29.1-21.6,39.1-36.5h-11.9c-7.5,9.8-16.6,18.2-27.1,25.1Z"/>
|
||||
<path class="cls-2" d="M403,191v-11.7c-2,1.3-4,2.6-5.9,3.9-13.1,9.2-24.2,20.2-32.6,32.4h12.1c7.4-9.3,16.4-17.6,26.5-24.7Z"/>
|
||||
<path class="cls-2" d="M319.6,190.6c2,1.4,4,2.8,6,4.3,8,6.1,15,13,21,20.7h12c-7.4-10.8-16.5-20.3-27.1-28.4-3.8-2.9-7.8-5.6-11.9-8v11.4h0Z"/>
|
||||
<path class="cls-2" d="M403,161.9c-1.5-1-2.9-2-4.3-3-8.5-6.3-15.9-13.5-22.2-21.5h-12c7.6,11.1,17.1,21,28.4,29.3,3.2,2.4,6.6,4.6,10.1,6.7v-11.5h0Z"/>
|
||||
</g>
|
||||
<g id="small">
|
||||
<g>
|
||||
<path class="cls-2" d="M605.8,679.6h-35.7l-10.5,25.9h-10.4l31.4-78.3h14.4l31.4,78.3h-10.4l-10.4-25.9ZM601.8,669.8l-12.2-30.4-1.7-4.4-1.7,4.4-12.2,30.4h27.9Z"/>
|
||||
<path class="cls-2" d="M771.9,627.3c13.2.1,22,8.6,22,21.3s-8.4,23.1-21,23.1h-32.2v33.8h-10.1v-78.3h41.3ZM740.7,662h32.1c7.1-.1,11.6-5.2,11.6-12.8s-4.5-12-11.6-12.1h-32.1v24.9Z"/>
|
||||
<path class="cls-2" d="M864.1,682.5c-.1,16-11.1,25.4-29.5,25.4s-31.1-9.8-31.1-24.4v-56.2h10.2v54.9c.1,10.1,7.6,15.7,20.3,15.7s19.7-5.5,19.8-15.7v-54.9h10.2v55.1Z"/>
|
||||
<path class="cls-2" d="M907,698.1c9.6,0,16.6-3.7,16.6-11.5s-5.5-10.1-10.5-11.9c-6.3-2.2-11.5-3-18.9-5.2-9.2-2.8-16-10.6-16-21.5s8.4-22.9,25.7-22.9,20.5,2.2,29.6,12.1l-6.9,7c-8.2-7.9-18.4-9.3-23.3-9.3-9.3,0-15,6-15,12.7s3.2,10.4,10.8,12.5c3.9,1.2,10,2.9,18.5,5.4,12.7,3.8,16,11.5,16,20.8s-10.7,21.5-26.7,21.5-23.3-4.1-30.2-13.9l8.4-6.2c5.8,7.5,13.1,10.4,21.8,10.4Z"/>
|
||||
<polygon class="cls-2" points="543.4 705.6 500 705.6 500 686.8 479.6 686.8 479.6 640.4 500.3 640.4 500.3 626.9 523.5 626.9 523.5 636 509.4 636 509.4 649.5 488.7 649.5 488.7 677.6 509.1 677.6 509.1 696.4 543.4 696.4 543.4 705.6"/>
|
||||
<path class="cls-2" d="M104.4,627.2c13.2.1,22,8.6,22,21.3s-8.4,23.1-21,23.1h-15.3l31.8,33.9h-13.6l-30.6-33.9h-6.8v33.8h-10.1v-78.3h43.6ZM70.9,661.9h34.4c7.1-.1,11.6-5.2,11.6-12.8s-4.5-12-11.6-12.1h-34.4v24.9Z"/>
|
||||
<path class="cls-2" d="M187.6,679.6h-35.7l-10.5,25.9h-10.4l31.4-78.3h14.4l31.4,78.3h-10.4l-10.4-25.9ZM183.7,669.8l-12.2-30.4-1.7-4.4-1.7,4.4-12.2,30.4h27.9Z"/>
|
||||
<path class="cls-2" d="M251.8,627.2c19.8.1,32.3,16.2,32.3,38.1s-10.2,40.2-33,40.2h-32.6v-78.3h33.3ZM228.7,695.7h24.5c13.7,0,21.2-11.9,21.2-29.8s-8.6-28.8-21.6-28.9h-24.1v58.7h0Z"/>
|
||||
<path class="cls-2" d="M341.9,695.9v9.6h-50.6v-9.6h20.7v-59.2h-17.3v-9.6h43.7v9.6h-16.9v59.2h20.4Z"/>
|
||||
<polygon class="cls-2" points="643.2 705.7 643.2 636.2 665.7 636.2 665.7 705.7 676.7 705.7 676.7 636.2 699.8 636.2 699.8 705.7 713.6 705.7 713.6 626.7 637.4 626.7 637.4 705.7 643.2 705.7"/>
|
||||
<path class="cls-2" d="M350.8,652.4v11.4c15.8-9.2,29.1-21.6,39.1-36.5h-11.9c-7.5,9.8-16.6,18.2-27.1,25.1Z"/>
|
||||
<path class="cls-2" d="M434.1,681v-11.7c-2,1.3-4,2.6-5.9,3.9-13.1,9.2-24.2,20.2-32.6,32.4h12.1c7.4-9.3,16.4-17.6,26.5-24.7Z"/>
|
||||
<path class="cls-2" d="M350.8,680.6c2,1.4,4,2.8,6,4.3,8,6,15,13,21,20.7h12c-7.4-10.8-16.5-20.3-27.1-28.4-3.8-2.9-7.8-5.6-11.9-8v11.5h0Z"/>
|
||||
<path class="cls-2" d="M434.1,651.9c-1.5-1-2.9-2-4.3-3-8.5-6.3-15.9-13.5-22.2-21.5h-12c7.6,11.1,17.1,21,28.4,29.3,3.2,2.4,6.6,4.6,10.1,6.7v-11.5Z"/>
|
||||
<g>
|
||||
<path class="cls-2" d="M963.9,677.9c0,5.5-4.4,10-9.9,10-5.5,0-10-4.4-10-9.9,0-5.5,4.4-10,9.9-10,5.5,0,10,4.4,10,9.9Z"/>
|
||||
<circle class="cls-2" cx="973.8" cy="677.8" r="10"/>
|
||||
<circle class="cls-2" cx="954" cy="697.8" r="10"/>
|
||||
<circle class="cls-2" cx="973.9" cy="697.8" r="10"/>
|
||||
<path class="cls-2" d="M1058.4,683.5c0,14.2-10.2,23.1-24.8,22.8h-4.8c0-.1-34.1-.1-34.1-.1v-78.3h37.5c14.6.6,21,9.8,21,20.7s-2.1,11.3-5,14.5c5.8,3.9,10.1,11.2,10.1,20.4ZM1004.5,659.7h27.9c7.9,0,11.1-4.6,11.1-10.9s-3-11.1-13-11.1h-25.9v22h0ZM1048.6,682.7c0-7.3-3.9-13.2-13.4-13.2h-30.7v26.9h29.6c10.6,0,14.5-5.6,14.5-13.7Z"/>
|
||||
<path class="cls-2" d="M1077.9,637.7v22h41.6v9.8h-41.6v26.9h46.2v9.8h-55.9v-78.3h55.9v9.8h-46.2Z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 33 KiB |
@ -1,69 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 1190.6 841.9">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
fill: #000;
|
||||
stroke-width: 0px;
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<g>
|
||||
<path class="cls-1" d="M80,318.5c14.5.1,24.2,9.5,24.2,23.4s-9.2,25.4-23,25.4h-16.8l34.9,37.2h-14.9l-33.6-37.2h-7.4v37.2h-11.1v-86h47.9,0ZM43.2,356.6h37.8c7.9-.1,12.8-5.7,12.8-14.1s-4.9-13.2-12.8-13.3h-37.8v27.3h0Z"/>
|
||||
<path class="cls-1" d="M171.4,376.1h-39.2l-11.5,28.4h-11.4l34.5-86h15.8l34.5,86h-11.4l-11.4-28.4h.1ZM167.1,365.4l-13.4-33.4-1.9-4.8-1.9,4.8-13.4,33.4h30.6,0Z"/>
|
||||
<path class="cls-1" d="M242,318.5c21.8.1,35.5,17.9,35.5,41.9s-11.2,44.2-36.3,44.2h-35.8v-86h36.6ZM216.6,393.8h27c15.1,0,23.3-13,23.3-32.7s-9.5-31.6-23.8-31.7h-26.4v64.5h0Z"/>
|
||||
<path class="cls-1" d="M341,394v10.5h-55.6v-10.5h22.8v-65h-19v-10.5h48.1v10.5h-18.6v65h22.4,0Z"/>
|
||||
<path class="cls-1" d="M170.9,479.3h-39.2l-11.5,28.4h-11.4l34.5-86h15.8l34.5,86h-11.4l-11.4-28.4h.1ZM166.5,468.6l-13.4-33.4-1.9-4.8-1.9,4.8-13.4,33.4h30.6,0Z"/>
|
||||
<path class="cls-1" d="M353.4,421.9c14.5.1,24.2,9.5,24.2,23.4s-9.2,25.4-23,25.4h-35.4v37.2h-11.1v-86h45.4,0ZM319.1,460h35.3c7.9-.1,12.8-5.7,12.8-14.1s-4.9-13.1-12.8-13.3h-35.3v27.3h0Z"/>
|
||||
<path class="cls-1" d="M454.7,482.5c-.1,17.6-12.1,28-32.4,28s-34.2-10.8-34.2-26.8v-61.7h11.2v60.4c.1,11.1,8.3,17.2,22.3,17.2s21.6-6.1,21.8-17.2v-60.4h11.2v60.6h0Z"/>
|
||||
<path class="cls-1" d="M501.9,499.7c10.5,0,18.2-4,18.2-12.7s-6.1-11.1-11.5-13c-7-2.4-12.6-3.3-20.7-5.7-10.1-3-17.6-11.6-17.6-23.6s9.2-25.2,28.2-25.2,22.5,2.4,32.5,13.3l-7.6,7.7c-9-8.7-20.2-10.2-25.5-10.2-10.2,0-16.4,6.6-16.4,13.9s3.5,11.4,11.9,13.8c4.3,1.2,11,3.2,20.3,6,13.9,4.2,17.6,12.7,17.6,22.9s-11.8,23.6-29.3,23.6-25.5-4.6-33.2-15.3l9.2-6.9c6.3,8.2,14.4,11.4,23.9,11.4h0Z"/>
|
||||
<polygon class="cls-1" points="205.7 421.8 205.7 507.6 212 507.6 212 431.7 236.6 431.7 236.6 507.6 248.7 507.6 248.7 431.7 274.1 431.7 274.1 507.6 289.3 507.6 289.3 421.8 205.7 421.8"/>
|
||||
<polygon class="cls-1" points="102.3 507.9 54.6 507.9 54.6 487.3 32.2 487.3 32.2 436.2 54.9 436.2 54.9 421.5 80.4 421.5 80.4 431.5 65 431.5 65 446.3 42.3 446.3 42.3 477.2 64.6 477.2 64.6 497.8 102.3 497.8 102.3 507.9"/>
|
||||
<path class="cls-1" d="M435.7,369.1c-14.4,10-26.5,22.2-35.8,35.5h13.3c8.1-10.2,18-19.3,29-27v-12.8c-2.2,1.4-4.4,2.8-6.6,4.4h0Z"/>
|
||||
<path class="cls-1" d="M431.2,350.9c3.6,2.7,7.3,5.1,11.1,7.4v-12.6c-1.7-1.1-3.3-2.2-4.8-3.4-9.5-7-17.6-15-24.5-23.8h-13.1c8.3,12.4,18.9,23.2,31.3,32.4h0Z"/>
|
||||
<path class="cls-1" d="M393.8,318.5h-13.1c-8.2,10.9-18.4,20.2-30,27.8v12.5c17.4-10.1,32.2-23.8,43.1-40.3Z"/>
|
||||
<path class="cls-1" d="M363.7,373.4c-4.2-3.2-8.6-6.1-13.1-8.8v12.6c2.2,1.5,4.4,3.1,6.6,4.7,8.7,6.7,16.4,14.2,23.1,22.7h13.2c-8.1-11.8-18.1-22.3-29.8-31.2h0Z"/>
|
||||
<g>
|
||||
<path class="cls-1" d="M56.7,579.5c0,6-4.8,10.9-10.9,10.9s-10.9-4.8-10.9-10.9,4.9-10.9,10.9-10.9,10.9,4.9,10.9,10.9Z"/>
|
||||
<path class="cls-1" d="M78.5,579.5c0,6-4.8,10.9-10.9,10.9s-10.9-4.8-10.9-10.9,4.9-10.9,10.9-10.9,10.9,4.8,10.9,10.9Z"/>
|
||||
<path class="cls-1" d="M56.7,601.4c0,6-4.9,10.9-10.9,10.9s-10.9-4.8-10.9-10.9,4.8-10.9,10.9-10.9,10.9,4.8,10.9,10.9Z"/>
|
||||
<circle class="cls-1" cx="67.6" cy="601.4" r="10.9"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-1" d="M160.5,585.8c0,15.5-11.2,25.4-27.2,25.1h-5.3c0-.1-37.4-.1-37.4-.1v-86h41.3c16.1.7,23,10.8,23,22.8s-2.3,12.4-5.4,16c6.3,4.3,11.1,12.3,11.1,22.4h0ZM101.2,559.6h30.6c8.7,0,12.1-5.1,12.1-12s-3.3-12.1-14.3-12.1h-28.4v24.2h0ZM149.7,584.9c0-8-4.3-14.5-14.7-14.5h-33.8v29.6h32.5c11.6,0,16-6.2,16-15.1h0Z"/>
|
||||
<path class="cls-1" d="M182,535.4v24.2h45.6v10.8h-45.6v29.6h50.7v10.8h-61.5v-86h61.5v10.8h-50.7Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-1" d="M402,556.2c0,41.1-10,57.5-31.4,57.5s-23.3-6.1-28.2-15.2l8.3-6c3.9,7.2,10.1,10.6,20.4,10.6s19.1-7.3,20.4-26.2c-5.3,4.7-12.5,7.7-20.5,7.7-18.7,0-30.9-14.2-30.9-28.5s12.3-33.6,30.9-33.6,31,14.3,31,33.6h0ZM392.5,554.3c0-13.7-10.4-20.3-21.4-20.3s-20.5,6.6-20.5,20.3,8.7,19.7,20.5,19.7,21.4-8,21.4-19.7Z"/>
|
||||
<path class="cls-1" d="M470.4,600.2v10.9h-54.7v-10.9c33.9-25.2,42.4-35.9,42.4-49.5s-6.7-17.1-18.7-17.1-19.5,6.7-15.8,23.2l-10.1,4.7c-5.4-17.9,2.8-39,27-39s28,10.8,28,26-12.4,35.2-37.2,51.8h39.3Z"/>
|
||||
<path class="cls-1" d="M489.4,598.1v13h-13v-13h13Z"/>
|
||||
<path class="cls-1" d="M520.6,525.1h10.9v86.2h-10.9v-72.5l-23.1,22.4v-13.4l23.1-22.6Z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-1" d="M1157.8,206.6v9.8h-55.5v-78.5h9.8v68.7h45.7Z"/>
|
||||
<path class="cls-1" d="M1005.1,193.6c0,14.2-10.2,23.1-24.8,22.8h-4.8c0-.1-34.1-.1-34.1-.1v-78.3h37.5c14.6.6,21,9.8,21,20.7s-2.1,11.3-5,14.5c5.8,3.9,10.1,11.2,10.1,20.4h0ZM951.2,169.7h27.9c7.9,0,11.1-4.6,11.1-10.9s-3-11.1-13-11.1h-25.9v22h0ZM995.3,192.8c0-7.3-3.9-13.2-13.4-13.2h-30.8v26.9h29.6c10.6,0,14.5-5.6,14.5-13.7h.1Z"/>
|
||||
<circle class="cls-1" cx="1021.8" cy="147.9" r="9.9" transform="translate(642.9 1108.3) rotate(-76.7)"/>
|
||||
<circle class="cls-1" cx="1080.7" cy="147.7" r="9.9"/>
|
||||
<circle class="cls-1" cx="1041.3" cy="167.3" r="9.9"/>
|
||||
<path class="cls-1" d="M1070.8,167.3c0,5.4-4.4,9.9-9.8,9.9s-9.9-4.4-9.9-9.8,4.4-9.9,9.8-9.9,9.9,4.4,9.9,9.8Z"/>
|
||||
<circle class="cls-1" cx="1041.3" cy="187" r="9.9"/>
|
||||
<circle class="cls-1" cx="1061" cy="187" r="9.9"/>
|
||||
<circle class="cls-1" cx="1021.7" cy="207" r="9.9" transform="translate(585.3 1153.7) rotate(-76.7)"/>
|
||||
<circle class="cls-1" cx="1080.7" cy="206.8" r="9.9"/>
|
||||
<path class="cls-1" d="M574.6,189.6h-35.7l-10.5,25.9h-10.4l31.4-78.3h14.4l31.4,78.3h-10.4l-10.4-25.9h.2ZM570.7,179.8l-12.2-30.4-1.7-4.4-1.7,4.4-12.2,30.4h27.9,0Z"/>
|
||||
<path class="cls-1" d="M740.7,137.3c13.2.1,22,8.6,22,21.3s-8.4,23.1-21,23.1h-32.2v33.8h-10.1v-78.3h41.3ZM709.5,172h32.1c7.1-.1,11.6-5.2,11.6-12.8s-4.5-12-11.6-12.1h-32.1v24.9h0Z"/>
|
||||
<path class="cls-1" d="M832.9,192.5c0,16-11.1,25.4-29.5,25.4s-31.1-9.8-31.1-24.4v-56.2h10.2v54.9c0,10.1,7.6,15.7,20.3,15.7s19.7-5.5,19.8-15.7v-54.9h10.2v55.1h0Z"/>
|
||||
<path class="cls-1" d="M875.9,208.1c9.6,0,16.6-3.7,16.6-11.5s-5.5-10.1-10.5-11.9c-6.3-2.2-11.5-3-18.9-5.2-9.2-2.8-16-10.6-16-21.5s8.4-22.9,25.7-22.9,20.5,2.2,29.6,12.1l-6.9,7c-8.2-7.9-18.4-9.3-23.3-9.3-9.3,0-15,6-15,12.7s3.2,10.4,10.8,12.5c3.9,1.2,10,2.9,18.5,5.4,12.7,3.8,16,11.5,16,20.8s-10.7,21.5-26.7,21.5-23.3-4.1-30.2-13.9l8.4-6.2c5.8,7.5,13.1,10.4,21.8,10.4h.1Z"/>
|
||||
<polygon class="cls-1" points="512.3 215.6 468.8 215.6 468.8 196.8 448.4 196.8 448.4 150.4 469.1 150.4 469.1 136.9 492.3 136.9 492.3 146 478.2 146 478.2 159.5 457.6 159.5 457.6 187.6 477.9 187.6 477.9 206.4 512.3 206.4 512.3 215.6"/>
|
||||
<path class="cls-1" d="M73.2,137.2c13.2.1,22,8.6,22,21.3s-8.4,23.1-21,23.1h-15.3l31.8,33.9h-13.6l-30.6-33.9h-6.8v33.8h-10.1v-78.3h43.6ZM39.7,171.9h34.4c7.1-.1,11.6-5.2,11.6-12.8s-4.5-12-11.6-12.1h-34.4v24.9h0Z"/>
|
||||
<path class="cls-1" d="M156.4,189.6h-35.7l-10.5,25.9h-10.4l31.4-78.3h14.4l31.4,78.3h-10.4l-10.4-25.9h.2ZM152.5,179.8l-12.2-30.4-1.7-4.4-1.7,4.4-12.2,30.4h27.9-.1Z"/>
|
||||
<path class="cls-1" d="M220.7,137.2c19.8.1,32.3,16.2,32.3,38.1s-10.2,40.2-33,40.2h-32.6v-78.3h33.3ZM197.5,205.7h24.5c13.7,0,21.2-11.9,21.2-29.8s-8.6-28.8-21.6-28.9h-24.1v58.7h0Z"/>
|
||||
<path class="cls-1" d="M310.7,205.9v9.6h-50.6v-9.6h20.7v-59.2h-17.3v-9.6h43.7v9.6h-16.9v59.2h20.4,0Z"/>
|
||||
<polygon class="cls-1" points="612 215.7 612 146.2 634.5 146.2 634.5 215.7 645.5 215.7 645.5 146.2 668.6 146.2 668.6 215.7 682.4 215.7 682.4 136.7 606.3 136.7 606.3 215.7 612 215.7"/>
|
||||
<path class="cls-1" d="M319.6,162.4v11.4c15.8-9.2,29.1-21.6,39.1-36.5h-11.9c-7.5,9.8-16.6,18.2-27.1,25.1h-.1Z"/>
|
||||
<path class="cls-1" d="M403,191v-11.7c-2,1.3-4,2.6-5.9,3.9-13.1,9.2-24.2,20.2-32.6,32.4h12.1c7.4-9.3,16.4-17.6,26.5-24.7h-.1Z"/>
|
||||
<path class="cls-1" d="M319.6,190.6c2,1.4,4,2.8,6,4.3,8,6.1,15,13,21,20.7h12c-7.4-10.8-16.5-20.3-27.1-28.4-3.8-2.9-7.8-5.6-11.9-8v11.4h0Z"/>
|
||||
<path class="cls-1" d="M403,161.9c-1.5-1-2.9-2-4.3-3-8.5-6.3-15.9-13.5-22.2-21.5h-12c7.6,11.1,17.1,21,28.4,29.3,3.2,2.4,6.6,4.6,10.1,6.7v-11.5h0Z"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 7.9 KiB |
@ -1,574 +1,108 @@
|
||||
:root {
|
||||
--a-player-bar-bg: #738EF2;
|
||||
--a-player-bar-fg: #4897c7;
|
||||
--a-player-url-fg: white;
|
||||
--a-playlist-header-bg: #F6ED80;;
|
||||
--a-playlist-header-fg: #222;
|
||||
--a-player-panel-bg: #738ef2;
|
||||
--a-player-panel-fg: white;
|
||||
--a-sound-hv-bg: #f6ed80;
|
||||
--a-sound-hv-fg: #444;
|
||||
--a-sound-bg: #f6ed80;
|
||||
--body-bg: unset;
|
||||
--break-color: transparent;
|
||||
--button-bg: #e9e9ed;
|
||||
--button-fg: #222;
|
||||
--button-hv-bg: #F4F88D;
|
||||
--button-hv-fg: #1d3cab;
|
||||
--button-active-fg: white;
|
||||
--button-active-bg: #738ef2;
|
||||
--cover-small-h: 10rem;
|
||||
--cover-small-w: 10rem;
|
||||
--heading-font-family: "campus_grotesk";
|
||||
--header-height: 320px;
|
||||
--heading-link-hv-fg: #aa217b;
|
||||
--heading-hg-fg: #fff;
|
||||
--link-fg: #3b47ff;
|
||||
--link-hv-fg: #c40c85;
|
||||
--main-color-light: #F4F881;
|
||||
--nav-bg: transparent;
|
||||
--nav-fg: #222;
|
||||
--nav-secondary-bg: transparent;
|
||||
--heading-font-family: "campus_heading";
|
||||
--nav-bg: #6c7ed2;
|
||||
--nav-secondary-bg: #F7F7F6;
|
||||
--nav-hv-bg: unset;
|
||||
--nav-active-bg: unset;
|
||||
--nav-active-fg: white;
|
||||
--preview-title-sz: 21px;
|
||||
--text-color: #75124e;
|
||||
--text-color-light: #eee;
|
||||
--a-player-bar-bg: #F7F7F6; /*linear-gradient(rgba(126, 159, 244, 0.9), rgba(126, 159, 244, 1)) 0% 0% / cover;*/
|
||||
--body-bg: unset;
|
||||
--text-color: #eee;
|
||||
--main-color-light: #F4F881;
|
||||
--button-bg: #F4F88D;
|
||||
--button-fg: #555;
|
||||
--button-hv-bg: #F4F88D;
|
||||
--button-hv-fg: #1d3cab;
|
||||
--link-hv-fg: #879ef4;
|
||||
--a-playlist-header-bg: #4acca2;
|
||||
--a-playlist-header-fg: #fff;
|
||||
--a-sound-hv-bg: #FFF89E; //#ffe453;
|
||||
--a-sound-hv-fg: #222;
|
||||
--a-player-panel-bg: #F7F7F6;
|
||||
--heading-link-hv-fg: #95a9f3;
|
||||
--break-color: transparent;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "campus_grotesk";
|
||||
src:
|
||||
local("campus_grotesk"),
|
||||
url("/static/radiocampus/fonts/campus_grotesk/CampusGroteskv24-Regular.woff2") format("woff2"),
|
||||
url("/static/radiocampus/fonts/campus_grotesk/CampusGroteskv24-Regular.woff") format("woff"),
|
||||
url("/static/radiocampus/fonts/campus_grotesk/CampusGroteskv24-Regular.otf") format("opentype") tech(color-COLRv1);
|
||||
font-family: 'campus_heading';
|
||||
src: url("/static/radiocampus/fonts/CampusGroteskv23-Regular.otf");
|
||||
}
|
||||
|
||||
body {
|
||||
color: #222;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
|
||||
body.home, body.home .preview .headings a, body.home .page a {
|
||||
color: #fff;
|
||||
}
|
||||
body.home .preview .headings a:hover {
|
||||
color: #f4f88d !important;
|
||||
}
|
||||
body.home .nav.primary {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
body.yellow {
|
||||
background: url(/static/radiocampus/backgrounds/degrade-jaune.jpg) repeat-x top fixed;
|
||||
}
|
||||
body.yellow :root {
|
||||
--nav-active-fg: #f4f88d;
|
||||
}
|
||||
body.yellow.home {
|
||||
background: url(/static/radiocampus/backgrounds/photo-degrade-02.jpg) no-repeat center/cover;
|
||||
background-attachment: fixed;
|
||||
}
|
||||
body.blue {
|
||||
background: url(/static/radiocampus/backgrounds/degrade-bleu.jpg) repeat-x top fixed;
|
||||
}
|
||||
body.blue.home {
|
||||
background: url(/static/radiocampus/backgrounds/photo-degrade-01.jpg) no-repeat center/cover;
|
||||
background-attachment: fixed;
|
||||
}
|
||||
body.blue #grandlogo img {
|
||||
content: url('/static/radiocampus/logos/logo-RC-blanc1.png');
|
||||
}
|
||||
body.yellow #grandlogo img {
|
||||
content: url('/static/radiocampus/logos/logo-RC-bleu1.png');
|
||||
}
|
||||
body.blue.home #grandlogo img {
|
||||
content: url('/static/radiocampus/logos/logo-RC-blanc2.png');
|
||||
}
|
||||
body.yellow.home #grandlogo img {
|
||||
content: url('/static/radiocampus/logos/logo-RC-bleu2.png');
|
||||
}
|
||||
body.yellow .nav .nav-item.active {
|
||||
color: #738EF2 !important;
|
||||
text-shadow: -3px 3px 17px rgb(0, 48, 111);
|
||||
}
|
||||
body.blue #grandlogo img, body.yellow #grandlogo img {
|
||||
width: 120px;
|
||||
margin: 12px 0 0 48px;
|
||||
}
|
||||
body.blue.home #grandlogo, body.yellow.home #grandlogo {
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
body.blue.home #grandlogo img , body.yellow.home #grandlogo img {
|
||||
margin: 12px auto 0 auto;
|
||||
width: 100%;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.a-player-bar {
|
||||
border-top: 1px solid #555;
|
||||
}
|
||||
.a-player .button, .a-player-bar-content {
|
||||
color: white;
|
||||
}
|
||||
#player .a-sound-item .label {
|
||||
color: white !important;
|
||||
}
|
||||
.a-switch-nav span {
|
||||
color: white;
|
||||
}
|
||||
.a-switch-nav span:hover {
|
||||
color: #333;
|
||||
}
|
||||
a.heading.title {
|
||||
color: black;
|
||||
}
|
||||
|
||||
a.heading.title:hover {
|
||||
/*color: var(--link-hv-fg); */
|
||||
color: #738ef2;
|
||||
}
|
||||
.a-sound-item .label::before, .a-sound-item.playing .label::before, .a-sound-item.playing .label:hover::before {
|
||||
content: "";
|
||||
|
||||
font-family: "Font Awesome 6 Free";
|
||||
|
||||
margin-right: .6em;
|
||||
|
||||
}
|
||||
.button, a.button, button.button {
|
||||
border: 0;
|
||||
}
|
||||
.header-cover:not(:only-child) {
|
||||
float: left;
|
||||
margin: 0 1.2rem 1.2rem 0;
|
||||
}
|
||||
.header.has-cover {
|
||||
min-height: unset;
|
||||
}
|
||||
.item-section {display:flex; align-items:end}
|
||||
.fifty {
|
||||
width: 55%;
|
||||
}
|
||||
.grid.list-emissions {
|
||||
grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
|
||||
grid-auto-flow: dense;
|
||||
gap: 0.2rem;
|
||||
}
|
||||
.grid.list-emissions .media-content {
|
||||
font-size: 0.84rem;
|
||||
}
|
||||
.today {
|
||||
color: yellow;
|
||||
font-size: 1.4em !important;
|
||||
}
|
||||
.list-grille article {
|
||||
border-bottom: 1px solid black;
|
||||
}
|
||||
.lagrille .category {
|
||||
color: white;
|
||||
margin-left: 10px;
|
||||
vertical-align: text-bottom;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
.lagrille:not(.homedisplay) .heading.subtitle {
|
||||
color: black;
|
||||
}
|
||||
.mt-3 {
|
||||
margin-top: unset !important;
|
||||
}
|
||||
.nav.primary .nav-brand {
|
||||
display: none;
|
||||
}
|
||||
.nav.secondary .nav-item {
|
||||
color: black !important;
|
||||
}
|
||||
a.nav-item:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
.nav.primary .nav-item {
|
||||
font-weight: unset;
|
||||
font-size: 1.4em;
|
||||
}
|
||||
.page section.container {
|
||||
margin-top: 0;
|
||||
}
|
||||
.program-list {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.list-home {
|
||||
display: block;
|
||||
}
|
||||
.list-home article div.media {
|
||||
line-height: 1;
|
||||
padding: 0;
|
||||
}
|
||||
.list-home article.active div.media div.media-content a, .list-home article.active div.media div.media-content span {
|
||||
color: yellow;
|
||||
}
|
||||
|
||||
.list-home article.active div.media a:before {
|
||||
content: "\2192";
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
.list-home article div.media a.preview-cover {
|
||||
display: none;
|
||||
}
|
||||
.list-home article div.media div.media-content.flex-column {
|
||||
display: unset;
|
||||
}
|
||||
.list-home article div.media div.media-content section.content {
|
||||
display: none;
|
||||
}
|
||||
.list-home article div.media div.media-content div.episode-date {
|
||||
display: none;
|
||||
}
|
||||
.list-home article div.media div.media-content span.heading.subtitle {
|
||||
float: right;
|
||||
}
|
||||
.schedule {
|
||||
background-color: unset;
|
||||
font-size: 0.9em;
|
||||
margin: 0 0.2rem;
|
||||
opacity: 0.6;
|
||||
padding: 0 0.2rem 0.2rem 0.2rem;
|
||||
}
|
||||
|
||||
.schedules {
|
||||
margin-bottom: 0.4rem !important;
|
||||
}
|
||||
.title, .preview .title, .preview .title:not(:last-child) {
|
||||
text-transform: unset;
|
||||
font-weight: unset;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 400px) {
|
||||
body {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media screen and (max-width: 1024px) {
|
||||
:root {
|
||||
--header-height: 200px;
|
||||
}
|
||||
.page {
|
||||
margin-top: 0;
|
||||
padding-top: var(--nav-primary-height);
|
||||
}
|
||||
.nav.primary .nav-brand {
|
||||
display: inline-block;
|
||||
}
|
||||
.nav.secondary .nav-item {
|
||||
color: white !important;
|
||||
}
|
||||
.dropdown-trigger .icon, .icon.bullet {
|
||||
color: white;
|
||||
}
|
||||
.dropdown.is-right .dropdown-menu {
|
||||
left: 0;
|
||||
}
|
||||
.grid.list-emissions {
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
}
|
||||
#grandlogo {
|
||||
display: none;
|
||||
}
|
||||
.navs, .nav-menu.active {
|
||||
background-color: #7892f1; /*#738ef2;*/
|
||||
}
|
||||
.nav .nav-item {
|
||||
color: white !important;
|
||||
}
|
||||
.nav .nav-item.active {
|
||||
color: white !important;
|
||||
}
|
||||
.navs .nav + .nav {
|
||||
flex-grow: 1 !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 1408px) {
|
||||
.container:not(.is-max-desktop):not(.is-max-widescreen) {
|
||||
max-width: unset;
|
||||
margin: 10px 64px;
|
||||
}
|
||||
body.home .container:not(.is-max-desktop):not(.is-max-widescreen) {
|
||||
max-width: 1400px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 1216px) {
|
||||
.container:not(.is-max-desktop):not(.is-max-widescreen) {
|
||||
max-width: unset;
|
||||
margin: 0 64px;
|
||||
}
|
||||
body.home .container:not(.is-max-desktop):not(.is-max-widescreen) {
|
||||
max-width: 1152px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 900px) {
|
||||
.grid.list-emissions {
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.list-item .headings {
|
||||
margin-bottom: .2rem !important;
|
||||
}
|
||||
|
||||
.list-item:nth-child(3n+1):not(.wide) .media {
|
||||
border-color: transparent !important;
|
||||
}
|
||||
|
||||
.list-item:nth-child(3n):not(.wide) .media {
|
||||
border-color: transparent !important;
|
||||
}
|
||||
|
||||
.list-item:not(.wide) .media {
|
||||
padding: 0.2rem;
|
||||
}
|
||||
|
||||
.media-content .content p, .episode-date {
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
/*
|
||||
.nav-urls .urls a, .nav-urls .urls span {
|
||||
color: white;
|
||||
background-color: #444;
|
||||
border-radius: 5px;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
#background {
|
||||
background-size: cover;
|
||||
padding: 80px 0 80px 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
.button:hover, a.button:hover, button.button:hover {
|
||||
opacity: 0.9 !important;
|
||||
}
|
||||
|
||||
.container {
|
||||
background: whitesmoke;
|
||||
padding: 24px;
|
||||
border-radius: 5px;
|
||||
max-width: 960px;
|
||||
border: 1px solid #929293;
|
||||
}
|
||||
|
||||
.container.breadcrumbs, .container.header {
|
||||
background: transparent;
|
||||
border-radius: 0;
|
||||
padding: 0 24px 0 24px;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.container.breadcrumbs a {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.grid .list-item .headings .heading {
|
||||
padding-top: 10px;
|
||||
padding-left: 12px;
|
||||
}
|
||||
|
||||
.nav.secondary {
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
.nav.secondary .nav-item{
|
||||
olor: #1d3cab !important;
|
||||
color: #8c827e !important;
|
||||
font-size: 1.1em;
|
||||
color: #1d3cab !important;
|
||||
}
|
||||
.nav .nav-item {
|
||||
border: 1px solid transparent;
|
||||
border-radius: 30px;
|
||||
}
|
||||
|
||||
.nav .nav-item:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.navs {
|
||||
border-bottom: 1px solid #4d4545;
|
||||
}
|
||||
|
||||
.page {
|
||||
min-height: 500px;
|
||||
.preview-card {
|
||||
background-color: unset !important;
|
||||
}
|
||||
|
||||
.preview-cover {
|
||||
border-radius: 5px;
|
||||
opacity: 0.92;
|
||||
border: 1px solid #fff;
|
||||
}
|
||||
|
||||
.a-carousel .preview-cover {
|
||||
border: 1px solid #ccc;
|
||||
order: none;
|
||||
}
|
||||
|
||||
.preview-card .headings .heading {
|
||||
opacity: 0.85;
|
||||
padding: 12px;
|
||||
padding: 10px;
|
||||
background-color: #242121;
|
||||
}
|
||||
|
||||
.preview-card .headings a {
|
||||
color: white;
|
||||
.list-item .headings .heading {
|
||||
padding: 20px 0 8px 20px;
|
||||
background: rgba(255, 255, 255, 0.9);
|
||||
display: block
|
||||
}
|
||||
|
||||
.grid .preview .headings a {
|
||||
color: black;
|
||||
.list-item .headings {
|
||||
margin-bottom: 0 !important
|
||||
}
|
||||
|
||||
.preview .headings a {
|
||||
color: rgb(115, 142, 242);
|
||||
}
|
||||
|
||||
/*
|
||||
.preview .title, .preview .title:not(:last-child) {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1024px) {
|
||||
.nav .nav-menu {
|
||||
background-color: #6C7ED2;
|
||||
}
|
||||
|
||||
.page {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#background {
|
||||
padding: 100px 0 50px 0;
|
||||
}
|
||||
|
||||
.container, .page .container {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/* fred fixes */
|
||||
.grid.list-emissions:not(.list-home) {display: flex !important;flex-wrap: wrap !important; gap: 20px 1rem;}
|
||||
|
||||
.grid.list-emissions:not(.list-home) > .list-item {width: calc(20% - 2rem) !important ;}
|
||||
|
||||
.grid.list-emissions:not(.list-home) > .list-item .preview-cover {max-width: 100% !important;
|
||||
display: block;
|
||||
width: 100% !important;
|
||||
min-width: auto;
|
||||
aspect-ratio: 1 / 1;
|
||||
height: fit-content;
|
||||
background-size: contain;
|
||||
background-position: center;
|
||||
background-color: white;
|
||||
margin-bottom: 0.5rem;
|
||||
.a-player-bar {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.grid.list-emissions:not(.list-home) .media-content {margin-top: 0;}
|
||||
|
||||
.grid.list-emissions:not(.list-home) > .list-item .media .media-content > br, .grid.listfive > .list-item .media .media-content .episode-date > br {display: none;}
|
||||
|
||||
.grid.list-emissions:not(.list-home) .list-item .subtitle {text-align: left !important;font-size: 0.8rem !important;}
|
||||
|
||||
|
||||
.grid.list-emissions:not(.list-home) .preview.active .heading:not(:empty) {
|
||||
color: #738EF2 !important;
|
||||
.header.preview-header,.page section.container, .page section.container > .title {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding-top: 0.6em;
|
||||
}
|
||||
|
||||
.grid.list-podcasts {display: flex !important;flex-wrap: wrap !important; gap: 20px 1rem;}
|
||||
|
||||
.grid.list-podcasts > .list-item {width: calc(50% - 2rem) !important ;}
|
||||
|
||||
.grid.list-podcasts > .list-item .preview-cover {max-width: 100% !important;
|
||||
display: block;
|
||||
width: 50% !important;
|
||||
min-width: auto;
|
||||
aspect-ratio: 1 / 1;
|
||||
height: fit-content;
|
||||
background-size: contain;
|
||||
background-position: center;
|
||||
background-color: white;
|
||||
.media {
|
||||
background: rgba(255, 255, 255, 0.9);
|
||||
}
|
||||
|
||||
.grid.list-podcasts .media-content {margin-top: 0;}
|
||||
|
||||
.grid.list-podcasts .media .media-left {width: 25% !important;}
|
||||
.grid.list-podcasts .media .media-content {width: 75%;}
|
||||
|
||||
.grid.list-podcasts > .list-item .media .media-content > br, .grid.list-emissions > .list-item .media .media-content .episode-date > br {display: none;}
|
||||
|
||||
.grid.list-podcasts .list-item .subtitle {text-align: left !important;font-size: 0.8rem !important;}
|
||||
|
||||
|
||||
.grid.list-podcasts .preview.active .heading:not(:empty) {
|
||||
color: #738EF2 !important;
|
||||
.button, a.button, button.button {
|
||||
border: #bbb 1px solid;
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
.withmargin {
|
||||
margin-bottom: 5px;
|
||||
margin-right: 5px;
|
||||
.list-item:nth-child(3n):not(.wide) .media, .list-item:nth-child(3n+1):not(.wide) .media {
|
||||
border: 1px solid var(--break-color) !important;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1224px) {
|
||||
.grid.list-emissions:not(.list-home) > .list-item {width: calc(33% - 2rem) !important;;}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 924px) {
|
||||
.grid.list-emissions:not(.list-home) > .list-item {width: calc(50% - 2rem) !important;}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1024px) {
|
||||
.grid.list-emissions > .list-item {width: 100% !important;}
|
||||
.program-list {flex-direction: column;}
|
||||
.grid.list-podcasts > .list-item {width: 100% !important ;}
|
||||
}
|
||||
|
||||
.list-item .subtitle:not(:empty) {
|
||||
min-width: auto !important;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 924px) {
|
||||
.a-player-bar-content {overflow: hidden;}
|
||||
.a-player-bar-content .title {
|
||||
display: inline-block;
|
||||
padding-right: 2em;
|
||||
padding-left: 100%;
|
||||
white-space: nowrap;
|
||||
animation: defilement-rtl 55s infinite linear;
|
||||
overflow: visible;}
|
||||
|
||||
@keyframes defilement-rtl {
|
||||
0% {
|
||||
transform: translate3d(0,0,0); /* position initiale à droite */
|
||||
}
|
||||
100% {
|
||||
transform: translate3d(-100%,0,0); /* position finale à gauche */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 540px) {
|
||||
.media {
|
||||
flex-direction: column;
|
||||
}
|
||||
.grid.list-podcasts .media .media-content {width:100%}
|
||||
|
||||
.grid.list-emissions:not(.list-home) > .list-item {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
|
||||
.list-item .media-content {height:auto;}
|
||||
|
@ -7,19 +7,8 @@
|
||||
<script src="{% static "radiocampus/backgroundLoad.js" %}"></script>
|
||||
{% endblock %}
|
||||
|
||||
{% block nav %}
|
||||
<div id="grandlogo" class="container"><a href="/"><img /></a></div>
|
||||
{{ block.super }}
|
||||
{% endblock %}
|
||||
|
||||
{% block header-container %}
|
||||
{% if not page.attach_to %}
|
||||
{{ block.super }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block header-cover %}
|
||||
{% if cover %}
|
||||
<img src="{{ cover }}" ref="cover" class="cover">
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
@ -1,42 +0,0 @@
|
||||
{% extends "aircox/basepage_list.html" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block filters %}
|
||||
{{ block.super }}
|
||||
<div class="field is-horizontal">
|
||||
<div class="field-label">
|
||||
<label class="label">{% translate "Podcasts" %}</label>
|
||||
</div>
|
||||
<div class="field-body">
|
||||
<div class="checkbox">
|
||||
<input type="checkbox" class="checkbox" name="podcast" value="True"
|
||||
{% if filterset_data.podcast %}checked{% endif %} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block list-container %}
|
||||
{% with list_class="list-podcasts" %}
|
||||
{{ block.super }}
|
||||
{% endwith %}
|
||||
{% endblock %}
|
||||
|
||||
{% block secondary-nav %}
|
||||
{% if not parent and categories %}
|
||||
<nav class="nav secondary">
|
||||
<div class="nav-menu nav-categories">
|
||||
{% for cat in categories %}
|
||||
<a class="nav-item{% if cat == category %} active{% endif %}"
|
||||
href="{% url request.resolver_match.url_name category_slug=cat.slug %}">
|
||||
{{ cat.title }}
|
||||
</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<a-switch class="button burger"
|
||||
el=".nav-categories" group="nav" icon="fas fa-tags"
|
||||
aria-label="{% translate "Categories" %}">
|
||||
</a-switch>
|
||||
</nav>
|
||||
{% endif %}
|
||||
{% endblock %}
|
@ -1,107 +0,0 @@
|
||||
{% extends "aircox/page_list.html" %}
|
||||
{% comment %}List of diffusions as a timetable{% endcomment %}
|
||||
{% load i18n aircox humanize %}
|
||||
|
||||
{% block subtitle %}{{ date|date:"l d F Y" }}{% endblock %}
|
||||
|
||||
{% block secondary-nav %}
|
||||
<nav class="nav secondary">
|
||||
<div class="nav-menu nav-categories">
|
||||
<a class="nav-item" id="recent-link"
|
||||
href="#" onclick="javascript:display('recentdisplay');">
|
||||
Derniers titres diffusés
|
||||
</a>
|
||||
<a class="nav-item active" id="home-link"
|
||||
href="#" onclick="javascript:display('homedisplay');">
|
||||
Aujourd'hui
|
||||
</a>
|
||||
</div>
|
||||
<a-switch class="button burger"
|
||||
el=".nav-categories" group="nav" icon="fas fa-tags"
|
||||
aria-label="{% translate "Categories" %}">
|
||||
</a-switch>
|
||||
</nav>
|
||||
|
||||
<script>
|
||||
function display(id) {
|
||||
|
||||
var h = document.getElementsByClassName('homedisplay');
|
||||
var r = document.getElementsByClassName('recentdisplay');
|
||||
|
||||
if (id == "homedisplay") {
|
||||
for(var i = 0; i < h.length; i++) { h[i].setAttribute('style', 'display:inline !important'); }
|
||||
for(var i = 0; i < r.length; i++) { r[i].setAttribute('style', 'display:none !important'); }
|
||||
document.getElementById('recent-link').classList.remove('active');
|
||||
document.getElementById('home-link').classList.add('active');
|
||||
} else {
|
||||
for(var i = 0; i < h.length; i++) { h[i].setAttribute('style', 'display:none !important'); }
|
||||
for(var i = 0; i < r.length; i++) { r[i].setAttribute('style', 'display:inline !important'); }
|
||||
document.getElementById('recent-link').classList.add('active');
|
||||
document.getElementById('home-link').classList.remove('active');
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block list-container %}
|
||||
<br />
|
||||
<div class="lagrille homedisplay">
|
||||
<section class="container" style="display:flex;justify-content:flex-end;min-height:600px">
|
||||
<div>
|
||||
<!-- <a href="{% url "timetable-list" date=date %}">{{ date|date:"l d F Y" }}</a> -->
|
||||
<section class="clear-both list grid radiocampus-grid" role="list">
|
||||
</section>
|
||||
{% with list_class="list-home" %}
|
||||
{{ block.super }}
|
||||
{% endwith %}
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<div class="recentdisplay" style="display:none">
|
||||
<section class="container" style="min-height:600px">
|
||||
<div>
|
||||
<!-- <a href="{% url "timetable-list" date=date %}">{{ date|date:"l d F Y" }}</a> -->
|
||||
<section class="clear-both list grid radiocampus-grid" role="list">
|
||||
</section>
|
||||
{% with list_class="list-home" %}
|
||||
{{ block.super }}
|
||||
{% endwith %}
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block list %}
|
||||
{% with object_list=object_list timetable=True %}
|
||||
{% with widget|default:"item" as widget %}
|
||||
|
||||
{% for object in object_list %}
|
||||
{% if object.episode %}
|
||||
<div class="homedisplay">
|
||||
{% page_widget widget object.episode diffusion=object timetable=True %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="preview list-item logs">
|
||||
<div class="media d-block content recentdisplay" style="display:none !important;">
|
||||
{% for obj in object %}
|
||||
{% include "aircox/widgets/track_item.html" with object=obj.track log=obj timetable=True %}
|
||||
<br />
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% endwith %}
|
||||
{% endwith %}
|
||||
{% endblock %}
|
@ -1,98 +0,0 @@
|
||||
{% extends "aircox/public.html" %}
|
||||
{% load static i18n humanize honeypot aircox %}
|
||||
{% comment %}
|
||||
Base template used to display a Page
|
||||
|
||||
Context:
|
||||
- page: page
|
||||
- parent: parent page
|
||||
- related_objects: list of object to display as related publications
|
||||
- related_url: url to the full list of related_objects
|
||||
{% endcomment %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{% if parent %}
|
||||
{% include "./widgets/breadcrumbs.html" with page=parent %}
|
||||
{% if page %}
|
||||
<a href="{% url page.list_url_name parent_slug=parent.slug %}">
|
||||
{{ page|verbose_name:True }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% elif page %}
|
||||
{% include "./widgets/breadcrumbs.html" with page=page no_title=True %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block title-container %}
|
||||
{{ block.super }}
|
||||
{% block page-actions %}
|
||||
{% include "aircox/widgets/page_actions.html" %}
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
{{ block.super }}
|
||||
|
||||
{% block episodes %}
|
||||
{% endblock %}
|
||||
|
||||
{% block related %}
|
||||
{% if related_objects %}
|
||||
<section class="container">
|
||||
{% with models=object|verbose_name:True %}
|
||||
<h2 class="title is-2">{% blocktranslate %}Related {{models}}{% endblocktranslate %}</h2>
|
||||
|
||||
{% include "./widgets/carousel.html" with objects=related_objects url_name=object.list_url_name url_category=object.category %}
|
||||
{% endwith %}
|
||||
</section>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block comments %}
|
||||
{% if comments %}
|
||||
<section class="container">
|
||||
<h2 class="title is-2">{% translate "Comments" %}</h2>
|
||||
|
||||
{% for object in comments %}
|
||||
{% page_widget "item" object %}
|
||||
{% endfor %}
|
||||
</section>
|
||||
{% endif %}
|
||||
|
||||
{% if comment_form %}
|
||||
<section class="container">
|
||||
<h2 class="title is-2">{% translate "Post a comment" %}</h2>
|
||||
<form method="POST">
|
||||
{% csrf_token %}
|
||||
{% render_honeypot_field "website" %}
|
||||
|
||||
<div class="field">
|
||||
<div class="control">
|
||||
{{ comment_form.content }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% for field in comment_form %}
|
||||
{% if field.name != "content" %}
|
||||
<div class="field is-horizontal">
|
||||
<label class="label">{{ field.label }}</label>
|
||||
<div class="control">{{ field }}</div>
|
||||
</div>
|
||||
{% if field.errors %}
|
||||
<p class="help is-danger">{{ field.errors }}</p>
|
||||
{% endif %}
|
||||
{% if field.help_text %}
|
||||
<p class="help">{{ field.help_text|safe }}</p>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
<div class="has-text-right">
|
||||
<button type="submit" class="button">{% translate "Post comment" %}</button>
|
||||
</div>
|
||||
</form>
|
||||
</section>
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
||||
{% endblock %}
|
@ -1,82 +0,0 @@
|
||||
{% extends "aircox/basepage_list.html" %}
|
||||
{% comment %}Display a list of Pages{% endcomment %}
|
||||
{% load i18n aircox %}
|
||||
|
||||
{% block secondary-nav %}
|
||||
{% if not parent and categories %}
|
||||
<nav class="nav secondary">
|
||||
<div class="nav-menu nav-categories">
|
||||
{% for cat in categories %}
|
||||
<a class="nav-item{% if cat == category %} active{% endif %}"
|
||||
href="{% url request.resolver_match.url_name category_slug=cat.slug %}">
|
||||
{{ cat.title }}
|
||||
</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<a-switch class="button burger"
|
||||
el=".nav-categories" group="nav" icon="fas fa-tags"
|
||||
aria-label="{% translate "Categories" %}">
|
||||
</a-switch>
|
||||
</nav>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block title %}
|
||||
{% if parent %}{{ parent.title }}
|
||||
{% else %}{{ block.super }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block header %}
|
||||
{% if page and not object %}
|
||||
{% with page as object %}
|
||||
{{ block.super }}
|
||||
{% endwith %}
|
||||
{% else %}
|
||||
{{ block.super }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{% if parent and model.list_url_name %}
|
||||
{% include "./widgets/breadcrumbs.html" with page=parent %}
|
||||
<a href="{% url model.list_url_name %}">{{ model|verbose_name:True }}</a>
|
||||
{% elif page and model.list_url_name %}
|
||||
<a href="{% url model.list_url_name %}">{{ page.title }}</a>
|
||||
{% if category %}
|
||||
<a href="{% url request.resolver_match.url_name category_slug=category.slug %}">
|
||||
{{ category.title }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<a href="{% url request.resolver_match.url_name %}">{{ model|verbose_name:True }}</a>
|
||||
{% if category %}
|
||||
<a href="{% url request.resolver_match.url_name category_slug=category.slug %}">
|
||||
{{ category.title }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content-container %}{% endblock %}
|
||||
|
||||
{% block list-pagination %}
|
||||
{% include "./widgets/page_pagination.html" %}
|
||||
{% endblock %}
|
||||
|
||||
{% block list-container %}
|
||||
<section class="container clear-both list grid {{ list_class|default:"" }} list-emissions" role="list">
|
||||
{% block list %}
|
||||
{% with has_headline=True %}
|
||||
{% for object in object_list %}
|
||||
{% block list_object %}
|
||||
{% page_widget item_widget|default:"program" object %}
|
||||
{% endblock %}
|
||||
{% empty %}
|
||||
{% blocktranslate %}There is nothing published here...{% endblocktranslate %}
|
||||
{% endfor %}
|
||||
{% endwith %}
|
||||
{% endblock %}
|
||||
</section>
|
||||
|
||||
{% endblock %}
|
@ -1,62 +0,0 @@
|
||||
{% extends "aircox/basepage_list.html" %}
|
||||
{% comment %}Display a list of Pages{% endcomment %}
|
||||
{% load i18n aircox %}
|
||||
|
||||
{% block secondary-nav %}
|
||||
{% if not parent and categories %}
|
||||
<nav class="nav secondary">
|
||||
<div class="nav-menu nav-categories">
|
||||
{% for cat in categories %}
|
||||
<a class="nav-item{% if cat == category %} active{% endif %}"
|
||||
href="{% url request.resolver_match.url_name category_slug=cat.slug %}">
|
||||
{{ cat.title }}
|
||||
</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<a-switch class="button burger"
|
||||
el=".nav-categories" group="nav" icon="fas fa-tags"
|
||||
aria-label="{% translate "Categories" %}">
|
||||
</a-switch>
|
||||
</nav>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block title %}
|
||||
{% if parent %}{{ parent.title }}
|
||||
{% else %}{{ block.super }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block header %}
|
||||
{% if page and not object %}
|
||||
{% with page as object %}
|
||||
{{ block.super }}
|
||||
{% endwith %}
|
||||
{% else %}
|
||||
{{ block.super }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{% if parent and model.list_url_name %}
|
||||
{% include "./widgets/breadcrumbs.html" with page=parent %}
|
||||
<a href="{% url model.list_url_name %}">{{ model|verbose_name:True }}</a>
|
||||
{% elif page.title == "Podcasts" and not category %}
|
||||
{% elif page and model.list_url_name %}
|
||||
<a href="{% url model.list_url_name %}">{{ page.title }}</a>
|
||||
{% if category %}
|
||||
<a href="{% url request.resolver_match.url_name category_slug=category.slug %}">
|
||||
{{ category.title }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<a href="{% url request.resolver_match.url_name %}">{{ model|verbose_name:True }}</a>
|
||||
{% if category %}
|
||||
<a href="{% url request.resolver_match.url_name category_slug=category.slug %}">
|
||||
{{ category.title }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content-container %}{% endblock %}
|
@ -1,61 +0,0 @@
|
||||
{% extends "aircox/page_detail.html" %}
|
||||
{% comment %}Detail page of a show{% endcomment %}
|
||||
{% load i18n aircox %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% with schedules=object.schedule_set.all %}
|
||||
{% if object.active and schedules %}
|
||||
<header class="schedules mt-3">
|
||||
{% for schedule in schedules %}
|
||||
<div class="schedule">
|
||||
<div class="heading">
|
||||
<span class="day">{{ schedule.get_frequency_display }}</span>
|
||||
{% with schedule.start|date:"H:i" as start %}
|
||||
{% with schedule.end|date:"H:i" as end %}
|
||||
<time datetime="{{ start }}">{{ start }}</time>
|
||||
—
|
||||
<time datetime="{{ end }}">{{ end }}</time>
|
||||
{% endwith %}
|
||||
{% endwith %}
|
||||
<small>
|
||||
{% if schedule.is_rerun %}
|
||||
{% with schedule.initial.date as date %}
|
||||
<span title="{% blocktranslate %}Rerun of {{ date }}{% endblocktranslate %}">
|
||||
({% translate "Rerun" %})
|
||||
</span>
|
||||
{% endwith %}
|
||||
{% endif %}
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</header>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
|
||||
{{ block.super }}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block episodes %}
|
||||
{% if episodes %}
|
||||
<section class="container">
|
||||
<h2 class="title is-2">{% translate "Last Episodes" %}</h2>
|
||||
{% include "./widgets/carousel.html" with objects=episodes url_name="episode-list" url_parent=object url_label=_("All episodes") %}
|
||||
</section>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
{{ block.super }}
|
||||
|
||||
{% if articles %}
|
||||
<section class="container">
|
||||
<h2 class="title is-2">{% translate "Last Articles" %}</h2>
|
||||
{% include "./widgets/carousel.html" with objects=articles url_name="article-list" url_parent=object url_label=_("All articles") %}
|
||||
</section>
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
@ -1,32 +0,0 @@
|
||||
{% extends "./base.html" %}
|
||||
{% load aircox %}
|
||||
|
||||
|
||||
{% comment %}
|
||||
Override is a trick here: it allows to change title at two different different
|
||||
places inside the page: inside `<title>` tag, and inside the page
|
||||
content.
|
||||
{% endcomment %}
|
||||
|
||||
{% block head-title %}
|
||||
{% block title %}
|
||||
{% if page and page.title %}{{ page.title }}{% endif %}
|
||||
{% endblock %}
|
||||
{% if page and page.title %}—{% endif %}
|
||||
{{ station.name }}
|
||||
{% endblock %}
|
||||
|
||||
{% block header %}{% if page %}{{ block.super }}{% endif %}{% endblock %}
|
||||
|
||||
{% block secondary-nav %}
|
||||
{% if '/pages/' in request.path %}
|
||||
<nav class="nav secondary">
|
||||
<div class="nav-menu nav-categories">
|
||||
{% nav_items "secondary" css_class="nav-item" active_class="active" as items %}
|
||||
{% for item, render in items %}
|
||||
{{ render }}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</nav>
|
||||
{% endif %}
|
||||
{% endblock %}
|
@ -1,95 +0,0 @@
|
||||
{% extends "aircox/basepage_list.html" %}
|
||||
{% comment %}List of diffusions as a timetable{% endcomment %}
|
||||
{% load i18n aircox humanize %}
|
||||
|
||||
{% block subtitle %}{{ date|date:"l d F Y" }}{% endblock %}
|
||||
|
||||
{% block secondary-nav %}
|
||||
<nav class="nav secondary">
|
||||
{% include "./widgets/dates_menu.html" with url_name=view.redirect_date_url %}
|
||||
</nav>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block breadcrumbs %}
|
||||
{% if page and model.list_url_name %}
|
||||
<a href="{% url model.list_url_name %}">{{ page.title }}</a>
|
||||
{% if category %}
|
||||
<a href="{% url request.resolver_match.url_name category_slug=category.slug %}">
|
||||
{{ category.title }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<a href="{% url "timetable-list" date=date %}">{{ date|date:"l d F Y" }}</a>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block list-container %}
|
||||
{% with list_class="grid" %}
|
||||
<section class="container clear-both list grid list-grille list-home list-emissions" role="list">
|
||||
<section class="container" style="display:flex;justify-content:flex-end;min-height:600px">
|
||||
<div class="fifty">
|
||||
{% block list %}
|
||||
{% with object_list=object_list timetable=True %}
|
||||
{% with widget|default:"item" as widget %}
|
||||
|
||||
{% for object in object_list %}
|
||||
{% if object.episode %}
|
||||
<div class="lagrille">
|
||||
{% page_widget widget object.episode diffusion=object timetable=True %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="preview list-item logs">
|
||||
<div class="media d-block content recentdisplay" style="display:none !important;">
|
||||
{% for obj in object %}
|
||||
{% include "aircox/widgets/track_item.html" with object=obj.track log=obj timetable=True %}
|
||||
<br />
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% endwith %}
|
||||
{% endwith %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
{% endwith %}
|
||||
{% endblock %}
|
||||
|
||||
|
||||
|
||||
{% block title %}
|
||||
{% if parent %}{{ parent.title }}
|
||||
{% else %}{{ block.super }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{% block header %}
|
||||
{% if page and not object %}
|
||||
{% with page as object %}
|
||||
{{ block.super }}
|
||||
{% endwith %}
|
||||
{% else %}
|
||||
{{ block.super }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{% block content-container %}{% endblock %}
|
||||
|
||||
|
||||
|
||||
{% block list-pagination %}
|
||||
{% include "./widgets/page_pagination.html" %}
|
||||
{% endblock %}
|
@ -1,71 +0,0 @@
|
||||
{% extends "./page.html" %}
|
||||
{% load i18n humanize aircox %}
|
||||
|
||||
{% block outer %}
|
||||
{% with diffusion.is_now as is_active %}
|
||||
{{ block.super }}
|
||||
{% endwith %}
|
||||
{% endblock %}
|
||||
|
||||
{% block subtitle %}
|
||||
{% if diffusion %}
|
||||
{% if timetable %}
|
||||
{{ diffusion.start|date:"H:i" }}
|
||||
—
|
||||
{{ diffusion.end|date:"H:i" }}
|
||||
{% else %}
|
||||
{{ diffusion.start|naturalday }},
|
||||
{{ diffusion.start|date:"H:i" }}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{{ block.super }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block actions-container %}
|
||||
{% if admin and diffusion %}
|
||||
<div class="flex-row">
|
||||
<div class="flex-grow-1">
|
||||
{% if diffusion.type == diffusion.TYPE_ON_AIR %}
|
||||
<span class="tag is-info">
|
||||
<span class="icon is-small">
|
||||
{% if diffusion.is_live %}
|
||||
<i class="fa fa-microphone"
|
||||
title="{% translate "Live diffusion" %}"></i>
|
||||
{% else %}
|
||||
<i class="fa fa-music"
|
||||
title="{% translate "Differed diffusion" %}"></i>
|
||||
{% endif %}
|
||||
</span>
|
||||
|
||||
{{ diffusion.get_type_display }}
|
||||
</span>
|
||||
{% elif diffusion.type == diffusion.TYPE_CANCEL %}
|
||||
<span class="tag is-danger">
|
||||
{{ diffusion.get_type_display }}</span>
|
||||
{% elif diffusion.type == diffusion.TYPE_UNCONFIRMED %}
|
||||
<span class="tag is-warning">
|
||||
{{ diffusion.get_type_display }}</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
{{ block.super }}
|
||||
</div>
|
||||
{% else %}
|
||||
{{ block.super }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block actions %}
|
||||
{{ block.super }}
|
||||
{% if object.episodesound_set.available.public.count %}
|
||||
<button type="button" class="button action" @click="player.playButtonClick($event)"
|
||||
data-sounds="{{ object.podcasts|json }}">
|
||||
<span class="icon is-small">
|
||||
<span class="fas fa-play" title="{% translate "Listen" %}"></span>
|
||||
</span>
|
||||
<!--<label>{% translate "Listen" %}</label> -->
|
||||
</button>
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
@ -1,48 +0,0 @@
|
||||
{% extends "./preview.html" %}
|
||||
{% load i18n aircox %}
|
||||
|
||||
{% block tag-class %}{{ block.super }} list-item is-fullwidth{% endblock %}
|
||||
|
||||
{% block headings %}
|
||||
{% endblock %}
|
||||
|
||||
{% block inner %}
|
||||
{% block headings-container %}{{ block.super }}{% endblock %}
|
||||
{% block content-container %}
|
||||
<div class="media">
|
||||
{% if object.cover and not no_cover %}
|
||||
<a href="{{ object.get_absolute_url }}"
|
||||
class="media-left preview-cover small"
|
||||
style="background-image: url({{ object.cover.url }})">
|
||||
</a>
|
||||
{% endif %}
|
||||
<div class="media-content flex-column">
|
||||
|
||||
{% if object|model_name == "Episode" %}
|
||||
<div class="episode-date">
|
||||
{% if object.status %}
|
||||
{{ object.pub_date|date:"d/m/Y" }}
|
||||
{% else %}
|
||||
{% trans "Draft" %}
|
||||
{% endif %}
|
||||
<br/>
|
||||
</div>
|
||||
{% endif %}
|
||||
<a href="{{ url|escape }}" class="heading title {% block title-class %}{% endblock %}">
|
||||
{% block title %}{{ title|default:"" }}{% endblock %}
|
||||
</a>
|
||||
<span class="category">{{ object.program.category }}</span>
|
||||
<span class="heading subtitle {% block subtitle-class %}{% endblock %}">
|
||||
{% block subtitle %}{{ subtitle|default:"" }}{% endblock %}
|
||||
</span>
|
||||
</br>
|
||||
|
||||
<section class="content flex-grow-1 item-section">
|
||||
{% block content %}{{ block.super }}{% endblock %}
|
||||
</section>
|
||||
{% block actions-container %}{{ block.super }}{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% endblock %}
|
@ -1,45 +0,0 @@
|
||||
{% comment %}
|
||||
Context:
|
||||
- is_paginated: if True, page is paginated
|
||||
- page_obj: page object from list view;
|
||||
{% endcomment %}
|
||||
{% load i18n aircox %}
|
||||
|
||||
{% if is_paginated %}
|
||||
<hr/>
|
||||
{% update_query request.GET.copy page=None as GET %}
|
||||
{% with GET.urlencode as GET %}
|
||||
<nav class="nav-urls is-centered" role="pagination" aria-label="{% translate "pagination" %}">
|
||||
<ul class="urls">
|
||||
{% if page_obj.has_previous %}
|
||||
{% comment %}Translators: Bottom of the list, "previous page"{% endcomment %}
|
||||
<a href="?{{ GET }}&page=1">« {% translate "first" %}</a>
|
||||
<a href="?{{ GET }}&page={{ page_obj.previous_page_number }}" class="left"
|
||||
title="{% translate "previous" %}"
|
||||
aria-label="{% translate "previous" %}">
|
||||
{% translate "previous" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
<span>
|
||||
{{ page_obj.number }} / {{ page_obj.paginator.num_pages }}
|
||||
</span>
|
||||
|
||||
{% if page_obj.has_next %}
|
||||
{% comment %}Translators: Bottom of the list, "nextpage"{% endcomment %}
|
||||
<a href="?{{ GET }}&page={{ page_obj.next_page_number }}" class="right"
|
||||
title="{% translate "next" %}"
|
||||
aria-label="{% translate "next" %}">
|
||||
{% translate "next" %}
|
||||
</a>
|
||||
<a href="?{{ GET }}&page={{ page_obj.paginator.num_pages }}" class="right"
|
||||
title="{% translate "last" %}"
|
||||
aria-label="{% translate "last" %}">
|
||||
{% translate "last" %} »
|
||||
</a>
|
||||
{% endif %}
|
||||
</ul>
|
||||
|
||||
</nav>
|
||||
{% endwith %}
|
||||
{% endif %}
|
@ -1,35 +0,0 @@
|
||||
{% extends widget_template %}
|
||||
{% load i18n aircox %}
|
||||
|
||||
|
||||
{% block outer %}
|
||||
{% with cover|default:object.cover_url as cover %}
|
||||
{% with url|default:object.get_absolute_url as url %}
|
||||
{{ block.super }}
|
||||
{% endwith %}
|
||||
{% endwith %}
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block title %}
|
||||
{% if title %}
|
||||
{{ block.super }}
|
||||
{% elif object %}
|
||||
{{ object.display_title }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block content %}
|
||||
{% if not content and object %}
|
||||
{% with object.display_headline as content %}
|
||||
{{ block.super }}
|
||||
{% endwith %}
|
||||
{% else %}
|
||||
{{ block.super }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block actions %}
|
||||
{{ block.super }}
|
||||
{% endblock %}
|
@ -1,71 +0,0 @@
|
||||
{% load i18n %}
|
||||
{% comment %}
|
||||
Content related context:
|
||||
- object: object to display
|
||||
- cover: cover
|
||||
- title: title
|
||||
- subtitle: subtitle
|
||||
- content: content to display
|
||||
|
||||
Components:
|
||||
- no_cover: don't show cover
|
||||
- no_content: don't show content
|
||||
|
||||
Styling related context:
|
||||
- is_active: add "active" css class
|
||||
- is_small: add "small" css class
|
||||
- is_tiny: add "tiny" css class
|
||||
- tag
|
||||
- tag_class: css class to set to main tag
|
||||
- tag_extra: extra tag attributes
|
||||
|
||||
{% endcomment %}
|
||||
{% load aircox %}
|
||||
|
||||
{% block outer %}
|
||||
<{{ tag|default:"article" }} id="{{ object|object_id }}" class="preview {% if not cover %}no-cover {% endif %}{% if is_active %}active {% endif %}{% if is_tiny %}tiny{% elif is_small %}small{% endif %}{% block tag-class %}{{ tag_class|default:"" }} {% endblock %}" {% block tag-extra %}{% endblock %}>
|
||||
{% block inner %}
|
||||
{% block headings-container %}
|
||||
<header class="headings{% block headings-class %}{% endblock %}"{% block headings-tag-extra %}{% endblock %}>
|
||||
{% block headings %}
|
||||
{% block title-container %}
|
||||
<a href="{{ url|escape }}" class="heading title {% block title-class %}{% endblock %}"{% if title %} title="{{ title|escape }}"{% endif %}>
|
||||
{% block title %}{{ title|default:"" }}{% endblock %}
|
||||
</a>
|
||||
{% endblock %}
|
||||
{% block subtitle-container %}
|
||||
<span class="heading subtitle {% block subtitle-class %}{% endblock %}">
|
||||
{% block subtitle %}{{ subtitle|default:"" }}{% endblock %}
|
||||
</span>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
</header>
|
||||
{% endblock %}
|
||||
|
||||
{% block content-container %}
|
||||
<section class="content headings-container">
|
||||
{% block content %}
|
||||
{% if content and not no_content %}
|
||||
{% autoescape off %}
|
||||
{{ content|striptags|linebreaks }}
|
||||
{% endautoescape %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
{% spaceless %}
|
||||
<div class="actions">
|
||||
{% block actions %}
|
||||
{% if admin and object.edit_url_name %}
|
||||
<a href="{% url object.edit_url_name pk=object.pk %}" target="_self" class="button secondary withmargin">{% translate "Edit" %}</a>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% endspaceless %}
|
||||
|
||||
{% endblock %}
|
||||
</section>
|
||||
{% endblock %}
|
||||
|
||||
{% endblock %}
|
||||
</{{ tag|default:"article" }}>
|
||||
{% endblock %}
|
@ -1,42 +0,0 @@
|
||||
{% extends "./preview.html" %}
|
||||
{% load i18n aircox %}
|
||||
|
||||
{% block tag-class %}{{ block.super }} list-item is-fullwidth{% endblock %}
|
||||
|
||||
{% block headings %}
|
||||
{% endblock %}
|
||||
|
||||
{% block inner %}
|
||||
{% block headings-container %}{{ block.super }}{% endblock %}
|
||||
{% block content-container %}
|
||||
<div class="media program-list">
|
||||
{% if object.cover and not no_cover %}
|
||||
<a href="{{ object.get_absolute_url }}"
|
||||
class="media-left preview-cover small"
|
||||
style="background-image: url({{ object.cover.url }})">
|
||||
</a>
|
||||
{% endif %}
|
||||
<div class="media-content flex-column">
|
||||
|
||||
{% if object|model_name == "Episode" %}
|
||||
<div class="episode-date">
|
||||
{{ object.pub_date|date:"d/m/Y" }}<Br/>
|
||||
</div>
|
||||
{% endif %}
|
||||
<a href="{{ url|escape }}" class="heading title {% block title-class %}{% endblock %}">
|
||||
{% block title %}{{ title|default:"" }}{% endblock %}
|
||||
</a>
|
||||
<span class="heading subtitle {% block subtitle-class %}{% endblock %}">
|
||||
{% block subtitle %}{{ subtitle|default:"" }}{% endblock %}
|
||||
</span>
|
||||
</br>
|
||||
|
||||
<section class="content flex-grow-1">
|
||||
{% block content %}{{ block.super }}{% endblock %}
|
||||
</section>
|
||||
{% block actions-container %}{{ block.super }}{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% endblock %}
|
@ -1,47 +0,0 @@
|
||||
from django.conf import settings
|
||||
from django.conf.urls.static import static
|
||||
from django.contrib import admin
|
||||
from django.urls import include, path
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from aircox.urls import urls
|
||||
import aircox_streamer.urls
|
||||
|
||||
from radiocampus.views import HomeTimeTableView, TimeTableView
|
||||
from aircox.views.dashboard import DashboardView
|
||||
|
||||
urlpatterns = [
|
||||
path("streamer/", include((aircox_streamer.urls.urls, "aircox_streamer"), namespace="streamer")),
|
||||
path("admin/", admin.site.urls),
|
||||
path("accounts/", include("django.contrib.auth.urls")),
|
||||
path("filer/", include("filer.urls")),
|
||||
path("gestion/", DashboardView.as_view(), name="dashboard"),
|
||||
]
|
||||
|
||||
for url in urls:
|
||||
if "name" in url.__dict__.keys():
|
||||
if url.name == "home" or url.name == "timetable-list":
|
||||
continue
|
||||
urlpatterns.append(url)
|
||||
|
||||
|
||||
urlpatterns.append(path("", HomeTimeTableView.as_view(), name="home"))
|
||||
|
||||
urlpatterns.extend(
|
||||
[
|
||||
path(_("timetable/"), TimeTableView.as_view(), name="timetable-list"),
|
||||
path(
|
||||
_("timetable/<date:date>/"),
|
||||
TimeTableView.as_view(),
|
||||
name="timetable-list",
|
||||
),
|
||||
]
|
||||
)
|
||||
|
||||
if settings.DEBUG:
|
||||
from debug_toolbar.toolbar import debug_toolbar_urls
|
||||
|
||||
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) + static(
|
||||
settings.MEDIA_URL, document_root=settings.MEDIA_ROOT
|
||||
)
|
||||
urlpatterns += debug_toolbar_urls()
|
@ -1,51 +0,0 @@
|
||||
import datetime
|
||||
|
||||
|
||||
from django.urls import reverse
|
||||
|
||||
from aircox.models import Diffusion, Log, StaticPage
|
||||
from aircox.views.diffusion import TimeTableView as AircoxTimeTableView
|
||||
from aircox.views.diffusion import BaseDiffusionListView
|
||||
from aircox.views.mixins import GetDateMixin
|
||||
from aircox.views.page import attach
|
||||
|
||||
__all__ = ("HomeTimeTableView", "TimeTableView")
|
||||
|
||||
|
||||
class HomeTimeTableView(AircoxTimeTableView):
|
||||
template_name = "aircox/home.html"
|
||||
|
||||
|
||||
@attach
|
||||
class TimeTableView(GetDateMixin, BaseDiffusionListView):
|
||||
model = Diffusion
|
||||
redirect_date_url = "timetable-list"
|
||||
attach_to_value = StaticPage.Target.TIMETABLE
|
||||
template_name = "aircox/timetable_list.html"
|
||||
|
||||
def get_date(self, param="date"):
|
||||
date = super().get_date(param)
|
||||
return date if date is not None else datetime.date.today()
|
||||
|
||||
def get_logs(self, date):
|
||||
return Log.objects.on_air().date(self.date).filter(track__isnull=False)
|
||||
|
||||
def get_queryset(self):
|
||||
return super().get_queryset().date(self.date)
|
||||
|
||||
@classmethod
|
||||
def get_secondary_nav(cls):
|
||||
date = datetime.date.today()
|
||||
start = date - datetime.timedelta(days=3)
|
||||
dates = [start + datetime.timedelta(days=i) for i in range(0, 7)]
|
||||
return tuple((date.strftime("%A %d"), reverse("timetable-list", kwargs={"date": date})) for date in dates)
|
||||
|
||||
def get_context_data(self, object_list=None, **kwargs):
|
||||
start = self.date - datetime.timedelta(days=3)
|
||||
dates = [start + datetime.timedelta(days=i) for i in range(0, 7)]
|
||||
|
||||
if object_list is None:
|
||||
logs = self.get_logs(self.date)
|
||||
object_list = Log.merge_diffusions(logs, self.object_list, group_logs=True)
|
||||
object_list = list(reversed(object_list))
|
||||
return super().get_context_data(date=self.date, dates=dates, object_list=object_list, **kwargs)
|