feat: make location string optional but enforce either location or location string
This commit is contained in:
		@@ -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'),
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
@@ -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"))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user