Fix release blockers and deployment build
deploy / deploy (push) Canceled after 0s

This commit is contained in:
Jens
2026-07-21 21:22:29 +02:00
parent b8091e59bd
commit a4eced8be5
64 changed files with 1011 additions and 675 deletions
+17 -8
View File
@@ -1,7 +1,6 @@
from __future__ import annotations
from datetime import timedelta
from uuid import uuid4
from urllib.parse import urlparse
from django.conf import settings
@@ -91,7 +90,7 @@ class Source(TimeStampedModel):
return [entry for entry in entries if isinstance(entry, dict)]
@property
def latest_policy_review(self) -> "SourcePolicyReview | None":
def latest_policy_review(self) -> SourcePolicyReview | None:
return self.policy_reviews.order_by("-created_at").first()
@property
@@ -109,27 +108,37 @@ class Source(TimeStampedModel):
if not review:
return "Geen review geregistreerd"
if review.is_expired:
return f"Review verlopen op {review.expires_at:%Y-%m-%d}" if review.expires_at else "Review verlopen"
return (
f"Review verlopen op {review.expires_at:%Y-%m-%d}"
if review.expires_at
else "Review verlopen"
)
if review.expires_at:
return f"{review.get_decision_display()} geldig tot {review.expires_at:%Y-%m-%d}"
return f"{review.get_decision_display()} zonder vervaldatum"
@property
def requires_terms_review(self) -> bool:
return self.policy == Source.Policy.ALLOW and self.policy_review_state in {"missing", "expired"}
return self.policy == Source.Policy.ALLOW and self.policy_review_state in {
"missing",
"expired",
}
def schedule_after_success(self, *, now=None, jitter_seconds: int = 0) -> None:
now = now or timezone.now()
self.last_success_at = now
self.failure_count = 0
self.next_run_at = now + timedelta(minutes=self.crawl_interval_minutes) + timedelta(
seconds=max(0, jitter_seconds)
self.next_run_at = (
now
+ timedelta(minutes=self.crawl_interval_minutes)
+ timedelta(seconds=max(0, jitter_seconds))
)
self.save(update_fields=["last_success_at", "failure_count", "next_run_at", "updated_at"])
def schedule_after_failure(
self,
*, now=None,
*,
now=None,
backoff_minutes: int | None = None,
backoff_seconds: int | None = None,
) -> None:
@@ -186,7 +195,7 @@ class SourceRun(TimeStampedModel):
class SourceLease(TimeStampedModel):
source = models.OneToOneField(Source, on_delete=models.CASCADE, related_name="lease")
token = models.CharField(max_length=64, default=lambda: str(uuid4()))
token = models.CharField(max_length=64, default="")
worker_id = models.CharField(max_length=128, blank=True)
expires_at = models.DateTimeField(db_index=True)