From 380f025ca13e0419176709276cf5e9087407f254 Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Tue, 6 Nov 2007 03:48:50 +0000 Subject: [PATCH] Rationalize: can now update aggregate values (persons, addresses) --- PLC/Methods/UpdateSite.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/PLC/Methods/UpdateSite.py b/PLC/Methods/UpdateSite.py index 03b1e13..6a33c5e 100644 --- a/PLC/Methods/UpdateSite.py +++ b/PLC/Methods/UpdateSite.py @@ -4,10 +4,12 @@ from PLC.Parameter import Parameter, Mixed from PLC.Sites import Site, Sites from PLC.Auth import Auth +related_fields = Site.related_fields.keys() can_update = lambda (field, value): field in \ ['name', 'abbreviated_name', 'login_base', 'is_public', 'latitude', 'longitude', 'url', - 'max_slices', 'max_slivers', 'enabled', 'ext_consortium_id'] + 'max_slices', 'max_slivers', 'enabled', 'ext_consortium_id'] + \ + related_fields class UpdateSite(Method): """ @@ -22,7 +24,7 @@ class UpdateSite(Method): roles = ['admin', 'pi'] - site_fields = dict(filter(can_update, Site.fields.items())) + site_fields = dict(filter(can_update, Site.fields.items() + Site.related_fields.items())) accepts = [ Auth(), @@ -59,6 +61,12 @@ class UpdateSite(Method): if key in site_fields: del site_fields[key] + # Make requested associations + for field in related_fields: + if field in site_fields: + site.associate(auth, field, site_fields[field]) + site_fields.pop(field) + site.update(site_fields) site.update_last_updated(False) site.sync() -- 2.43.0