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"
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):
data = super().get_changeform_initial_data(request)
@ -95,6 +97,7 @@ class PageAdmin(BasePageAdmin):
@admin.register(StaticPage)
class StaticPageAdmin(BasePageAdmin):
list_display = BasePageAdmin.list_display + ("attach_to",)
list_editable = BasePageAdmin.list_editable + ("attach_to",)
fieldsets = deepcopy(BasePageAdmin.fieldsets)
fieldsets[1][1]["fields"] += ("attach_to",)

View File

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

View File

@ -257,7 +257,8 @@ class StaticPage(BasePage):
detail_url_name = "static-page-detail"
class Target(models.TextChoices):
HOME = "", _("Home Page")
NONE = "", _("None")
HOME = "home", _("Home Page")
TIMETABLE = "timetable-list", _("Timetable")
PROGRAMS = "program-list", _("Programs list")
EPISODES = "episode-list", _("Episodes list")
@ -346,13 +347,13 @@ class NavItem(models.Model):
def render(self, request, css_class="", active_class=""):
url = self.get_url()
text = self.get_text()
label = self.get_label()
if active_class and request.path.startswith(url):
css_class += " " + active_class
if not url:
return text
return label
elif not css_class:
return format_html('<a href="{}">{}</a>', url, text)
return format_html('<a href="{}">{}</a>', url, label)
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 {
display: none;
background-color: var(--highlight-color);
}
.nav .nav-item {
padding: 0.6rem;
@ -7513,7 +7514,7 @@ a.tag:hover {
vertical-align: top;
display: inline-block;
}
.nav .nav-item.active, .nav .nav-item:hover {
.nav .nav-item.active {
background-color: var(--highlight-color-2);
color: var(--highlight-color);
}
@ -7547,14 +7548,10 @@ a.tag:hover {
white-space: nowrap;
}
.nav.secondary {
position: absolute;
width: 100%;
z-index: 100;
box-shadow: 0em 0.5em 0.5em rgba(0, 0, 0, 0.05);
background-color: var(--highlight-color-alpha);
justify-content: right;
display: none;
}
.nav-item:hover + .nav.secondary, .nav.secondary:hover {
.nav.primary:hover + .nav.secondary, .nav.secondary:hover {
display: flex;
top: var(--nav-primary-height);
left: 0rem;
@ -7565,9 +7562,12 @@ a.tag:hover {
.breadcrumbs {
text-align: right;
height: 2.2rem;
padding: 0.6rem 0rem;
margin-bottom: 0.4rem;
}
.breadcrumbs:empty {
display: none;
}
.breadcrumbs a + a:before {
content: "/";
margin: 0 0.4rem;

View File

@ -61,22 +61,6 @@ Usefull context:
aria-label="{% translate "Main menu" %}">
</a-switch>
<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 %}
{% nav_items "top" css_class="nav-item" active_class="active" as items %}
{% for item, render in items %}
@ -88,7 +72,6 @@ Usefull context:
</a>
{% endif %}
{% endblock %}
{% endcomment %}
</div>
{% endblock %}
</nav>
@ -96,17 +79,17 @@ Usefull context:
{% block secondary-nav %}{% endblock %}
</div>
{% spaceless %}
{% block breadcrumbs-container %}
<div class="breadcrumbs container">
{% block breadcrumbs %}{% endblock %}
</div>
{% endblock %}
{% endspaceless %}
{% block main-container %}
<main class="page">
{% block main %}
{% spaceless %}
{% block breadcrumbs-container %}
<div class="breadcrumbs container">
{% block breadcrumbs %}{% endblock %}
</div>
{% endblock %}
{% endspaceless %}
{% block header-container %}
<header class="container header preview preview-header {% if cover %}has-cover{% endif %}">
{% block header %}

View File

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

View File

@ -2,8 +2,6 @@
{% comment %}Detail page of a show{% endcomment %}
{% load i18n aircox %}
{% include "aircox/program_sidebar.html" %}
{% block content-container %}
{% with schedules=program.schedule_set.all %}
{% 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)]
@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")
def do_update_query(obj, **kwargs):
"""Replace provided querydict's values with **kwargs.

View File

@ -114,4 +114,9 @@ urls = [
views.errors.NoStationErrorView.as_view(),
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):
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 (
qs.date(self.date)
if self.date is not None

View File

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