From f024fc93694411bfe2d434287b39a69af290e659 Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Sun, 11 Jan 2015 13:55:23 -0500 Subject: [PATCH] added Controller model policy --- .../model_policies/model_policy_Controller.py | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 planetstack/model_policies/model_policy_Controller.py diff --git a/planetstack/model_policies/model_policy_Controller.py b/planetstack/model_policies/model_policy_Controller.py new file mode 100644 index 0000000..9415bb5 --- /dev/null +++ b/planetstack/model_policies/model_policy_Controller.py @@ -0,0 +1,41 @@ + +def handle(controller): + from core.models import Controller, Site, ControllerSite, Slice, ControllerSlice, User, ControllerUser + from collections import defaultdict + # relations for all sites + ctrls_by_site = defaultdict(list) + ctrl_sites = ControllerSite.objects.all() + for ctrl_site in ctrl_sites: + ctrls_by_site[ctrl_site.site].append(ctrl_site.controller) + sites = Site.objects.all() + for site in sites: + if site not in ctrls_by_site or \ + controller not in ctrls_by_site[site]: + controller_site = ControllerSite(controller=controller, site=site) + controller_site.save() + # relations for all slices + ctrls_by_slice = defaultdict(list) + ctrl_slices = ControllerSlice.objects.all() + for ctrl_slice in ctrl_slices: + ctrls_by_slice[ctrl_slice.slice].append(ctrl_slice.controller) + slices = Slice.objects.all() + for slice in slices: + if slice not in ctrls_by_slice or \ + controller not in ctrls_by_slice: + controller_slice = ControllerSlice(controller=controller, slice=slice) + controller_slice.save() + # relations for all users + ctrls_by_user = defaultdict(list) + ctrl_users = ControllerUser.objects.all() + for ctrl_user in ctrl_users: + ctrls_by_user[ctrl_user.user].append(ctrl_user.controller) + users = User.objects.all() + for user in users: + if user not in ctrls_by_user or \ + controller not in ctrls_by_user[user]: + controller_user = ControllerUser(controller=controller, user=user) + controller_user.save() + + + + -- 2.43.0