Projet

Général

Profil

0001-agendas-fix-event-slug-migration-45006.patch

Lauréline Guérin, 10 juillet 2020 11:38

Télécharger (1,67 ko)

Voir les différences:

Subject: [PATCH] agendas: fix event slug migration (#45006)

 chrono/agendas/migrations/0049_event_slug.py | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)
chrono/agendas/migrations/0049_event_slug.py
1 1
# -*- coding: utf-8 -*-
2 2
from __future__ import unicode_literals
3 3

  
4
import uuid
5

  
4 6
from django.db import migrations
5 7
from django.utils.text import slugify
6 8

  
......
20 22

  
21 23
def set_slug_on_events(apps, schema_editor):
22 24
    Event = apps.get_model('agendas', 'Event')
23
    for event in Event.objects.all().order_by('-pk'):
24
        if event.slug and not Event.objects.filter(slug=event.slug).exclude(pk=event.pk).exists():
25
    for event in Event.objects.filter(agenda__kind='meetings'):
26
        # set slug on meeting events
27
        event.slug = str(uuid.uuid4())
28
        event.save(update_fields=['slug'])
29
    for event in Event.objects.exclude(agenda__kind='meetings').order_by('-pk'):
30
        # set slug on other events
31
        if (
32
            event.slug
33
            and not Event.objects.filter(slug=event.slug, agenda=event.agenda_id)
34
            .exclude(pk=event.pk)
35
            .exists()
36
        ):
25 37
            continue
26 38
        event.slug = generate_slug(event)
27 39
        event.save(update_fields=['slug'])
28
-