fix bug & remove dynamic
This commit is contained in:
parent
46a9008cda
commit
73d8ff32d5
|
@ -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",)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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 %}
|
||||||
|
|
|
@ -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 %}
|
||||||
|
|
|
@ -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 %}
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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",
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user