Add notification settings and forms for email notifications
This commit is contained in:
parent
93f5f05a33
commit
bb8949af76
19 changed files with 435 additions and 23 deletions
|
@ -5,10 +5,24 @@ from .models import Emailadress, BirdEmail
|
|||
|
||||
@admin.register(Emailadress)
|
||||
class EmailaddressAdmin(admin.ModelAdmin):
|
||||
list_display = ["email_address", "created_at", "updated_at", "user"]
|
||||
list_display = ["email_address", "is_naturschutzbehoerde", "is_jagdbehoerde", "is_wildvogelhilfe_team", "created_at", "updated_at", "user"]
|
||||
search_fields = ["email_address"]
|
||||
list_filter = ["created_at", "updated_at", "user"]
|
||||
list_filter = ["is_naturschutzbehoerde", "is_jagdbehoerde", "is_wildvogelhilfe_team", "created_at", "updated_at", "user"]
|
||||
list_per_page = 20
|
||||
fieldsets = (
|
||||
(None, {
|
||||
'fields': ('email_address',)
|
||||
}),
|
||||
('Notification Categories', {
|
||||
'fields': ('is_naturschutzbehoerde', 'is_jagdbehoerde', 'is_wildvogelhilfe_team'),
|
||||
'description': 'Select which types of notifications this email address should receive'
|
||||
}),
|
||||
)
|
||||
|
||||
def save_model(self, request, obj, form, change):
|
||||
if not change: # Only set user when creating new object
|
||||
obj.user = request.user
|
||||
super().save_model(request, obj, form, change)
|
||||
|
||||
|
||||
@admin.register(BirdEmail)
|
||||
|
|
30
app/sendemail/forms.py
Normal file
30
app/sendemail/forms.py
Normal file
|
@ -0,0 +1,30 @@
|
|||
from django import forms
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from .models import Emailadress
|
||||
|
||||
|
||||
class EmailaddressForm(forms.ModelForm):
|
||||
"""Form for editing email addresses with notification categories."""
|
||||
class Meta:
|
||||
model = Emailadress
|
||||
fields = [
|
||||
"email_address",
|
||||
"is_naturschutzbehoerde",
|
||||
"is_jagdbehoerde",
|
||||
"is_wildvogelhilfe_team",
|
||||
]
|
||||
labels = {
|
||||
"email_address": _("E-Mail-Adresse"),
|
||||
"is_naturschutzbehoerde": _("Naturschutzbehörde"),
|
||||
"is_jagdbehoerde": _("Jagdbehörde"),
|
||||
"is_wildvogelhilfe_team": _("Wildvogelhilfe-Team"),
|
||||
}
|
||||
help_texts = {
|
||||
"is_naturschutzbehoerde": _("Diese Adresse für Naturschutzbehörden-Benachrichtigungen verwenden"),
|
||||
"is_jagdbehoerde": _("Diese Adresse für Jagdbehörden-Benachrichtigungen verwenden"),
|
||||
"is_wildvogelhilfe_team": _("Diese Adresse für Wildvogelhilfe-Team-Benachrichtigungen verwenden"),
|
||||
}
|
||||
widgets = {
|
||||
"email_address": forms.EmailInput(attrs={"class": "form-control"}),
|
||||
}
|
28
app/sendemail/migrations/0002_add_notification_categories.py
Normal file
28
app/sendemail/migrations/0002_add_notification_categories.py
Normal file
|
@ -0,0 +1,28 @@
|
|||
# Generated manually for notification categories
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('sendemail', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='emailadress',
|
||||
name='is_naturschutzbehoerde',
|
||||
field=models.BooleanField(default=False, verbose_name='Naturschutzbehörde'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='emailadress',
|
||||
name='is_jagdbehoerde',
|
||||
field=models.BooleanField(default=False, verbose_name='Jagdbehörde'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='emailadress',
|
||||
name='is_wildvogelhilfe_team',
|
||||
field=models.BooleanField(default=False, verbose_name='Wildvogelhilfe-Team'),
|
||||
),
|
||||
]
|
|
@ -0,0 +1,23 @@
|
|||
# Generated by Django 5.2.2 on 2025-06-10 06:28
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('sendemail', '0002_add_notification_categories'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='emailadress',
|
||||
name='is_naturschutzbehoerde',
|
||||
field=models.BooleanField(default=True, verbose_name='Naturschutzbehörde'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='emailadress',
|
||||
name='is_wildvogelhilfe_team',
|
||||
field=models.BooleanField(default=True, verbose_name='Wildvogelhilfe-Team'),
|
||||
),
|
||||
]
|
|
@ -14,6 +14,20 @@ class Emailadress(models.Model):
|
|||
on_delete=models.CASCADE,
|
||||
verbose_name=_("Benutzer"),
|
||||
)
|
||||
|
||||
# New notification category fields
|
||||
is_naturschutzbehoerde = models.BooleanField(
|
||||
default=True,
|
||||
verbose_name=_("Naturschutzbehörde")
|
||||
)
|
||||
is_jagdbehoerde = models.BooleanField(
|
||||
default=False,
|
||||
verbose_name=_("Jagdbehörde")
|
||||
)
|
||||
is_wildvogelhilfe_team = models.BooleanField(
|
||||
default=True,
|
||||
verbose_name=_("Wildvogelhilfe-Team")
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return self.email_address
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue