commit e3800731ce94a483c57c11b65911c1100a936cf3
Author: Yoann Vandoorselaere <[email protected]>
Date: Fri May 22 13:03:45 2009 +0200
Implement getDefaultValues()
This method can be used to retrieve a dictionary of default values
used by a parameters class instance. The returned values usually
comes from the default parameter declaration, or from the database
if the users modified some parameters settings.
========================================
prewikka/view.py | 32 ++++++++++++++++++++------------
1 files changed, 20 insertions(+), 12 deletions(-)
========================================
diff --git a/prewikka/view.py b/prewikka/view.py
index 0f44e2e..40d0ce4 100644
--- a/prewikka/view.py
+++ b/prewikka/view.py
@@ -48,6 +48,7 @@ class Parameters(dict):
def __init__(self, *args, **kwargs):
apply(dict.__init__, (self, ) + args, kwargs)
+ self._default = {}
self._parameters = { }
self.register()
self.optional("_error_back", str)
@@ -61,6 +62,9 @@ class Parameters(dict):
self._parameters[name] = { "type": type, "mandatory": True, "save": False }
def optional(self, name, type, default=None, save=False):
+ if default is not None:
+ self._default[name] = default
+
self._parameters[name] = { "type": type, "mandatory": False, "default": default, "save": save }
def _parseValue(self, name, value):
@@ -101,27 +105,31 @@ class Parameters(dict):
# - Load last user value for parameter.
for name in self._parameters.keys():
- if self.has_key(name):
- continue
-
- if self._parameters[name]["mandatory"]:
- raise MissingParameterError(name)
-
- elif self._parameters[name]["default"] != None:
- self[name] = self._parameters[name]["default"]
+ got_param = self.has_key(name)
+ if not got_param:
+ if self._parameters[name]["mandatory"]:
+ raise MissingParameterError(name)
- if self._parameters[name]["save"] and do_load:
- try:
- self[name]= self._parseValue(name, user.getConfigValue(view, name))
+ elif self._parameters[name]["default"] != None:
+ self[name] = self._parameters[name]["default"]
+ if self._parameters[name]["save"]:
+ try: value = self._parseValue(name, user.getConfigValue(view, name))
except KeyError:
- pass
+ continue
+
+ self._default[name] = value
+ if do_load and not got_param:
+ self[name] = self._default[name]
try: self.pop("_save")
except: pass
return do_load
+ def getDefaultValues(self):
+ return self._default
+
def __add__(self, src):
dst = copy(self)
dst.update(src)
_______________________________________________
Prelude-cvslog site list
[email protected]
http://lists.prelude-ids.org/mailman/listinfo/prelude-cvslog
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.