style front page updates, support FOIRequests

This commit is contained in:
Jonas Heinrich 2025-09-19 14:50:42 +02:00
parent c56689893b
commit e3d283f463
7 changed files with 239 additions and 97 deletions

View file

@ -321,23 +321,29 @@ class GovernmentPlan(models.Model):
return "govplan:plan@{}".format(self.pk)
def get_related_foirequests(self):
if FoiRequest is None:
return []
if not self.responsible_publicbody:
return []
if hasattr(self, "_related_foirequests"):
return self._related_foirequests
return FOIRequest.objects.filter(government_plan=self).order_by('-created_at')
self._related_foirequests = (
FoiRequest.objects.filter(
visibility=FoiRequest.VISIBILITY.VISIBLE_TO_PUBLIC,
public_body=self.responsible_publicbody,
)
.filter(tags__name=conf.GOVPLAN_NAME)
.filter(reference=self.get_foirequest_reference())
.order_by("-created_at")
)
return self._related_foirequests
class FOIRequest(models.Model):
title = models.CharField(max_length=1024, verbose_name=_("title"))
government_plan = models.ForeignKey(
'GovernmentPlan',
on_delete=models.CASCADE,
related_name='foi_requests',
verbose_name=_("government plan"),
)
url = models.CharField(max_length=1024, blank=True, verbose_name=_("URL"))
created_at = models.DateTimeField(default=timezone.now, verbose_name=_("created at"))
class Meta:
ordering = ("-created_at",)
get_latest_by = "created_at"
verbose_name = _("FOI request")
verbose_name_plural = _("FOI requests")
def __str__(self):
return f"{self.title} - {self.government_plan.title}"
class GovernmentPlanUpdate(models.Model):