diff --git a/src/fellchensammlung/migrations/0047_alter_adoptionnotice_further_information_and_more.py b/src/fellchensammlung/migrations/0047_alter_adoptionnotice_further_information_and_more.py new file mode 100644 index 0000000..9fe418a --- /dev/null +++ b/src/fellchensammlung/migrations/0047_alter_adoptionnotice_further_information_and_more.py @@ -0,0 +1,28 @@ +# Generated by Django 5.2.1 on 2025-05-23 16:07 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('fellchensammlung', '0046_alter_importantlocation_location'), + ] + + operations = [ + migrations.AlterField( + model_name='adoptionnotice', + name='further_information', + field=models.URLField(blank=True, help_text='Verlinke hier die Quelle der Vermittlung (z.B. die Website des Tierheims', null=True, verbose_name='Link zu mehr Informationen'), + ), + migrations.AlterField( + model_name='adoptionnotice', + name='name', + field=models.CharField(max_length=200, verbose_name='Titel der Vermittlung'), + ), + migrations.AlterField( + model_name='rescueorganization', + name='location_string', + field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Ort der Organisation'), + ), + ] diff --git a/src/fellchensammlung/models.py b/src/fellchensammlung/models.py index 1976732..cf3803f 100644 --- a/src/fellchensammlung/models.py +++ b/src/fellchensammlung/models.py @@ -11,6 +11,7 @@ from django.dispatch import receiver from django.db.models.signals import post_save from django.contrib.auth.models import Group from django.contrib.auth.models import AbstractUser +from django.core.exceptions import ValidationError from .tools import misc, geo from notfellchen.settings import MEDIA_URL @@ -131,7 +132,7 @@ class RescueOrganization(models.Model): default=AllowUseOfMaterialsChices.USE_MATERIALS_NOT_ASKED, choices=AllowUseOfMaterialsChices.choices, verbose_name=_('Erlaubt Nutzung von Inhalten')) - location_string = models.CharField(max_length=200, verbose_name=_("Ort der Organisation")) + location_string = models.CharField(max_length=200, verbose_name=_("Ort der Organisation"), null=True, blank=True, ) location = models.ForeignKey(Location, on_delete=models.PROTECT, blank=True, null=True) instagram = models.URLField(null=True, blank=True, verbose_name=_('Instagram Profil')) facebook = models.URLField(null=True, blank=True, verbose_name=_('Facebook Profil')) @@ -153,6 +154,11 @@ class RescueOrganization(models.Model): class Meta: unique_together = ('external_object_identifier', 'external_source_identifier',) + def clean(self): + super().clean() + if self.location is None and self.location_string is None: + raise ValidationError(_('Location or Location String must be set')) + def get_absolute_url(self): return reverse("rescue-organization-detail", args=[str(self.pk)]) @@ -308,7 +314,8 @@ class AdoptionNotice(models.Model): verbose_name=_('Organisation')) further_information = models.URLField(null=True, blank=True, verbose_name=_('Link zu mehr Informationen'), - help_text=_("Verlinke hier die Quelle der Vermittlung (z.B. die Website des Tierheims")) + help_text=_( + "Verlinke hier die Quelle der Vermittlung (z.B. die Website des Tierheims")) group_only = models.BooleanField(default=False, verbose_name=_('Ausschließlich Gruppenadoption')) photos = models.ManyToManyField(Image, blank=True) location_string = models.CharField(max_length=200, verbose_name=_("Ortsangabe"))