summaryrefslogtreecommitdiff
path: root/Mailman/Cgi/admin.py
diff options
context:
space:
mode:
authorbwarsaw2001-12-27 07:01:59 +0000
committerbwarsaw2001-12-27 07:01:59 +0000
commitce9c49181d77abd9076bd1192200ca854a5befdf (patch)
treeba72602d0efc17e482270fd7668376ca5ea4291c /Mailman/Cgi/admin.py
parentd562f525684ea70ae6a2c367c1731dddc08221aa (diff)
downloadmailman-ce9c49181d77abd9076bd1192200ca854a5befdf.tar.gz
mailman-ce9c49181d77abd9076bd1192200ca854a5befdf.tar.zst
mailman-ce9c49181d77abd9076bd1192200ca854a5befdf.zip
Diffstat (limited to 'Mailman/Cgi/admin.py')
-rw-r--r--Mailman/Cgi/admin.py29
1 files changed, 16 insertions, 13 deletions
diff --git a/Mailman/Cgi/admin.py b/Mailman/Cgi/admin.py
index 5d3d231c2..4f7a2767c 100644
--- a/Mailman/Cgi/admin.py
+++ b/Mailman/Cgi/admin.py
@@ -574,7 +574,7 @@ def add_options_table_item(mlist, category, subcat, table, item, detailsp=1):
elaboration = descr
descr = get_item_gui_description(mlist, category, subcat,
varname, descr, detailsp)
- val = get_item_gui_value(mlist, kind, varname, params)
+ val = get_item_gui_value(mlist, category, kind, varname, params)
table.AddRow([descr, val])
table.AddCellInfo(table.GetCurrentRowIndex(), 1,
bgcolor=mm_cfg.WEB_ADMINITEM_COLOR)
@@ -604,8 +604,17 @@ def get_item_characteristics(record):
-def get_item_gui_value(mlist, kind, varname, params):
+def get_item_gui_value(mlist, category, kind, varname, params):
"""Return a representation of an item's settings."""
+ # Give the category a chance to return the value for the variable
+ value = None
+ label, gui = mlist.GetConfigCategories()[category]
+ if hasattr(gui, 'GetValue'):
+ missing = []
+ value = gui.GetValue(mlist, kind, varname, params)
+ if value is None:
+ value = getattr(mlist, varname)
+ # Now create the widget for this value
if kind == mm_cfg.Radio or kind == mm_cfg.Toggle:
# If we are returning the option for subscribe policy and this site
# doesn't allow open subscribes, then we have to alter the value of
@@ -618,28 +627,25 @@ def get_item_gui_value(mlist, kind, varname, params):
if varname[0] == '_':
checked = 0
else:
- checked = getattr(mlist, varname)
+ checked = value
if varname == 'subscribe_policy' and not mm_cfg.ALLOW_OPEN_SUBSCRIBE:
checked = checked - 1
return RadioButtonArray(varname, params, checked)
elif (kind == mm_cfg.String or kind == mm_cfg.Email or
kind == mm_cfg.Host or kind == mm_cfg.Number):
- return TextBox(varname, getattr(mlist, varname), params)
+ return TextBox(varname, value, params)
elif kind == mm_cfg.Text:
if params:
r, c = params
else:
r, c = None, None
- val = getattr(mlist, varname)
- if not val:
- val = ''
- return TextArea(varname, val, r, c)
+ return TextArea(varname, value or '', r, c)
elif kind in (mm_cfg.EmailList, mm_cfg.EmailListEx):
if params:
r, c = params
else:
r, c = None, None
- res = NL.join(getattr(mlist, varname))
+ res = NL.join(value)
return TextArea(varname, res, r, c, wrap='off')
elif kind == mm_cfg.FileUpload:
# like a text area, but also with uploading
@@ -647,12 +653,9 @@ def get_item_gui_value(mlist, kind, varname, params):
r, c = params
else:
r, c = None, None
- val = getattr(mlist, varname)
- if not val:
- val = ''
container = Container()
container.AddItem(_('<em>Enter the text below, or...</em><br>'))
- container.AddItem(TextArea(varname, val, r, c))
+ container.AddItem(TextArea(varname, value or '', r, c))
container.AddItem(_('<br><em>...specify a file to upload</em><br>'))
container.AddItem(FileUpload(varname+'_upload', r, c))
return container