content: # 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'
              ),
          ),
      ]
  