remove unneccessary relation menu bird to mail

This commit is contained in:
Maximilian 2025-06-10 09:31:01 +02:00
parent 29ae840701
commit 6f06f8a3ed
7 changed files with 20 additions and 41 deletions

View file

@ -12,7 +12,6 @@ erDiagram
User ||--o{ Contact : creates User ||--o{ Contact : creates
Bird ||--o{ FallenBird : "is type of" Bird ||--o{ FallenBird : "is type of"
Bird ||--o{ BirdEmail : "has emails for"
Bird ||--o{ Costs : "can have costs" Bird ||--o{ Costs : "can have costs"
Bird }|--|| BirdStatus : "has status" Bird }|--|| BirdStatus : "has status"
Bird }|--|| Circumstance : "has circumstances" Bird }|--|| Circumstance : "has circumstances"
@ -26,8 +25,6 @@ erDiagram
ContactTag ||--o{ Contact : "categorizes" ContactTag ||--o{ Contact : "categorizes"
Emailadress ||--o{ BirdEmail : "used for birds"
User { User {
int id PK int id PK
string username string username
@ -169,12 +166,6 @@ erDiagram
boolean is_jagdbehoerde boolean is_jagdbehoerde
boolean is_wildvogelhilfe_team boolean is_wildvogelhilfe_team
} }
BirdEmail {
int id PK
int bird_id FK
int email_id FK
}
``` ```
## Tabellenbeschreibungen ## Tabellenbeschreibungen
@ -270,10 +261,7 @@ erDiagram
- Standard-Aktivierung für Naturschutz und Wildvogelhilfe - Standard-Aktivierung für Naturschutz und Wildvogelhilfe
- **Beziehungen**: Gehört zu einem `User` - **Beziehungen**: Gehört zu einem `User`
#### `BirdEmail` (Vogel-E-Mail-Verknüpfung) **Hinweis**: Das frühere `BirdEmail`-System wurde durch das direkte kategoriebasierte Benachrichtigungssystem ersetzt.
- **Zweck**: Many-to-Many Beziehung zwischen Vögeln und E-Mail-Adressen
- **Primärschlüssel**: BigInt
- **Hinweis**: Wird durch die neuen Benachrichtigungsfelder in `Bird` und `Emailadress` ersetzt
## Datenbank-Design-Prinzipien ## Datenbank-Design-Prinzipien

View file

@ -11,7 +11,7 @@ from .forms import BirdAddForm, BirdEditForm, BirdSpeciesForm
from .models import Bird, FallenBird from .models import Bird, FallenBird
from sendemail.message import messagebody from sendemail.message import messagebody
from sendemail.models import BirdEmail, Emailadress from sendemail.models import Emailadress
env = environ.Env() env = environ.Env()

View file

@ -89,7 +89,6 @@ JAZZMIN_SETTINGS = {
"contact.Contact": "fas fa-solid fa-address-card", "contact.Contact": "fas fa-solid fa-address-card",
"contact.ContactTag": "fas fa-solid fa-tags", "contact.ContactTag": "fas fa-solid fa-tags",
"sendemail.Emailadress": "fas fa-solid fa-envelope", "sendemail.Emailadress": "fas fa-solid fa-envelope",
"sendemail.BirdEmail": "fas fa-solid fa-envelope",
}, },
# Icons that are used when one is not manually specified # Icons that are used when one is not manually specified
# "default_icon_parents": "fas fa-chevron-circle-right", # "default_icon_parents": "fas fa-chevron-circle-right",

View file

@ -1,6 +1,6 @@
from django.contrib import admin from django.contrib import admin
from .models import Emailadress, BirdEmail from .models import Emailadress
@admin.register(Emailadress) @admin.register(Emailadress)
@ -23,11 +23,3 @@ class EmailaddressAdmin(admin.ModelAdmin):
if not change: # Only set user when creating new object if not change: # Only set user when creating new object
obj.user = request.user obj.user = request.user
super().save_model(request, obj, form, change) super().save_model(request, obj, form, change)
@admin.register(BirdEmail)
class BirdEmailAdmin(admin.ModelAdmin):
list_display = ["bird", "email"]
search_fields = ["bird", "email"]
list_filter = ["bird", "email"]
list_per_page = 20

View file

@ -5,4 +5,4 @@ from django.utils.translation import gettext_lazy as _
class SendemailConfig(AppConfig): class SendemailConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField" default_auto_field = "django.db.models.BigAutoField"
name = "sendemail" name = "sendemail"
verbose_name = _("Untere Naturschutzbehörde") verbose_name = _("Mail Empfänger")

View file

@ -0,0 +1,16 @@
# Generated by Django 5.2.2 on 2025-06-10 07:22
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('sendemail', '0003_alter_emailadress_is_naturschutzbehoerde_and_more'),
]
operations = [
migrations.DeleteModel(
name='BirdEmail',
),
]

View file

@ -35,19 +35,3 @@ class Emailadress(models.Model):
class Meta: class Meta:
verbose_name = _("Emailadresse") verbose_name = _("Emailadresse")
verbose_name_plural = _("Emailadressen") verbose_name_plural = _("Emailadressen")
class BirdEmail(models.Model):
bird = models.ForeignKey(
Bird, on_delete=models.CASCADE, verbose_name=_("Vogel")
)
email = models.ForeignKey(
Emailadress, on_delete=models.CASCADE, verbose_name=_("Emailadresse")
)
def __str__(self):
return f"{self.bird} - {self.email}"
class Meta:
verbose_name = _("Vogel-Email")
verbose_name_plural = _("Vogel-Emails")