add --nomodelpolicy option for loading fixtures
[plstackapi.git] / planetstack / model_policy.py
1 from django.db.models.signals import post_save
2 from django.dispatch import receiver
3 import pdb
4 from core.models import *
5 import model_policies
6
7 modelPolicyEnabled = True
8
9 def EnableModelPolicy(x):
10     global modelPolicyEnabled
11     modelPolicyEnabled = x
12
13 @receiver(post_save)
14 def post_save_handler(sender, instance, **kwargs):
15         sender_name = sender.__name__
16         policy_name = 'model_policy_%s'%sender_name
17
18         if not modelPolicyEnabled:
19             return
20         
21         if (not kwargs['update_fields']):
22                 try:
23                         policy_handler = getattr(model_policies, policy_name, None)
24                         if policy_handler is not None:
25                                 policy_handler.handle(instance)
26                 except:
27                         pass