diff --git a/apps/orgs/hands.py b/apps/orgs/hands.py new file mode 100644 index 000000000..f3dbd3211 --- /dev/null +++ b/apps/orgs/hands.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# +from assets.models import Node +from orgs.utils import set_current_org, current_org diff --git a/apps/orgs/signals_handler.py b/apps/orgs/signals_handler.py index cd60777e8..9427649b2 100644 --- a/apps/orgs/signals_handler.py +++ b/apps/orgs/signals_handler.py @@ -5,9 +5,19 @@ from django.db.models.signals import post_save from django.dispatch import receiver from .models import Organization +from .hands import set_current_org, current_org, Node @receiver(post_save, sender=Organization) -def on_org_update(sender, instance=None, created=False, **kwargs): +def on_org_create_or_update(sender, instance=None, created=False, **kwargs): + if instance: + old_org = current_org + set_current_org(instance) + node_root = Node.root() + if node_root.value != instance.name: + node_root.value = instance.name + node_root.save() + set_current_org(old_org) + if instance and not created: instance.expire_cache()