Add make request button to plan page

This commit is contained in:
Stefan Wehrmeyer 2022-03-15 14:35:16 +01:00
parent 3051ee51f5
commit 0bfceca2e7
5 changed files with 186 additions and 110 deletions

View file

@ -1,5 +1,6 @@
import functools
import re
from datetime import timedelta
from urllib.parse import urlparse
from django.conf import settings
@ -19,6 +20,8 @@ from froide.follow.models import Follower
from froide.organization.models import Organization
from froide.publicbody.models import Category, Jurisdiction, PublicBody
from .utils import PLAN_TAG_PREFIX, TAG_NAME, make_request_url
try:
from cms.models.fields import PlaceholderField
from cms.models.pluginmodel import CMSPlugin
@ -232,6 +235,35 @@ class GovernmentPlan(models.Model):
def get_status_css(self):
return STATUS_CSS.get(self.status, "")
def make_request_url(self):
if not self.responsible_publicbody:
return []
return make_request_url(self, self.responsible_publicbody)
def has_recent_foirequest(self):
frs = self.get_related_foirequests()
ago = timezone.now() - timedelta(days=90)
return any(fr.first_message > ago for fr in frs)
def get_recent_foirequest(self):
return self.get_related_foirequests()[0]
def get_related_foirequests(self):
if not self.responsible_publicbody:
return []
if hasattr(self, "_related_foirequests"):
return self._related_foirequests
self._related_foirequests = (
FoiRequest.objects.filter(
visibility=FoiRequest.VISIBILITY.VISIBLE_TO_PUBLIC,
public_body=self.responsible_publicbody,
)
.filter(tags__name=TAG_NAME)
.filter(tags__name="{}{}".format(PLAN_TAG_PREFIX, self.slug))
.order_by("-first_message")
)
return self._related_foirequests
class GovernmentPlanUpdate(models.Model):
plan = models.ForeignKey(