Skip to content

Commit c482d17

Browse files
authored
fix(gh-931): migrate fails on fresh cms (#932)
1 parent 9e92aca commit c482d17

File tree

4 files changed

+58
-39
lines changed

4 files changed

+58
-39
lines changed

taccsite_cms/__init__.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
# from django.conf import settings
2-
#
3-
# if settings.CONSOLE_LOG_ENABLED:
4-
# print("--> Parsing FILE: cms-template-setup01/taccsite_cms/__init__.py")
1+
from .apps import TaccsiteCmsConfig
52

6-
# print("--> Parsing FILE: cms-template-setup01/taccsite_cms/__init__.py")
3+
default_app_config = f'{TaccsiteCmsConfig.name}.apps.TaccsiteCmsConfig'

taccsite_cms/apps.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import logging
2+
from django.apps import AppConfig
3+
from django.db.models.signals import post_migrate
4+
5+
logger = logging.getLogger(f"portal.{__name__}")
6+
7+
class TaccsiteCmsConfig(AppConfig):
8+
name = 'taccsite_cms'
9+
verbose_name = 'TACC CMS'
10+
11+
def ready(self):
12+
post_migrate.connect(self.create_groups, sender=self)
13+
14+
def create_groups(self, sender, **kwargs):
15+
from django.contrib.auth.models import Group
16+
17+
from .management.commands.group_perms.text_editor_basic import \
18+
set_group_perms as add_text_editor_basic, GROUP_NAME
19+
from .management.commands.group_perms.text_editor_advanced import \
20+
set_group_perms as add_text_editor_advanced
21+
from .management.commands.group_perms.media_editor_basic import \
22+
set_group_perms as add_media_editor_basic
23+
from .management.commands.group_perms.media_editor_advanced import \
24+
set_group_perms as add_media_editor_advanced
25+
from .management.commands.group_perms.grid_editor_basic import \
26+
set_group_perms as add_grid_editor_basic
27+
from .management.commands.group_perms.grid_editor_advanced import \
28+
set_group_perms as add_grid_editor_advanced
29+
30+
groups_exist = Group.objects.filter(name=GROUP_NAME).exists()
31+
action = 'Updating' if groups_exist else 'Creating'
32+
33+
logger.info(f'{action} CMS groups via post_migrate signal')
34+
try:
35+
add_text_editor_basic()
36+
add_text_editor_advanced()
37+
add_media_editor_basic()
38+
add_media_editor_advanced()
39+
add_grid_editor_basic()
40+
add_grid_editor_advanced()
41+
logger.info(f'Finished {action.lower()} CMS groups')
42+
except Exception as e:
43+
logger.error(f'Error creating CMS groups: {e}', exc_info=True)
Lines changed: 5 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,13 @@
11
from django.db import migrations
22

3-
def add_groups(apps, schema_editor):
4-
from taccsite_cms.management.commands.group_perms.text_editor_basic import set_group_perms as add_text_editor_basic
5-
from taccsite_cms.management.commands.group_perms.text_editor_advanced import set_group_perms as add_text_editor_advanced
6-
from taccsite_cms.management.commands.group_perms.media_editor_basic import set_group_perms as add_media_editor_basic
7-
from taccsite_cms.management.commands.group_perms.media_editor_advanced import set_group_perms as add_media_editor_advanced
8-
from taccsite_cms.management.commands.group_perms.grid_editor_basic import set_group_perms as add_grid_editor_basic
9-
from taccsite_cms.management.commands.group_perms.grid_editor_advanced import set_group_perms as add_grid_editor_advanced
3+
# No-op since group creation became handled by post_migrate signal (see apps.py)
104

11-
add_text_editor_basic()
12-
add_text_editor_advanced()
13-
add_media_editor_basic()
14-
add_media_editor_advanced()
15-
add_grid_editor_basic()
16-
add_grid_editor_advanced()
5+
# Retained for backwards-compatibility / migration history integrity
176

18-
def remove_groups(apps, schema_editor):
19-
from taccsite_cms.management.commands.group_perms.text_editor_basic import GROUP_NAME as text_editor_basic_name
20-
from taccsite_cms.management.commands.group_perms.text_editor_advanced import GROUP_NAME as text_editor_advanced_name
21-
from taccsite_cms.management.commands.group_perms.media_editor_basic import GROUP_NAME as media_editor_basic_name
22-
from taccsite_cms.management.commands.group_perms.media_editor_advanced import GROUP_NAME as media_editor_advanced_name
23-
from taccsite_cms.management.commands.group_perms.grid_editor_basic import GROUP_NAME as grid_editor_basic_name
24-
from taccsite_cms.management.commands.group_perms.grid_editor_advanced import GROUP_NAME as grid_editor_advanced_name
25-
26-
Group = apps.get_model('auth', 'Group')
27-
28-
group_names = [
29-
text_editor_basic_name,
30-
text_editor_advanced_name,
31-
media_editor_basic_name,
32-
media_editor_advanced_name,
33-
grid_editor_basic_name,
34-
grid_editor_advanced_name,
35-
]
36-
37-
Group.objects.filter(name__in=group_names).delete()
7+
def noop(apps, schema_editor):
8+
pass
389

3910
class Migration(migrations.Migration):
4011
operations = [
41-
migrations.RunPython(add_groups, reverse_code=remove_groups),
12+
migrations.RunPython(noop),
4213
]

taccsite_cms/models.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from django.db import models
2+
3+
class DummyModel(models.Model):
4+
"""
5+
Exists solely to trigger Django to send post_migrate signal (see apps.py)
6+
"""
7+
class Meta:
8+
app_label = 'taccsite_cms'

0 commit comments

Comments
 (0)