fix bug & remove dynamic

This commit is contained in:
bkfox 2023-12-12 21:24:21 +01:00
parent 46a9008cda
commit 73d8ff32d5
11 changed files with 62 additions and 53 deletions

View File

@ -50,7 +50,9 @@ class BasePageAdmin(admin.ModelAdmin):
change_form_template = "admin/aircox/page_change_form.html" change_form_template = "admin/aircox/page_change_form.html"
def cover_thumb(self, obj): def cover_thumb(self, obj):
return mark_safe('<img src="{}"/>'.format(obj.cover.icons["64"])) if obj.cover else "" if obj.cover and obj.cover.thumbnails:
return mark_safe('<img src="{}"/>'.format(obj.cover.icons["64"]))
return ""
def get_changeform_initial_data(self, request): def get_changeform_initial_data(self, request):
data = super().get_changeform_initial_data(request) data = super().get_changeform_initial_data(request)
@ -95,6 +97,7 @@ class PageAdmin(BasePageAdmin):
@admin.register(StaticPage) @admin.register(StaticPage)
class StaticPageAdmin(BasePageAdmin): class StaticPageAdmin(BasePageAdmin):
list_display = BasePageAdmin.list_display + ("attach_to",) list_display = BasePageAdmin.list_display + ("attach_to",)
list_editable = BasePageAdmin.list_editable + ("attach_to",)
fieldsets = deepcopy(BasePageAdmin.fieldsets) fieldsets = deepcopy(BasePageAdmin.fieldsets)
fieldsets[1][1]["fields"] += ("attach_to",) fieldsets[1][1]["fields"] += ("attach_to",)

View File

@ -170,7 +170,7 @@ class Log(Renderable, models.Model):
""" """
if isinstance(logs, models.QuerySet): if isinstance(logs, models.QuerySet):
logs = list(logs.order_by("-date")) logs = list(logs.order_by("-date"))
diffs = diffs.on_air().before().order_by("-start") diffs = diffs.on_air().order_by("-start")
if diff_count: if diff_count:
diffs = diffs[:diff_count] diffs = diffs[:diff_count]
diffs = deque(diffs) diffs = deque(diffs)

View File

@ -257,7 +257,8 @@ class StaticPage(BasePage):
detail_url_name = "static-page-detail" detail_url_name = "static-page-detail"
class Target(models.TextChoices): class Target(models.TextChoices):
HOME = "", _("Home Page") NONE = "", _("None")
HOME = "home", _("Home Page")
TIMETABLE = "timetable-list", _("Timetable") TIMETABLE = "timetable-list", _("Timetable")
PROGRAMS = "program-list", _("Programs list") PROGRAMS = "program-list", _("Programs list")
EPISODES = "episode-list", _("Episodes list") EPISODES = "episode-list", _("Episodes list")
@ -346,13 +347,13 @@ class NavItem(models.Model):
def render(self, request, css_class="", active_class=""): def render(self, request, css_class="", active_class=""):
url = self.get_url() url = self.get_url()
text = self.get_text() label = self.get_label()
if active_class and request.path.startswith(url): if active_class and request.path.startswith(url):
css_class += " " + active_class css_class += " " + active_class
if not url: if not url:
return text return label
elif not css_class: elif not css_class:
return format_html('<a href="{}">{}</a>', url, text) return format_html('<a href="{}">{}</a>', url, label)
else: else:
return format_html('<a href="{}" class="{}">{}</a>', url, css_class, text) return format_html('<a href="{}" class="{}">{}</a>', url, css_class, label)

View File

