| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- # Generated by Django 5.2.5 on 2025-09-09 16:48
- from django.db import migrations, models
- def get_active(apps, schema_editor):
- from django.core.cache import cache
- ConfigRevision = apps.get_model('core', 'ConfigRevision')
- version = None
- revision = None
- # Try and get the latest version from cache
- try:
- version = cache.get('config_version')
- except Exception:
- pass
- # If there is a version in cache, attempt to set revision to the current version from cache
- # If the version in cache does not exist or there is no version, try the lastest revision in the database
- if not version or (version and not (revision := ConfigRevision.objects.filter(pk=version).first())):
- revision = ConfigRevision.objects.order_by('-created').first()
- # If there is a revision set, set the active revision
- if revision:
- revision.active = True
- revision.save()
- class Migration(migrations.Migration):
- dependencies = [
- ('core', '0018_concrete_objecttype'),
- ]
- operations = [
- migrations.AddField(
- model_name='configrevision',
- name='active',
- field=models.BooleanField(default=False),
- ),
- migrations.RunPython(code=get_active, reverse_code=migrations.RunPython.noop),
- migrations.AddConstraint(
- model_name='configrevision',
- constraint=models.UniqueConstraint(
- condition=models.Q(('active', True)), fields=('active',), name='unique_active_config_revision'
- ),
- ),
- ]
|