- new_values = dict()
-
- # Get the defaults
- options = self._po.get_config_desc()
- if options is None:
- options = dict()
-
- for key, value in kwargs.iteritems():
- if key in options:
- if value != self._po.get_config_value(key):
- cherrypy.log.error("Storing [%s]: %s = %s" %
- (self._po.name, key, value))
- new_values[key] = value
-
- if len(new_values) != 0:
+ new_db_values = dict()
+
+ conf = self._po.get_config_obj()
+
+ for name, option in conf.iteritems():
+ if name in kwargs:
+ value = kwargs[name]
+ if isinstance(option, pconfig.List):
+ value = [x.strip() for x in value.split('\n')]
+ elif isinstance(option, pconfig.Condition):
+ value = True
+ else:
+ if isinstance(option, pconfig.Condition):
+ value = False
+ elif isinstance(option, pconfig.Choice):
+ value = list()
+ for a in option.get_allowed():
+ aname = '%s_%s' % (name, a)
+ if aname in kwargs:
+ value.append(a)
+ else:
+ continue
+
+ if value != option.get_value():
+ cherrypy.log.error("Storing [%s]: %s = %s" %
+ (self._po.name, name, value))
+ option.set_value(value)
+ new_db_values[name] = option.export_value()
+
+ if len(new_db_values) != 0: