Add shortlinks for govplan updates

This commit is contained in:
Karl Engelhardt 2022-04-28 16:01:29 +02:00
parent da21081be0
commit fc64045cde
3 changed files with 26 additions and 1 deletions

View file

@ -350,6 +350,15 @@ class GovernmentPlanUpdate(models.Model):
def get_absolute_domain_url(self): def get_absolute_domain_url(self):
return settings.SITE_URL + self.get_absolute_url() 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): def get_url_domain(self):
return urlparse(self.url).netloc or None return urlparse(self.url).netloc or None

View file

@ -8,6 +8,7 @@ from .views import (
GovPlanSectionDetailOGView, GovPlanSectionDetailOGView,
GovPlanSectionDetailView, GovPlanSectionDetailView,
search, search,
update_shortlink,
) )
app_name = "govplan" app_name = "govplan"
@ -39,4 +40,9 @@ urlpatterns = [
GovPlanSectionDetailOGView.as_view(), GovPlanSectionDetailOGView.as_view(),
name="section_og", name="section_og",
), ),
path(
pgettext_lazy("url part", "<slug:gov>/u/<int:obj_id>/"),
update_shortlink,
name="planupdate_shortlink",
),
] ]

View file

@ -5,7 +5,12 @@ from django.utils.translation import gettext_lazy as _
from django.views.generic import DetailView, UpdateView from django.views.generic import DetailView, UpdateView
from .forms import GovernmentPlanUpdateProposalForm from .forms import GovernmentPlanUpdateProposalForm
from .models import Government, GovernmentPlan, GovernmentPlanSection from .models import (
Government,
GovernmentPlan,
GovernmentPlanSection,
GovernmentPlanUpdate,
)
class GovernmentMixin: class GovernmentMixin:
@ -132,3 +137,8 @@ def search(request):
return render( return render(
request, "froide_govplan/plugins/card_cols.html", {"object_list": plans} 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)