Module: check_mk
Branch: master
Commit: 6a9da332ff26d6b4d8367c41e2674d48512e12b0
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=6a9da332ff26d6…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Fri Jun 1 09:16:55 2012 +0200
WATO view editor: Made new strip_bad_chars function work with unicode strings
---
web/htdocs/forms.py | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/web/htdocs/forms.py b/web/htdocs/forms.py
index 8151ea9..26b3f5d 100644
--- a/web/htdocs/forms.py
+++ b/web/htdocs/forms.py
@@ -98,7 +98,19 @@ def edit_dictionary(entries, value, focus=None, hover_help=True, validate=None,
# New functions for painting forms
def strip_bad_chars(x):
- return "".join([c for c in x if c > ' ' and c < 'z']).translate(None, "'&;<>\"")
+ s = "".join([c for c in x if c > ' ' and c < 'z'])
+
+ if type(s) == unicode:
+ return s.translate({
+ ord(u"'"): None,
+ ord(u"&"): None,
+ ord(u";"): None,
+ ord(u"<"): None,
+ ord(u">"): None,
+ ord(u"\""): None,
+ })
+ else:
+ return s.translate(None, u"'&;<>\"")
def header(title, isopen = True, table_id = ""):
global g_header_open
Module: check_mk
Branch: master
Commit: 07aa8744c07c9963fed4d1646126f7e758ded8f3
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=07aa8744c07c99…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Wed May 30 12:05:24 2012 +0200
ValueSpec Dropdown: allow dynamic choices
---
web/htdocs/valuespec.py | 23 ++++++++++++++++-------
1 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/web/htdocs/valuespec.py b/web/htdocs/valuespec.py
index 12635c5..5ee565e 100644
--- a/web/htdocs/valuespec.py
+++ b/web/htdocs/valuespec.py
@@ -725,6 +725,9 @@ class Checkbox(ValueSpec):
# a choices name.
# Note: The list of choices may contain 2-tuples or 3-tuples.
# The format is (value, text {, icon} )
+# choices may also be a function that returns - when called
+# wihtout arguments - such a tuple list. That way the choices
+# can by dynamically computed
class DropdownChoice(ValueSpec):
def __init__(self, **kwargs):
ValueSpec.__init__(self, **kwargs)
@@ -732,8 +735,14 @@ class DropdownChoice(ValueSpec):
self._help_separator = kwargs.get("help_separator")
self._label = kwargs.get("label")
+ def choices(self):
+ if type(self._choices) == list:
+ return self._choices
+ else:
+ return self._choices()
+
def canonical_value(self):
- return self._choices[0][0]
+ return self.choices()[0][0]
def render_input(self, varprefix, value):
if self._label:
@@ -741,7 +750,7 @@ class DropdownChoice(ValueSpec):
# Convert values from choices to keys
defval = "0"
options = []
- for n, entry in enumerate(self._choices):
+ for n, entry in enumerate(self.choices()):
options.append((str(n),) + entry[1:])
if entry[0] == value:
defval = str(n)
@@ -751,7 +760,7 @@ class DropdownChoice(ValueSpec):
html.select(varprefix, options, defval)
def value_to_text(self, value):
- for entry in self._choices:
+ for entry in self.choices():
val, title = entry[:2]
if value == val:
if self._help_separator:
@@ -761,18 +770,18 @@ class DropdownChoice(ValueSpec):
def from_html_vars(self, varprefix):
sel = html.var(varprefix)
- for n, entry in enumerate(self._choices):
+ for n, entry in enumerate(self.choices()):
val = entry[0]
if sel == str(n):
return val
- return self._choices[0][0] # can only happen if user garbled URL
+ return self.choices()[0][0] # can only happen if user garbled URL
def validate_datatype(self, value, varprefix):
- for val, title in self._choices:
+ for val, title in self.choices():
if val == value:
return
raise MKUserError(varprefix, _("Invalid value %s, must be in %s") %
- ", ".join([v for (v,t) in self._choices]))
+ ", ".join([v for (v,t) in self.choices()]))
# Special conveniance variant for monitoring states
Module: check_mk
Branch: master
Commit: ffd1a69958f188ef1ac78b0df7a37fa59b02c5d3
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=ffd1a69958f188…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Wed May 30 10:25:23 2012 +0200
Updated bug entries #0761
---
.bugs/761 | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/.bugs/761 b/.bugs/761
new file mode 100644
index 0000000..c3c2287
--- /dev/null
+++ b/.bugs/761
@@ -0,0 +1,11 @@
+Title: ValueSpec ListOf breaks during user input error
+Component: multisite
+State: open
+Date: 2012-05-30 10:23:56
+Targetversion: 1.2.0
+Class: bug
+
+When an element of a ListOf() raises a user validation
+error then the total ListOf() seems to fall back to its
+original value - for example I've added a value and then
+changed its position to top and then saved.