diff --git a/src/agenda_culturel/filters.py b/src/agenda_culturel/filters.py index be97089..7dc05fd 100644 --- a/src/agenda_culturel/filters.py +++ b/src/agenda_culturel/filters.py @@ -63,6 +63,8 @@ class EventFilter(django_filters.FilterSet): label="À proximité de", method="no_filter", empty_label=_("Select a location"), + field_name='attr__slug', + to_field_name='slug', queryset=ReferenceLocation.objects.filter(main__gt=0).order_by("-main", "name__unaccent") ) diff --git a/src/agenda_culturel/migrations/0151_referencelocation_slug.py b/src/agenda_culturel/migrations/0151_referencelocation_slug.py new file mode 100644 index 0000000..8741443 --- /dev/null +++ b/src/agenda_culturel/migrations/0151_referencelocation_slug.py @@ -0,0 +1,28 @@ +# Generated by Django 4.2.19 on 2025-03-02 12:40 + +import autoslug.fields +from django.db import migrations + +def migrate_data_slug_forward(apps, schema_editor): + ReferenceLocation = apps.get_model("agenda_culturel", "ReferenceLocation") + + for instance in ReferenceLocation.objects.all(): + print("Generating slug for %s"%instance) + instance.save() # Will trigger slug update + +def migrate_data_slug_backward(apps, schema_editor): + pass + +class Migration(migrations.Migration): + + dependencies = [ + ('agenda_culturel', '0001_squashed_0150_alter_event_local_image'), + ] + + operations = [ + migrations.AddField( + model_name='referencelocation', + name='slug', + field=autoslug.fields.AutoSlugField(default=None, editable=False, null=True, populate_from='name', unique=True), + ), + ] diff --git a/src/agenda_culturel/models.py b/src/agenda_culturel/models.py index a3c8129..c975ff3 100644 --- a/src/agenda_culturel/models.py +++ b/src/agenda_culturel/models.py @@ -452,6 +452,8 @@ class ReferenceLocation(models.Model): default=None ) + slug = AutoSlugField(null=True, default=None, unique=True, populate_from='name') + class Meta: verbose_name = _("Reference location") verbose_name_plural = _("Reference locations")