0001-agendas-fix-event-slug-migration-45006.patch
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 |
continue |
|
25 |
for event in Event.objects.filter(agenda__kind='meetings', slug__isnull=True): |
|
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').filter(slug__isnull=True).order_by('-pk'): |
|
26 | 30 |
event.slug = generate_slug(event) |
27 | 31 |
event.save(update_fields=['slug']) |
28 | 32 | |
29 |
- |