# HG changeset patch # User Edouard Tisserant # Date 1592224078 -7200 # Node ID 4bc60e426dd6b3e5f4449854e4a8ad5eb02a3e20 # Parent 30493ff3a23a9cf7ebac1259f03bc9888078230d Runtime extrension web settings: distinguish display string and token when calling NS.newExtensionSetting, thus allowing meaningful name to be displayed instead of an id. diff -r 30493ff3a23a -r 4bc60e426dd6 bacnet/web_settings.py --- a/bacnet/web_settings.py Fri Jun 12 14:40:50 2020 +0200 +++ b/bacnet/web_settings.py Mon Jun 15 14:27:58 2020 +0200 @@ -346,7 +346,7 @@ if _CheckConfiguration(_SavedConfiguration): _SetPLCConfiguration(_SavedConfiguration) - WebSettings = NS.newExtensionSetting("BACnet") + WebSettings = NS.newExtensionSetting("BACnet extension", "bacnet_token") # Configure the web interface to include the BACnet config parameters WebSettings.addSettings( @@ -384,7 +384,7 @@ #PLCObject.LogMessage("BACnet web server extension::OnUnLoadPLC() Called...") - NS.removeExtensionSetting("BACnet") + NS.removeExtensionSetting("bacnet_token") GetParamFuncs = {} SetParamFuncs = {} diff -r 30493ff3a23a -r 4bc60e426dd6 modbus/web_settings.py --- a/modbus/web_settings.py Fri Jun 12 14:40:50 2020 +0200 +++ b/modbus/web_settings.py Mon Jun 15 14:27:58 2020 +0200 @@ -488,7 +488,7 @@ def __OnButtonSave(**kwargs): OnButtonSave(WebNode_id=WebNode_id, **kwargs) - WebSettings = NS.newExtensionSetting("Modbus "+config_hash) + WebSettings = NS.newExtensionSetting("Modbus #"+ str(WebNode_id), config_hash) WebSettings.addSettings( "ModbusConfigParm" + config_hash, # name (internal, may not contain spaces, ...) @@ -605,10 +605,10 @@ # Delete the Modbus specific web interface extensions # (Safe to ask to delete, even if it has not been added!) - global _WebNodeList - for WebNode_entry in _WebNodeList: + global _WebNodeList + for index, WebNode_entry in enumerate(_WebNodeList): config_hash = WebNode_entry["config_hash"] - NS.removeExtensionSetting("Modbus "+config_hash) + NS.removeExtensionSetting(config_hash) # Dele all entries... _WebNodeList = [] diff -r 30493ff3a23a -r 4bc60e426dd6 runtime/NevowServer.py --- a/runtime/NevowServer.py Fri Jun 12 14:40:50 2020 +0200 +++ b/runtime/NevowServer.py Mon Jun 15 14:27:58 2020 +0200 @@ -185,15 +185,15 @@ ConfigurableSettings = ConfigurableBindings() -def newExtensionSetting(ext_name): +def newExtensionSetting(display, token): global extensions_settings_od settings = ConfigurableBindings() - extensions_settings_od[ext_name] = settings + extensions_settings_od[token] = (settings, display) return settings -def removeExtensionSetting(ext_name): +def removeExtensionSetting(token): global extensions_settings_od - extensions_settings_od.pop(ext_name) + extensions_settings_od.pop(token) class ISettings(annotate.TypedInterface): platform = annotate.String(label=_("Platform"), @@ -236,9 +236,10 @@ def __getattr__(self, name): global extensions_settings_od if name.startswith('configurable_'): - ext_name = name[13:] + token = name[13:] def configurable_something(ctx): - return extensions_settings_od[ext_name] + settings, _display = extensions_settings_od[token] + return settings return configurable_something raise AttributeError @@ -248,8 +249,9 @@ """ global extensions_settings_od res = [] - for ext_name in extensions_settings_od: - res += [tags.h2[ext_name], webform.renderForms(ext_name)] + for token in extensions_settings_od: + _settings, display = extensions_settings_od[token] + res += [tags.h2[display], webform.renderForms(token)] return res docFactory = loaders.stan([tags.html[