From fc64045cdeae95b07079dbfde9179e98e4b298ba Mon Sep 17 00:00:00 2001 From: Karl Engelhardt Date: Thu, 28 Apr 2022 16:01:29 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Add=20shortlinks=20for=20govplan=20?= =?UTF-8?q?updates?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- froide_govplan/models.py | 9 +++++++++ froide_govplan/urls.py | 6 ++++++ froide_govplan/views.py | 12 +++++++++++- 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/froide_govplan/models.py b/froide_govplan/models.py index ea481d0..28227a7 100644 --- a/froide_govplan/models.py +++ b/froide_govplan/models.py @@ -350,6 +350,15 @@ class GovernmentPlanUpdate(models.Model): def get_absolute_domain_url(self): return settings.SITE_URL + self.get_absolute_url() + def get_absolute_short_url(self): + return reverse( + "govplan:planupdate_shortlink", + kwargs={"gov": self.plan.government.slug, "obj_id": self.pk}, + ) + + def get_absolute_domain_short_url(self): + return settings.SITE_URL + self.get_absolute_short_url() + def get_url_domain(self): return urlparse(self.url).netloc or None diff --git a/froide_govplan/urls.py b/froide_govplan/urls.py index b25a56f..88cabae 100644 --- a/froide_govplan/urls.py +++ b/froide_govplan/urls.py @@ -8,6 +8,7 @@ from .views import ( GovPlanSectionDetailOGView, GovPlanSectionDetailView, search, + update_shortlink, ) app_name = "govplan" @@ -39,4 +40,9 @@ urlpatterns = [ GovPlanSectionDetailOGView.as_view(), name="section_og", ), + path( + pgettext_lazy("url part", "/u//"), + update_shortlink, + name="planupdate_shortlink", + ), ] diff --git a/froide_govplan/views.py b/froide_govplan/views.py index fd896c0..0cbd88e 100644 --- a/froide_govplan/views.py +++ b/froide_govplan/views.py @@ -5,7 +5,12 @@ from django.utils.translation import gettext_lazy as _ from django.views.generic import DetailView, UpdateView from .forms import GovernmentPlanUpdateProposalForm -from .models import Government, GovernmentPlan, GovernmentPlanSection +from .models import ( + Government, + GovernmentPlan, + GovernmentPlanSection, + GovernmentPlanUpdate, +) class GovernmentMixin: @@ -132,3 +137,8 @@ def search(request): return render( request, "froide_govplan/plugins/card_cols.html", {"object_list": plans} ) + + +def update_shortlink(request, gov, obj_id): + obj = get_object_or_404(GovernmentPlanUpdate, plan__government__slug=gov, pk=obj_id) + return redirect(obj)