remove unneccessary relation menu bird to mail
This commit is contained in:
parent
29ae840701
commit
6f06f8a3ed
7 changed files with 20 additions and 41 deletions
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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()
|
||||||
|
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -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")
|
||||||
|
|
16
app/sendemail/migrations/0004_delete_birdemail.py
Normal file
16
app/sendemail/migrations/0004_delete_birdemail.py
Normal 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',
|
||||||
|
),
|
||||||
|
]
|
|
@ -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")
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue