From e029c0c6121faff4767cb6d83fd154cfd17fbaa5 Mon Sep 17 00:00:00 2001 From: Stefan Wehrmeyer Date: Mon, 27 Jan 2025 13:46:00 +0100 Subject: [PATCH] Add government name to breadcrumbs list --- froide_govplan/models.py | 13 +++++++++---- froide_govplan/views.py | 12 +++++++++--- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/froide_govplan/models.py b/froide_govplan/models.py index ef15bc5..2a7a93c 100644 --- a/froide_govplan/models.py +++ b/froide_govplan/models.py @@ -10,15 +10,13 @@ from django.db import models from django.urls import reverse from django.utils import timezone from django.utils.translation import gettext_lazy as _ - from filer.fields.image import FilerImageField -from taggit.managers import TaggableManager -from taggit.models import TaggedItemBase - from froide.follow.models import Follower from froide.georegion.models import GeoRegion from froide.organization.models import Organization from froide.publicbody.models import Category, Jurisdiction, PublicBody +from taggit.managers import TaggableManager +from taggit.models import TaggedItemBase from . import conf from .utils import make_request_url @@ -96,6 +94,13 @@ class Government(models.Model): def __str__(self): 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 def days_available(self): if self.start_date is None: diff --git a/froide_govplan/views.py b/froide_govplan/views.py index 9f8ca3e..f70c950 100644 --- a/froide_govplan/views.py +++ b/froide_govplan/views.py @@ -3,7 +3,6 @@ from django.contrib.auth.mixins import LoginRequiredMixin from django.shortcuts import get_object_or_404, redirect, render from django.utils.translation import gettext_lazy as _ from django.views.generic import DetailView, UpdateView - from froide.helper.breadcrumbs import BreadcrumbView from .auth import get_visible_plans @@ -24,15 +23,22 @@ class GovernmentMixin(BreadcrumbView): 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): + breadcrumbs = [] if "request" in context: request = context["request"] title = request.current_page.get_title() 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):