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'): |
|
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 |
|
24 | 31 |
if event.slug and not Event.objects.filter(slug=event.slug).exclude(pk=event.pk).exists(): |
25 | 32 |
continue |
26 | 33 |
event.slug = generate_slug(event) |
27 |
- |