Add government name to breadcrumbs list

This commit is contained in:
Stefan Wehrmeyer 2025-01-27 13:46:00 +01:00
parent 3b52d7c808
commit e029c0c612
2 changed files with 18 additions and 7 deletions

View file

@ -10,15 +10,13 @@ from django.db import models
from django.urls import reverse from django.urls import reverse
from django.utils import timezone from django.utils import timezone
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from filer.fields.image import FilerImageField from filer.fields.image import FilerImageField
from taggit.managers import TaggableManager
from taggit.models import TaggedItemBase
from froide.follow.models import Follower from froide.follow.models import Follower
from froide.georegion.models import GeoRegion from froide.georegion.models import GeoRegion
from froide.organization.models import Organization from froide.organization.models import Organization
from froide.publicbody.models import Category, Jurisdiction, PublicBody from froide.publicbody.models import Category, Jurisdiction, PublicBody
from taggit.managers import TaggableManager
from taggit.models import TaggedItemBase
from . import conf from . import conf
from .utils import make_request_url from .utils import make_request_url
@ -96,6 +94,13 @@ class Government(models.Model):
def __str__(self): def __str__(self):
return self.name return self.name
def get_absolute_url(self):
if self.planning_document:
return self.planning_document
# No planning document? Just return the base URL
url = reverse("govplan:search")
return url.rsplit("/", 2)[0]
@property @property
def days_available(self): def days_available(self):
if self.start_date is None: if self.start_date is None:

View file

@ -3,7 +3,6 @@ from django.contrib.auth.mixins import LoginRequiredMixin
from django.shortcuts import get_object_or_404, redirect, render from django.shortcuts import get_object_or_404, redirect, render
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django.views.generic import DetailView, UpdateView from django.views.generic import DetailView, UpdateView
from froide.helper.breadcrumbs import BreadcrumbView from froide.helper.breadcrumbs import BreadcrumbView
from .auth import get_visible_plans from .auth import get_visible_plans
@ -24,15 +23,22 @@ class GovernmentMixin(BreadcrumbView):
Government, slug=self.kwargs["gov"], **filter_kwarg Government, slug=self.kwargs["gov"], **filter_kwarg
) )
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["government"] = self.government
return context
def get_breadcrumbs(self, context): def get_breadcrumbs(self, context):
breadcrumbs = []
if "request" in context: if "request" in context:
request = context["request"] request = context["request"]
title = request.current_page.get_title() title = request.current_page.get_title()
url = request.current_page.get_absolute_url() url = request.current_page.get_absolute_url()
return [(title, url)] breadcrumbs.append((title, url))
return [] breadcrumbs.append((self.government.name, self.government.get_absolute_url()))
return breadcrumbs
class GovPlanSectionDetailView(GovernmentMixin, DetailView): class GovPlanSectionDetailView(GovernmentMixin, DetailView):