diff --git a/aircox/locale/fr/LC_MESSAGES/django.mo b/aircox/locale/fr/LC_MESSAGES/django.mo index 61c4730..843a96c 100644 Binary files a/aircox/locale/fr/LC_MESSAGES/django.mo and b/aircox/locale/fr/LC_MESSAGES/django.mo differ diff --git a/aircox/locale/fr/LC_MESSAGES/django.po b/aircox/locale/fr/LC_MESSAGES/django.po index b5e1f94..d8556f7 100644 --- a/aircox/locale/fr/LC_MESSAGES/django.po +++ b/aircox/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Aircox 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-01-16 13:25+0000\n" +"POT-Creation-Date: 2024-02-01 18:22+0000\n" "PO-Revision-Date: 2016-10-10 16:00+02\n" "Last-Translator: Aarys\n" "Language-Team: Aircox's translators team\n" @@ -19,7 +19,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: aircox/admin/diffusion.py:26 aircox/models/diffusion.py:122 -#: aircox/models/log.py:75 +#: aircox/models/log.py:76 msgid "start" msgstr "début" @@ -40,7 +40,7 @@ msgstr "Depuis" msgid "Until" msgstr "Jusque" -#: aircox/admin/filters.py:28 aircox/models/page.py:260 +#: aircox/admin/filters.py:28 aircox/models/page.py:263 #: aircox/tests/admin/test_filters.py:53 msgid "None" msgstr "Aucun" @@ -77,7 +77,7 @@ msgstr "Audio" msgid "Program / Episode" msgstr "Émission / Épisode" -#: aircox/admin/sound.py:135 aircox/templates/aircox/episode_detail.html:30 +#: aircox/admin/sound.py:135 aircox/templates/aircox/episode_detail.html:29 msgid "Playlist" msgstr "Playlist" @@ -115,7 +115,7 @@ msgstr "Article" msgid "Articles" msgstr "Articles" -#: aircox/models/diffusion.py:100 aircox/models/log.py:77 +#: aircox/models/diffusion.py:100 aircox/models/log.py:78 msgid "on air" msgstr "à l'antenne" @@ -123,7 +123,7 @@ msgstr "à l'antenne" msgid "not confirmed" msgstr "non confirmé" -#: aircox/models/diffusion.py:102 aircox/models/log.py:76 +#: aircox/models/diffusion.py:102 aircox/models/log.py:77 msgid "cancelled" msgstr "annulé" @@ -136,12 +136,12 @@ msgstr "épisode" msgid "schedule" msgstr "horaire" -#: aircox/models/diffusion.py:118 aircox/models/log.py:87 -#: aircox/models/sound.py:113 aircox/models/station.py:156 +#: aircox/models/diffusion.py:118 aircox/models/log.py:88 +#: aircox/models/sound.py:113 aircox/models/station.py:160 msgid "type" msgstr "type" -#: aircox/models/diffusion.py:133 aircox/models/log.py:126 +#: aircox/models/diffusion.py:133 aircox/models/log.py:127 msgid "Diffusion" msgstr "Date de diffusion" @@ -165,57 +165,57 @@ msgstr "Épisode" msgid "Episodes" msgstr "Épisodes" -#: aircox/models/log.py:74 +#: aircox/models/log.py:75 msgid "stop" msgstr "stop" -#: aircox/models/log.py:78 aircox/models/sound.py:90 +#: aircox/models/log.py:79 aircox/models/sound.py:90 msgid "other" msgstr "autre" -#: aircox/models/log.py:84 aircox/models/page.py:320 -#: aircox/models/program.py:50 aircox/models/station.py:154 +#: aircox/models/log.py:85 aircox/models/page.py:323 +#: aircox/models/program.py:50 aircox/models/station.py:158 msgid "station" msgstr "station" -#: aircox/models/log.py:85 +#: aircox/models/log.py:86 msgid "related station" msgstr "station relative" -#: aircox/models/log.py:88 aircox/models/schedule.py:48 +#: aircox/models/log.py:89 aircox/models/schedule.py:48 msgid "date" msgstr "date" -#: aircox/models/log.py:95 +#: aircox/models/log.py:96 msgid "source" msgstr "source" -#: aircox/models/log.py:96 +#: aircox/models/log.py:97 msgid "identifier of the source related to this log" msgstr "identifiant de la source relative à ce log" -#: aircox/models/log.py:102 +#: aircox/models/log.py:103 msgid "comment" msgstr "commentaire" -#: aircox/models/log.py:110 aircox/models/sound.py:163 +#: aircox/models/log.py:111 aircox/models/sound.py:163 msgid "Sound" msgstr "Son" -#: aircox/models/log.py:118 aircox/models/sound.py:294 +#: aircox/models/log.py:119 aircox/models/sound.py:294 #: aircox/templates/admin/aircox/statistics.html:24 msgid "Track" msgstr "Morceau" -#: aircox/models/log.py:150 +#: aircox/models/log.py:151 msgid "Log" msgstr "Log" -#: aircox/models/log.py:151 +#: aircox/models/log.py:152 msgid "Logs" msgstr "Logs" -#: aircox/models/page.py:43 aircox/models/page.py:323 +#: aircox/models/page.py:43 aircox/models/page.py:326 #: aircox/models/sound.py:277 msgid "title" msgstr "titre" @@ -253,125 +253,117 @@ msgstr "statut" msgid "cover" msgstr "couverture" -#: aircox/models/page.py:111 aircox/models/page.py:300 +#: aircox/models/page.py:111 aircox/models/page.py:303 msgid "content" msgstr "contenu" -#: aircox/models/page.py:205 +#: aircox/models/page.py:208 msgid "category" msgstr "catégorie" -#: aircox/models/page.py:210 +#: aircox/models/page.py:213 msgid "publication date" msgstr "date de publication" -#: aircox/models/page.py:212 +#: aircox/models/page.py:215 msgid "featured" msgstr "en avant" -#: aircox/models/page.py:216 +#: aircox/models/page.py:219 msgid "allow comments" msgstr "autoriser les commentaires" -#: aircox/models/page.py:240 +#: aircox/models/page.py:243 msgid "Publication" msgstr "Publication" -#: aircox/models/page.py:241 +#: aircox/models/page.py:244 msgid "Publications" msgstr "Publications" -#: aircox/models/page.py:261 -#, fuzzy -#| msgid "Home page" +#: aircox/models/page.py:264 msgid "Home Page" msgstr "Page d'accueil" -#: aircox/models/page.py:262 -#, fuzzy -#| msgid "Timestamp" +#: aircox/models/page.py:265 msgid "Timetable" msgstr "Temps" -#: aircox/models/page.py:263 +#: aircox/models/page.py:266 msgid "Programs list" msgstr "Liste des émissions" -#: aircox/models/page.py:264 +#: aircox/models/page.py:267 msgid "Episodes list" msgstr "Liste des épisodes" -#: aircox/models/page.py:265 +#: aircox/models/page.py:268 msgid "Articles list" msgstr "Liste des articles" -#: aircox/models/page.py:266 -#, fuzzy -#| msgid "Publications" +#: aircox/models/page.py:269 msgid "Publications list" msgstr "Publications" -#: aircox/models/page.py:267 -#, fuzzy -#| msgid "Podcasts" +#: aircox/models/page.py:270 msgid "Podcasts list" msgstr "Podcasts" -#: aircox/models/page.py:270 +#: aircox/models/page.py:273 msgid "attach to" msgstr "attacher à" -#: aircox/models/page.py:275 +#: aircox/models/page.py:278 msgid "display this page content to related element" msgstr "Afficher le contenu de cette page pour l'élément sélectionné" -#: aircox/models/page.py:293 +#: aircox/models/page.py:296 msgid "related page" msgstr "page liée" -#: aircox/models/page.py:297 +#: aircox/models/page.py:300 msgid "nickname" msgstr "pseudo" -#: aircox/models/page.py:298 +#: aircox/models/page.py:301 msgid "email" msgstr "email" -#: aircox/models/page.py:313 +#: aircox/models/page.py:316 msgid "Comment" msgstr "Commentaire" -#: aircox/models/page.py:314 aircox/templates/aircox/page_detail.html:59 +#: aircox/models/page.py:317 aircox/templates/aircox/page_detail.html:60 msgid "Comments" msgstr "Commentaires" -#: aircox/models/page.py:321 +#: aircox/models/page.py:324 msgid "menu" msgstr "menu" -#: aircox/models/page.py:322 aircox/models/sound.py:115 +#: aircox/models/page.py:325 aircox/models/sound.py:115 #: aircox/models/sound.py:267 msgid "order" msgstr "ordre" -#: aircox/models/page.py:324 +#: aircox/models/page.py:327 msgid "url" msgstr "url" -#: aircox/models/page.py:329 +#: aircox/models/page.py:332 msgid "page" msgstr "page" -#: aircox/models/page.py:335 +#: aircox/models/page.py:338 msgid "Menu item" msgstr "Élément du menu" -#: aircox/models/page.py:336 +#: aircox/models/page.py:339 msgid "Menu items" msgstr "Éléments de menu" #: aircox/models/program.py:52 aircox/models/station.py:48 -#: aircox/models/station.py:157 +#: aircox/models/station.py:161 msgid "active" msgstr "actif" @@ -533,7 +525,7 @@ msgstr "émission apparentée à celui-ci" msgid "position in the playlist" msgstr "position dans la playlist" -#: aircox/models/sound.py:125 aircox/models/station.py:151 +#: aircox/models/sound.py:125 aircox/models/station.py:155 msgid "file" msgstr "fichier" @@ -666,27 +658,35 @@ msgstr "" msgid "Default pages' cover" msgstr "Couverture par défault des pages." -#: aircox/models/station.py:133 +#: aircox/models/station.py:80 +msgid "Music stream's title" +msgstr "Titre du flux musical" + +#: aircox/models/station.py:81 +msgid "Music stream" +msgstr "Flux musical" + +#: aircox/models/station.py:137 msgid "input" msgstr "entrée" -#: aircox/models/station.py:134 +#: aircox/models/station.py:138 msgid "output" msgstr "sortie" -#: aircox/models/station.py:155 +#: aircox/models/station.py:159 msgid "direction" msgstr "direction" -#: aircox/models/station.py:157 +#: aircox/models/station.py:161 msgid "this port is active" msgstr "ce port est actif" -#: aircox/models/station.py:159 +#: aircox/models/station.py:163 msgid "port settings" msgstr "paramètres du port" -#: aircox/models/station.py:161 +#: aircox/models/station.py:165 msgid "" "list of comma separated params available; this is put in the output config " "file as raw code; plugin related" @@ -757,7 +757,7 @@ msgid "Total" msgstr "Total" #: aircox/templates/admin/base.html:72 aircox/templates/admin/index.html:12 -#: aircox/templates/aircox/home.html:48 +#: aircox/templates/aircox/home.html:51 msgid "Today" msgstr "Aujourd'hui" @@ -817,24 +817,9 @@ msgstr "Dernières publications" msgid "Administration" msgstr "Administration" -#. Translators: in page detail sidebar -#: aircox/templates/aircox/article_detail.html:12 -msgid "Latest news" -msgstr "Dernières nouvelles" - -#: aircox/templates/aircox/article_detail.html:23 -msgid "Show all news" -msgstr "Afficher toutes les nouvelles" - -#: aircox/templates/aircox/article_detail.html:24 -msgid "More news" -msgstr "Plus de nouvelles" - #: aircox/templates/aircox/base.html:61 -#, fuzzy -#| msgid "menu" msgid "Main menu" -msgstr "menu" +msgstr "Menu principal" #: aircox/templates/aircox/base.html:71 msgid "Admin" @@ -853,8 +838,8 @@ msgstr "pagination" msgid "Previous" msgstr "Précédent" -#: aircox/templates/aircox/basepage_list.html:53 -#: aircox/templates/aircox/basepage_list.html:54 +#: aircox/templates/aircox/basepage_list.html:57 +#: aircox/templates/aircox/basepage_list.html:58 msgid "Next" msgstr "Prochain" @@ -863,17 +848,17 @@ msgstr "Prochain" msgid "This week on %(station)s" msgstr "Cette semaine sur %(station)s" -#: aircox/templates/aircox/episode_detail.html:17 +#: aircox/templates/aircox/episode_detail.html:16 #: aircox/templates/aircox/episode_list.html:8 msgid "Podcasts" msgstr "Podcasts" -#: aircox/templates/aircox/episode_detail.html:35 +#: aircox/templates/aircox/episode_detail.html:34 #: aircox/templatetags/aircox_admin.py:48 msgid "Artist" msgstr "Artiste" -#: aircox/templates/aircox/episode_detail.html:36 +#: aircox/templates/aircox/episode_detail.html:35 #: aircox/templatetags/aircox_admin.py:50 msgid "Title" msgstr "Titre" @@ -915,35 +900,30 @@ msgstr "Si vous êtes un visiteur ou visiteuse, contactez votre radio favorite" msgid "Today on %(station)s" msgstr "Aujourd'hui sur %(station)s" -#: aircox/templates/aircox/home.html:40 +#: aircox/templates/aircox/home.html:42 msgid "It just happened" msgstr "Ça vient juste d'arriver" -#: aircox/templates/aircox/home.html:47 +#: aircox/templates/aircox/home.html:50 msgid "Show all program's for today" msgstr "Tous les articles de l'émission" -#: aircox/templates/aircox/home.html:57 +#: aircox/templates/aircox/home.html:60 msgid "Last podcasts" msgstr "Derniers Podcasts" -#: aircox/templates/aircox/home.html:58 +#: aircox/templates/aircox/home.html:61 msgid "All podcasts" msgstr "Tous les podcasts" -#: aircox/templates/aircox/home.html:64 +#: aircox/templates/aircox/home.html:67 msgid "Last publications" msgstr "Dernières publications" -#: aircox/templates/aircox/home.html:65 +#: aircox/templates/aircox/home.html:68 msgid "All publications" msgstr "Toutes les publications" -#: aircox/templates/aircox/log_list.html:9 -#, python-format -msgid "That happened on %(station)s" -msgstr "C'est passé sur %(station)s" - #: aircox/templates/aircox/page_detail.html:21 msgid "Edit" msgstr "Éditer" @@ -953,11 +933,11 @@ msgstr "Éditer" msgid "Related %(models)s" msgstr "%(models)s connexes" -#: aircox/templates/aircox/page_detail.html:71 +#: aircox/templates/aircox/page_detail.html:72 msgid "Post a comment" msgstr "Poster un commentaire" -#: aircox/templates/aircox/page_detail.html:98 +#: aircox/templates/aircox/page_detail.html:99 msgid "Post comment" msgstr "Commenter" @@ -971,24 +951,18 @@ msgid "Rerun" msgstr "Rediffusion" #: aircox/templates/aircox/program_detail.html:41 -#, fuzzy -#| msgid "Episodes" msgid "Last Episodes" -msgstr "Épisodes" +msgstr "Derniers Épisodes" #: aircox/templates/aircox/program_detail.html:42 msgid "All episodes" msgstr "Tous les épisodes" #: aircox/templates/aircox/program_detail.html:49 -#, fuzzy -#| msgid "Articles" msgid "Last Articles" msgstr "Derniers articles" #: aircox/templates/aircox/program_detail.html:50 -#, fuzzy -#| msgid "Articles" msgid "All articles" msgstr "Tous les articles" @@ -1019,8 +993,6 @@ msgid "Dates" msgstr "Dates" #: aircox/templates/aircox/widgets/dates_menu.html:33 -#, fuzzy -#| msgid "pick a date" msgid "Pick a date" msgstr "Choisir une date" @@ -1036,6 +1008,10 @@ msgstr "Diffusion différée" msgid "Listen" msgstr "Écouter" +#: aircox/templates/aircox/widgets/page.html:40 +msgid "Show" +msgstr "Voir" + #: aircox/templates/aircox/widgets/page_list.html:20 msgid "Show all publications" msgstr "Afficher toutes les publications" @@ -1060,11 +1036,11 @@ msgstr "Lire ou suspendre l'audio" msgid "Track currently on air" msgstr "Morceau en ce moment sur les ondes" -#: aircox/templates/aircox/widgets/player.html:42 +#: aircox/templates/aircox/widgets/player.html:44 msgid "Diffusion currently on air" msgstr "Épisode en ce moment sur les ondes" -#: aircox/templates/aircox/widgets/player.html:46 +#: aircox/templates/aircox/widgets/player.html:48 msgid "Currently playing" msgstr "En ce moment" @@ -1101,104 +1077,115 @@ msgid "Timestamp" msgstr "Temps" #: aircox/urls.py:44 -msgid "articles/" -msgstr "articles/" - -#: aircox/urls.py:49 -msgid "articles/c//" -msgstr "articles//" - -#: aircox/urls.py:52 msgid "articles//" msgstr "articles//" -#: aircox/urls.py:57 -msgid "programs/episodes/" -msgstr "emissions/episodes/" +#: aircox/urls.py:49 +msgid "articles/" +msgstr "articles/" -#: aircox/urls.py:58 -msgid "programs/episodes/c//" -msgstr "emissions/episodes/c//" +#: aircox/urls.py:54 +msgid "articles/c//" +msgstr "articles//" -#: aircox/urls.py:60 -msgid "programs/episodes//" -msgstr "emissions/episodes//" - -#: aircox/urls.py:64 -msgid "podcasts/" -msgstr "podcasts/" - -#: aircox/urls.py:65 -msgid "podcasts/c//" -msgstr "podcasts/c//" - -#: aircox/urls.py:68 +#: aircox/urls.py:59 msgid "timetable/" msgstr "grille/" -#: aircox/urls.py:70 +#: aircox/urls.py:61 msgid "timetable//" msgstr "grille//" -#: aircox/urls.py:76 +#: aircox/urls.py:67 msgid "publications/" msgstr "publications/" -#: aircox/urls.py:81 -#, fuzzy -#| msgid "publications/c//" +#: aircox/urls.py:72 msgid "publications/c/" msgstr "publications/c//" -#: aircox/urls.py:86 -msgid "pages/" -msgstr "pages/" - -#: aircox/urls.py:94 +#: aircox/urls.py:77 msgid "pages//" msgstr "pages//" -#: aircox/urls.py:102 +#: aircox/urls.py:85 +msgid "pages/" +msgstr "pages/" + +#: aircox/urls.py:93 msgid "programs/" msgstr "emissions/" -#: aircox/urls.py:103 +#: aircox/urls.py:94 msgid "programs/c//" msgstr "emissions/c//" -#: aircox/urls.py:105 -msgid "programs//" -msgstr "emissions//" +#: aircox/urls.py:96 +msgid "programs/" +msgstr "emissions/" -#: aircox/urls.py:109 -msgid "programs//articles/" -msgstr "emissions//articles/" +#: aircox/urls.py:100 +msgid "programs//articles" +msgstr "emissions//articles" + +#: aircox/urls.py:101 +msgid "programs//podcasts" +msgstr "emissions//podcasts" + +#: aircox/urls.py:102 +msgid "programs//episodes" +msgstr "emissions//episodes" + +#: aircox/urls.py:103 +msgid "programs//diffusions" +msgstr "emissions//diffusions" + +#: aircox/urls.py:105 +msgid "programs//publications" +msgstr "emissions//publications" #: aircox/urls.py:110 -msgid "programs//podcasts/" -msgstr "emissions//episodes/" +msgid "programs/episodes/" +msgstr "emissions/episodes/" #: aircox/urls.py:111 -msgid "programs//episodes/" -msgstr "emissions//episodes/" +msgid "programs/episodes/c/" +msgstr "emissions/episodes/c/" -#: aircox/urls.py:112 -msgid "programs//diffusions/" -msgstr "emissions//diffusions/" +#: aircox/urls.py:113 +msgid "programs/episodes/" +msgstr "emissions/episodes/" -#: aircox/urls.py:119 -msgid "programs//publications" -msgstr "emissions//publications/" +#: aircox/urls.py:117 +msgid "podcasts/" +msgstr "podcasts/" -#: aircox/views/page.py:69 +#: aircox/urls.py:118 +msgid "podcasts/c//" +msgstr "podcasts/c//" + +#: aircox/views/page.py:75 #, python-brace-format msgid "{model}" msgstr "{model}" -#: aircox/views/page.py:192 +#: aircox/views/page.py:180 msgid "comments are not allowed" msgstr "les commentaires ne sont pas autorisés" +#~ msgid "Latest news" +#~ msgstr "Dernières nouvelles" + +#~ msgid "Show all news" +#~ msgstr "Afficher toutes les nouvelles" + +#~ msgid "More news" +#~ msgstr "Plus de nouvelles" + +#, python-format +#~ msgid "That happened on %(station)s" +#~ msgstr "C'est passé sur %(station)s" + #~ msgid "Diffusions page" #~ msgstr "Grille horaire" diff --git a/aircox/migrations/0019_station_program_streams_title_and_more.py b/aircox/migrations/0019_station_program_streams_title_and_more.py new file mode 100644 index 0000000..20886b4 --- /dev/null +++ b/aircox/migrations/0019_station_program_streams_title_and_more.py @@ -0,0 +1,42 @@ +# Generated by Django 4.2.1 on 2024-02-01 18:12 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("aircox", "0018_alter_staticpage_attach_to"), + ] + + operations = [ + migrations.AddField( + model_name="station", + name="music_stream_title", + field=models.CharField( + default="Music stream", + max_length=64, + verbose_name="Music stream's title", + ), + ), + migrations.AlterField( + model_name="staticpage", + name="attach_to", + field=models.CharField( + blank=True, + choices=[ + ("", "None"), + ("home", "Home Page"), + ("timetable-list", "Timetable"), + ("program-list", "Programs list"), + ("episode-list", "Episodes list"), + ("article-list", "Articles list"), + ("page-list", "Publications list"), + ("podcast-list", "Podcasts list"), + ], + help_text="display this page content to related element", + max_length=32, + null=True, + verbose_name="attach to", + ), + ), + ] diff --git a/aircox/models/station.py b/aircox/models/station.py index da31d40..41921fb 100644 --- a/aircox/models/station.py +++ b/aircox/models/station.py @@ -67,7 +67,7 @@ class Station(models.Model): max_length=2048, null=True, blank=True, - help_text=_("Audio streams urls used by station's player. One url " "a line."), + help_text=_("Audio streams urls used by station's player. One url a line."), ) default_cover = FilerImageField( on_delete=models.SET_NULL, @@ -76,6 +76,11 @@ class Station(models.Model): blank=True, related_name="+", ) + music_stream_title = models.CharField( + _("Music stream's title"), + max_length=64, + default=_("Music stream"), + ) objects = StationQuerySet.as_manager() diff --git a/aircox/static/aircox/css/admin.css b/aircox/static/aircox/css/admin.css index 2e1801c..c9d9a86 100644 --- a/aircox/static/aircox/css/admin.css +++ b/aircox/static/aircox/css/admin.css @@ -170,13 +170,14 @@ } .preview-cover { - background-color: var(--preview-bg); + background: var(--preview-bg); background-size: cover; background-repeat: no-repeat; height: var(--cover-h); max-width: calc(var(--cover-w) * 1.5); min-width: var(--cover-w); overflow: hidden; + border: 1px #c4c4c4 solid; } .preview-cover img { height: var(--cover-h); @@ -240,24 +241,20 @@ text-align: right; min-width: 9rem; } -.list-item .media { - flex-grow: 1; -} .list-item .media-content { - display: flex; - flex-direction: column; height: 100%; margin-bottom: unset; } -.list-item .media-content .content { - flex-grow: 1; -} .list-item:not(.no-cover) .list-item .media-content { min-height: var(--preview-cover-small-size); } .list-item .actions { text-align: right; } +.list-item:not(.wide) .media { + padding: 0.6rem; + border: 1px solid var(--break-color) !important; +} @media screen and (max-width: 400px) { .list-item .headings { @@ -313,7 +310,6 @@ } .preview-card .card-content figure { box-shadow: 0em 0em 1em rgba(0, 0, 0, 0.2); - border: 1px #c4c4c4 solid; height: var(--cover-h); width: var(--cover-w); } diff --git a/aircox/static/aircox/css/chunk-common.css b/aircox/static/aircox/css/chunk-common.css index 32e77a5..4b1035b 100644 --- a/aircox/static/aircox/css/chunk-common.css +++ b/aircox/static/aircox/css/chunk-common.css @@ -6850,10 +6850,24 @@ a.tag:hover { margin-top: auto !important; } +.flex-row { + display: flex; + flex-direction: row; +} + +.flex-column { + display: flex; + flex-direction: column; +} + .flex-grow-0 { flex-grow: 0 !important; } +.flex-grow-1 { + flex-grow: 1 !important; +} + .float-right { float: right; } @@ -6973,7 +6987,7 @@ input.half-field:not(:active):not(:hover) { --body-bg: #fff; --text-color: black; --text-color-light: #555; - --break-color: rgb(245, 245, 245); + --break-color: rgb(225, 225, 225); --main-color: #EFCA08; --main-color-light: #F4da51; --main-color-dark: #F49F0A; diff --git a/aircox/static/aircox/css/public.css b/aircox/static/aircox/css/public.css index 34a9786..4bb6009 100644 --- a/aircox/static/aircox/css/public.css +++ b/aircox/static/aircox/css/public.css @@ -170,13 +170,14 @@ } .preview-cover { - background-color: var(--preview-bg); + background: var(--preview-bg); background-size: cover; background-repeat: no-repeat; height: var(--cover-h); max-width: calc(var(--cover-w) * 1.5); min-width: var(--cover-w); overflow: hidden; + border: 1px #c4c4c4 solid; } .preview-cover img { height: var(--cover-h); @@ -240,24 +241,20 @@ text-align: right; min-width: 9rem; } -.list-item .media { - flex-grow: 1; -} .list-item .media-content { - display: flex; - flex-direction: column; height: 100%; margin-bottom: unset; } -.list-item .media-content .content { - flex-grow: 1; -} .list-item:not(.no-cover) .list-item .media-content { min-height: var(--preview-cover-small-size); } .list-item .actions { text-align: right; } +.list-item:not(.wide) .media { + padding: 0.6rem; + border: 1px solid var(--break-color) !important; +} @media screen and (max-width: 400px) { .list-item .headings { @@ -313,7 +310,6 @@ } .preview-card .card-content figure { box-shadow: 0em 0em 1em rgba(0, 0, 0, 0.2); - border: 1px #c4c4c4 solid; height: var(--cover-h); width: var(--cover-w); } @@ -7435,17 +7431,18 @@ a.tag:hover { .actions.no-label label { display: none; } -.actions button, .actions .action { +.actions button, .actions .action, .actions a { justify-content: center; min-width: 2rem; + padding: 0.4rem; } -.actions button .not-selected, .actions .action .not-selected { +.actions button .not-selected, .actions .action .not-selected, .actions a .not-selected { opacity: 0.6; } -.actions button .icon, .actions .action .icon { +.actions button .icon, .actions .action .icon, .actions a .icon { margin: 0em !important; } -.actions button label, .actions .action label { +.actions button label, .actions .action label, .actions a label { margin-left: 0.4rem; } @@ -7710,15 +7707,11 @@ nav li a, nav li .button { margin-right: 0.4rem; color: var(--secondary-color-dark); } -.list-item:nth-child(3n):not(.wide) .media, .list-item.logs:nth-child(3n):not(.wide) { - padding: 0.6rem; - border-radius: 0.4rem; - border: 1px solid var(--main-color-dark) !important; +.list-item:nth-child(3n):not(.wide) .media { + border-color: var(--main-color-dark) !important; } -.list-item:nth-child(3n+1):not(.wide) .media, .list-item.logs:nth-child(3n+1):not(.wide) { - padding: 0.6rem; - border-radius: 0.4rem; - border: 1px solid var(--secondary-color-dark) !important; +.list-item:nth-child(3n+1):not(.wide) .media { + border-color: var(--secondary-color-dark) !important; } body { diff --git a/aircox/templates/aircox/widgets/item.html b/aircox/templates/aircox/widgets/item.html index f986aec..079e8f1 100644 --- a/aircox/templates/aircox/widgets/item.html +++ b/aircox/templates/aircox/widgets/item.html @@ -22,8 +22,8 @@ style="background-image: url({{ object.cover.url }})"> {% endif %} -
-
+
+
{% block content %} {% if content and with_content %} {% autoescape off %} diff --git a/aircox/templates/aircox/widgets/logs.html b/aircox/templates/aircox/widgets/logs.html index adaf4ff..632bf64 100644 --- a/aircox/templates/aircox/widgets/logs.html +++ b/aircox/templates/aircox/widgets/logs.html @@ -14,8 +14,16 @@ Context: {% elif object|is_log %} {% include "./track_item.html" with object=object.track log=object timetable=True %} {% else %} -
-
+
+
+ + + + + {{ station.music_stream_title }} + +
+
{% for obj in object %} {% include "./track_item.html" with object=obj.track log=obj timetable=True %} {% endfor %} diff --git a/aircox/templates/aircox/widgets/page.html b/aircox/templates/aircox/widgets/page.html index 99d1db9..2285821 100644 --- a/aircox/templates/aircox/widgets/page.html +++ b/aircox/templates/aircox/widgets/page.html @@ -33,7 +33,11 @@ {{ block.super }} {{ object.display_headline }} {% endif %} -{% if url %} +{% endblock %} + +{% block actions %} +{% if url and "card" not in widget_template %} {% translate "Show" %} {% endif %} +{{ block.super }} {% endblock %} diff --git a/aircox/urls.py b/aircox/urls.py index dac23de..f23c7d0 100755 --- a/aircox/urls.py +++ b/aircox/urls.py @@ -93,7 +93,7 @@ urls = [ path(_("programs/"), views.ProgramListView.as_view(), name="program-list"), path(_("programs/c//"), views.ProgramListView.as_view(), name="program-list"), path( - _("programs//"), + _("programs/"), views.ProgramDetailView.as_view(), name="program-detail", ), @@ -110,7 +110,7 @@ urls = [ path(_("programs/episodes/"), views.EpisodeListView.as_view(), name="episode-list"), path(_("programs/episodes/c/"), views.EpisodeListView.as_view(), name="episode-list"), path( - _("programs/episodes//"), + _("programs/episodes/"), views.EpisodeDetailView.as_view(), name="episode-detail", ), diff --git a/assets/src/assets/common.scss b/assets/src/assets/common.scss index 5ec85fb..4b67258 100644 --- a/assets/src/assets/common.scss +++ b/assets/src/assets/common.scss @@ -16,7 +16,7 @@ input.half-field:not(:active):not(:hover) { --body-bg: #fff; --text-color: black; --text-color-light: #555; - --break-color: rgb(245, 245, 245); + --break-color: rgb(225, 225, 225); --main-color: #EFCA08; --main-color-light: #F4da51; diff --git a/assets/src/assets/components.scss b/assets/src/assets/components.scss index cabe3f6..75805a5 100644 --- a/assets/src/assets/components.scss +++ b/assets/src/assets/components.scss @@ -266,13 +266,14 @@ .preview-cover { - background-color: var(--preview-bg); + background: var(--preview-bg); background-size: cover; background-repeat: no-repeat; height: var(--cover-h); max-width: calc( var(--cover-w) * 1.5 ); min-width: var(--cover-w); overflow: hidden; + border: 1px #c4c4c4 solid; img { height: var(--cover-h); @@ -350,29 +351,24 @@ min-width: 9rem; } - .media { - flex-grow: 1; - } - .media-content { - display: flex; - flex-direction: column; height: 100%; margin-bottom: unset; - .content { - flex-grow: 1; - } - .list-item:not(.no-cover) & { min-height: var(--preview-cover-small-size); } - } .actions { text-align: right; } + + &:not(.wide) .media { + padding: v.$mp-3; + // border-radius: v.$mp-2; + border: 1px solid var(--break-color) !important; + } } @media screen and (max-width: v.$screen-very-small) { @@ -448,7 +444,6 @@ figure { box-shadow: 0em 0em 1em rgba(0, 0, 0, 0.2); - border: 1px #c4c4c4 solid; height: var(--cover-h); width: var(--cover-w); } diff --git a/assets/src/assets/helpers.scss b/assets/src/assets/helpers.scss index 4e5b028..c646e3c 100644 --- a/assets/src/assets/helpers.scss +++ b/assets/src/assets/helpers.scss @@ -13,7 +13,11 @@ .push-right, .flex-push-right { margin-left: auto !important; } .push-bottom { margin-top: auto !important; } + +.flex-row { display: flex; flex-direction: row } +.flex-column { display: flex; flex-direction: column } .flex-grow-0 { flex-grow: 0 !important; } +.flex-grow-1 { flex-grow: 1 !important; } .float-right { float: right } .float-left { float: left } diff --git a/assets/src/assets/public.scss b/assets/src/assets/public.scss index 5cb9d8c..e5f5d11 100644 --- a/assets/src/assets/public.scss +++ b/assets/src/assets/public.scss @@ -81,9 +81,10 @@ display: none; } - button, .action { + button, .action, a { justify-content: center; min-width: 2rem; + padding: v.$mp-2; .not-selected { opacity: 0.6; } .icon { margin: 0em !important; } @@ -423,19 +424,13 @@ nav li { } &:nth-child(3n):not(.wide) .media, - &.logs:nth-child(3n):not(.wide) { - padding: v.$mp-3; - border-radius: v.$mp-2; - border: 1px solid var(--main-color-dark) !important; + border-color: var(--main-color-dark) !important; } &:nth-child(3n+1):not(.wide) .media, - &.logs:nth-child(3n+1):not(.wide) { - padding: v.$mp-3; - border-radius: v.$mp-2; - border: 1px solid var(--secondary-color-dark) !important; + border-color: var(--secondary-color-dark) !important; } }