Setting & check for site-wide per-month event ingestion maximum

This commit is contained in:
Klaas van Schelven
2026-01-07 11:29:41 +01:00
parent fb5424db22
commit 1d261b4b7c
5 changed files with 77 additions and 6 deletions

View File

@@ -0,0 +1,21 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("phonehome", "0002_installation_email_quota_usage"),
]
operations = [
migrations.AddField(
model_name="installation",
name="next_quota_check",
field=models.PositiveIntegerField(default=0),
),
migrations.AddField(
model_name="installation",
name="quota_exceeded_until",
field=models.DateTimeField(blank=True, null=True),
),
]

View File

@@ -16,7 +16,10 @@ class Installation(models.Model):
silence_email_system_warning = models.BooleanField(default=False)
# ingestion/digestion quota
email_quota_usage = models.TextField(null=False, default='{"per_month": {}}')
quota_exceeded_until = models.DateTimeField(null=True, blank=True)
next_quota_check = models.PositiveIntegerField(null=False, default=0)
@classmethod
@immediate_atomic(only_if_needed=True) # minimalize write-lock-hogging (while being callable within atomic blocks)