feat: add license expiration notifications
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
import django.core.validators
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
("netbox_slm", "0012_softwarelicense_renewal_and_credentials"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="softwarelicense",
|
||||
name="expiration_notifications_enabled",
|
||||
field=models.BooleanField(default=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="softwarelicense",
|
||||
name="default_notification_intervals",
|
||||
field=models.BooleanField(default=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="softwarelicense",
|
||||
name="custom_notification_interval",
|
||||
field=models.PositiveIntegerField(
|
||||
blank=True, null=True, validators=[django.core.validators.MinValueValidator(1)]
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="softwarelicense",
|
||||
name="custom_notification_interval_unit",
|
||||
field=models.CharField(
|
||||
blank=True,
|
||||
choices=[("days", "Days"), ("weeks", "Weeks"), ("months", "Months")],
|
||||
max_length=8,
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="softwarelicense",
|
||||
name="email_notifications",
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="SoftwareLicenseNotificationLog",
|
||||
fields=[
|
||||
("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")),
|
||||
("expiration_date", models.DateField()),
|
||||
("notification_date", models.DateField()),
|
||||
("netbox_sent_at", models.DateTimeField(blank=True, null=True)),
|
||||
("email_sent_at", models.DateTimeField(blank=True, null=True)),
|
||||
(
|
||||
"license",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="notification_logs",
|
||||
to="netbox_slm.softwarelicense",
|
||||
),
|
||||
),
|
||||
(
|
||||
"user",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
migrations.AddConstraint(
|
||||
model_name="softwarelicensenotificationlog",
|
||||
constraint=models.UniqueConstraint(
|
||||
fields=("license", "user", "expiration_date", "notification_date"),
|
||||
name="netbox_slm_license_notification_unique",
|
||||
),
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user