@ -7495,6 +7495,7 @@ a.tag:hover {
} }
.nav .burger { .nav .burger {
display: none; display: none;
background-color: var(--highlight-color);
} }
.nav .nav-item { .nav .nav-item {
padding: 0.6rem; padding: 0.6rem;
@ -7513,7 +7514,7 @@ a.tag:hover {
vertical-align: top; vertical-align: top;
display: inline-block; display: inline-block;
} }
.nav .nav-item.active, .nav .nav-item:hover { .nav .nav-item.active {
background-color: var(--highlight-color-2); background-color: var(--highlight-color-2);
color: var(--highlight-color); color: var(--highlight-color);
} }
@ -7547,14 +7548,10 @@ a.tag:hover {
white-space: nowrap; white-space: nowrap;
} }
.nav.secondary { .nav.secondary {
position: absolute; background-color: var(--highlight-color-alpha);
width: 100%;
z-index: 100;
box-shadow: 0em 0.5em 0.5em rgba(0, 0, 0, 0.05);
justify-content: right; justify-content: right;
display: none;
} }
.nav-item:hover + .nav.secondary, .nav.secondary:hover { .nav.primary:hover + .nav.secondary, .nav.secondary:hover {
display: flex; display: flex;
top: var(--nav-primary-height); top: var(--nav-primary-height);
left: 0rem; left: 0rem;
@ -7565,9 +7562,12 @@ a.tag:hover {
.breadcrumbs { .breadcrumbs {
text-align: right; text-align: right;
height: 2.2rem; padding: 0.6rem 0rem;
margin-bottom: 0.4rem; margin-bottom: 0.4rem;
} }
.breadcrumbs:empty {
display: none;
}
.breadcrumbs a + a:before { .breadcrumbs a + a:before {
content: "/"; content: "/";
margin: 0 0.4rem; margin: 0 0.4rem;

View File

@ -61,22 +61,6 @@ Usefull context:
aria-label="{% translate "Main menu" %}"> aria-label="{% translate "Main menu" %}">
</a-switch> </a-switch>
<div class="nav-menu"> <div class="nav-menu">
{% for nav_item, secondary in nav_menu %}
<a class="nav-item" href="{{ nav_item.get_url }}">
{{ nav_item.get_label }}
</a>
{% if secondary %}
<div class="nav secondary">
{% for label, url in secondary %}
<a href="{{ url }}" class="nav-item">
{{ label }}
</a>
{% endfor %}
</div>
{% endif %}
{% endfor %}
{% comment %}
{% block nav-primary-menu %} {% block nav-primary-menu %}
{% nav_items "top" css_class="nav-item" active_class="active" as items %} {% nav_items "top" css_class="nav-item" active_class="active" as items %}
{% for item, render in items %} {% for item, render in items %}
@ -88,7 +72,6 @@ Usefull context:
</a> </a>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% endcomment %}
</div> </div>
{% endblock %} {% endblock %}
</nav> </nav>
@ -96,6 +79,9 @@ Usefull context:
{% block secondary-nav %}{% endblock %} {% block secondary-nav %}{% endblock %}
</div> </div>
{% block main-container %}
<main class="page">
{% block main %}
{% spaceless %} {% spaceless %}
{% block breadcrumbs-container %} {% block breadcrumbs-container %}
<div class="breadcrumbs container"> <div class="breadcrumbs container">
@ -104,9 +90,6 @@ Usefull context:
{% endblock %} {% endblock %}
{% endspaceless %} {% endspaceless %}
{% block main-container %}
<main class="page">
{% block main %}
{% block header-container %} {% block header-container %}
<header class="container header preview preview-header {% if cover %}has-cover{% endif %}"> <header class="container header preview preview-header {% if cover %}has-cover{% endif %}">
{% block header %} {% block header %}

View File

@ -3,7 +3,7 @@
{% load i18n aircox %} {% load i18n aircox %}
{% block secondary-nav %} {% block secondary-nav %}
{% if categories %} {% if not parent and categories %}
<nav class="nav secondary"> <nav class="nav secondary">
<div class="nav-menu nav-categories"> <div class="nav-menu nav-categories">
{% for cat in categories %} {% for cat in categories %}
@ -49,6 +49,11 @@
<a href="{{ request.path }}">{{ model|verbose_name:True }}</a> <a href="{{ request.path }}">{{ model|verbose_name:True }}</a>
{% elif page %} {% elif page %}
<a href="{{ request.path }}">{{ page.title }}</a> <a href="{{ request.path }}">{{ page.title }}</a>
{% if category %}
<a href="{% url request.resolver_match.url_name category_slug=category.slug %}">
{{ category.title }}
</a>
{% endif %}
{% else %} {% else %}
<a href="{% url request.resolver_match.url_name %}">{{ model|verbose_name:True }}</a> <a href="{% url request.resolver_match.url_name %}">{{ model|verbose_name:True }}</a>
{% if category %} {% if category %}

View File

@ -2,8 +2,6 @@
{% comment %}Detail page of a show{% endcomment %} {% comment %}Detail page of a show{% endcomment %}
{% load i18n aircox %} {% load i18n aircox %}
{% include "aircox/program_sidebar.html" %}
{% block content-container %} {% block content-container %}
{% with schedules=program.schedule_set.all %} {% with schedules=program.schedule_set.all %}
{% if schedules %} {% if schedules %}

View File

@ -97,6 +97,13 @@ def do_nav_items(context, menu, **kwargs):
return [(item, item.render(request, **kwargs)) for item in station.navitem_set.filter(menu=menu)] return [(item, item.render(request, **kwargs)) for item in station.navitem_set.filter(menu=menu)]
@register.filter(name="nav_active")
def do_nav_active(obj, request):
if request.path.startswith(obj.get_url()):
return True
return False
@register.simple_tag(name="update_query") @register.simple_tag(name="update_query")
def do_update_query(obj, **kwargs): def do_update_query(obj, **kwargs):
"""Replace provided querydict's values with **kwargs. """Replace provided querydict's values with **kwargs.

View File

@ -114,4 +114,9 @@ urls = [
views.errors.NoStationErrorView.as_view(), views.errors.NoStationErrorView.as_view(),
name="errors-no-station", name="errors-no-station",
), ),
path(
_("program/<slug:parent_slug>/publications"),
views.PageListView.as_view(model=models.Page, attach_to_value=models.StaticPage.Target.PAGES),
name="page-list",
),
] ]

View File

@ -37,7 +37,8 @@ class LogListMixin(GetDateMixin):
) )
def get_diffusions_queryset(self): def get_diffusions_queryset(self):
qs = Diffusion.objects.station(self.station).on_air().filter(start__lte=tz.now()) qs = Diffusion.objects.station(self.station).on_air().filter(start__lte=tz.now()).before()
return ( return (
qs.date(self.date) qs.date(self.date)
if self.date is not None if self.date is not None

View File

@ -122,7 +122,10 @@
display: none; display: none;
} }
.burger { display: none; } .burger {
display: none;
background-color: var(--highlight-color);
}
.nav-item { .nav-item {
padding: v.$mp-3; padding: v.$mp-3;
@ -144,7 +147,7 @@
display: inline-block; display: inline-block;
} }
&.active, &:hover { &.active {
background-color: var(--highlight-color-2); background-color: var(--highlight-color-2);
color: var(--highlight-color); color: var(--highlight-color);
} }
@ -188,15 +191,16 @@
} }
&.secondary { &.secondary {
position: absolute; background-color: var(--highlight-color-alpha);
width: 100%; //position: absolute;
z-index: 100; //width: 100%;
box-shadow: 0em 0.5em 0.5em rgba(0, 0, 0, 0.05); //box-shadow: 0em 0.5em 0.5em rgba(0, 0, 0, 0.05);
justify-content: right; justify-content: right;
display: none; //display: none;
.nav-item:hover + &, &:hover { .nav.primary:hover + &,
&:hover {
display: flex; display: flex;
top: var(--nav-primary-height); top: var(--nav-primary-height);
left: 0rem; left: 0rem;
@ -211,9 +215,11 @@
// ---- breadcrumbs // ---- breadcrumbs
.breadcrumbs { .breadcrumbs {
text-align: right; text-align: right;
height: calc( v.$mp-3 * 2 + v.$text-size); padding: v.$mp-3 0rem;
margin-bottom: v.$mp-2; margin-bottom: v.$mp-2;
&:empty { display: none; }
a + a:before { a + a:before {
content: "/"; content: "/";
margin: 0 v.$mp-2; margin: 0 v.$mp-2;