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.db.models.signals import post_save
|
||||||
from django.contrib.auth.models import Group
|
from django.contrib.auth.models import Group
|
||||||
from django.contrib.auth.models import AbstractUser
|
from django.contrib.auth.models import AbstractUser
|
||||||
|
from django.core.exceptions import ValidationError
|
||||||
|
|
||||||
from .tools import misc, geo
|
from .tools import misc, geo
|
||||||
from notfellchen.settings import MEDIA_URL
|
from notfellchen.settings import MEDIA_URL
|
||||||
@@ -131,7 +132,7 @@ class RescueOrganization(models.Model):
|
|||||||
default=AllowUseOfMaterialsChices.USE_MATERIALS_NOT_ASKED,
|
default=AllowUseOfMaterialsChices.USE_MATERIALS_NOT_ASKED,
|
||||||
choices=AllowUseOfMaterialsChices.choices,
|
choices=AllowUseOfMaterialsChices.choices,
|
||||||
verbose_name=_('Erlaubt Nutzung von Inhalten'))
|
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)
|
location = models.ForeignKey(Location, on_delete=models.PROTECT, blank=True, null=True)
|
||||||
instagram = models.URLField(null=True, blank=True, verbose_name=_('Instagram Profil'))
|
instagram = models.URLField(null=True, blank=True, verbose_name=_('Instagram Profil'))
|
||||||
facebook = models.URLField(null=True, blank=True, verbose_name=_('Facebook Profil'))
|
facebook = models.URLField(null=True, blank=True, verbose_name=_('Facebook Profil'))
|
||||||
@@ -153,6 +154,11 @@ class RescueOrganization(models.Model):
|
|||||||
class Meta:
|
class Meta:
|
||||||
unique_together = ('external_object_identifier', 'external_source_identifier',)
|
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):
|
def get_absolute_url(self):
|
||||||
return reverse("rescue-organization-detail", args=[str(self.pk)])
|
return reverse("rescue-organization-detail", args=[str(self.pk)])
|
||||||
|
|
||||||
@@ -308,7 +314,8 @@ class AdoptionNotice(models.Model):
|
|||||||
verbose_name=_('Organisation'))
|
verbose_name=_('Organisation'))
|
||||||
further_information = models.URLField(null=True, blank=True,
|
further_information = models.URLField(null=True, blank=True,
|
||||||
verbose_name=_('Link zu mehr Informationen'),
|
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'))
|
group_only = models.BooleanField(default=False, verbose_name=_('Ausschließlich Gruppenadoption'))
|
||||||
photos = models.ManyToManyField(Image, blank=True)
|
photos = models.ManyToManyField(Image, blank=True)
|
||||||
location_string = models.CharField(max_length=200, verbose_name=_("Ortsangabe"))
|
location_string = models.CharField(max_length=200, verbose_name=_("Ortsangabe"))
|
||||||
|
Reference in New Issue
Block a user