本文整理汇总了Python中wirecloud.commons.utils.template.TemplateParser.get_resource_type方法的典型用法代码示例。如果您正苦于以下问题:Python TemplateParser.get_resource_type方法的具体用法?Python TemplateParser.get_resource_type怎么用?Python TemplateParser.get_resource_type使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wirecloud.commons.utils.template.TemplateParser
的用法示例。
在下文中一共展示了TemplateParser.get_resource_type方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: buildWorkspaceFromTemplate
# 需要导入模块: from wirecloud.commons.utils.template import TemplateParser [as 别名]
# 或者: from wirecloud.commons.utils.template.TemplateParser import get_resource_type [as 别名]
def buildWorkspaceFromTemplate(template, user, allow_renaming=False, new_name=None):
if not isinstance(template, TemplateParser):
template = TemplateParser(template)
if template.get_resource_type() != 'mashup':
raise TypeError('Unsupported resource type: %s' % template.get_resource_type())
if new_name is not None:
name = new_name
else:
name = template.get_resource_processed_info(process_urls=False)['title']
# Workspace creation
workspace = Workspace(name=name, creator=user)
if allow_renaming:
save_alternative(Workspace, 'name', workspace)
else:
workspace.save()
# Adding user reference to workspace in the many to many relationship
user_workspace = UserWorkspace(user=user, workspace=workspace, active=False)
user_workspace.save()
fillWorkspaceUsingTemplate(workspace, template)
return (workspace, user_workspace)
示例2: buildWorkspaceFromTemplate
# 需要导入模块: from wirecloud.commons.utils.template import TemplateParser [as 别名]
# 或者: from wirecloud.commons.utils.template.TemplateParser import get_resource_type [as 别名]
def buildWorkspaceFromTemplate(template, user, allow_renaming=False, new_name=None, new_title=None, searchable=True, public=False):
if not isinstance(template, TemplateParser):
template = TemplateParser(template)
if template.get_resource_type() != 'mashup':
raise TypeError('Unsupported resource type: %s' % template.get_resource_type())
if (new_name is None or new_name.strip() == '') and (new_title is None or new_title.strip() == ''):
processed_info = template.get_resource_processed_info(process_urls=False)
new_name = processed_info['name']
new_title = processed_info['title']
elif new_title is None or new_title.strip() == '':
new_title = new_name
elif new_name is None or new_name.strip() == '':
new_name = URLify(new_title)
# Workspace creation
workspace = Workspace(title=new_title, name=new_name, creator=user, searchable=searchable, public=public)
if allow_renaming:
save_alternative(Workspace, 'name', workspace)
else:
workspace.save()
# Adding user reference to workspace in the many to many relationship
user_workspace = UserWorkspace(user=user, workspace=workspace)
user_workspace.save()
fillWorkspaceUsingTemplate(workspace, template)
return (workspace, user_workspace)
示例3: undeploy_tenant_ac
# 需要导入模块: from wirecloud.commons.utils.template import TemplateParser [as 别名]
# 或者: from wirecloud.commons.utils.template.TemplateParser import get_resource_type [as 别名]
def undeploy_tenant_ac(request):
id_4CaaSt, wgt_file, fileURL = _parse_ac_request(request)
# Process 4CaaSt Id
username = parse_username(id_4CaaSt)
user = get_object_or_404(User, username=username)
try:
if user.tenantprofile_4CaaSt.id_4CaaSt != id_4CaaSt:
raise Http404
except TenantProfile.DoesNotExist:
raise Http404
# If the resource is a mashup, remove the assigned workspace
template = TemplateParser(wgt_file.get_template())
if template.get_resource_type() == 'mashup':
Workspace.objects.filter(creator=user, name=template.get_resource_info()['display_name']).delete()
# Uninstall de resource
template = TemplateParser(wgt_file.get_template())
resource = CatalogueResource.objects.get(vendor=template.get_resource_vendor(), short_name=template.get_resource_name(), version=template.get_resource_version())
resource.users.remove(user)
return HttpResponse(status=204)
示例4: buildWorkspaceFromTemplate
# 需要导入模块: from wirecloud.commons.utils.template import TemplateParser [as 别名]
# 或者: from wirecloud.commons.utils.template.TemplateParser import get_resource_type [as 别名]
def buildWorkspaceFromTemplate(template, user, allow_renaming=False, new_name=None):
if not isinstance(template, TemplateParser):
template = TemplateParser(template)
if template.get_resource_type() != 'mashup':
raise Exception()
if new_name is not None:
name = new_name
else:
name = template.get_resource_name()
# Workspace creation
workspace = Workspace(name=name, creator=user)
if allow_renaming:
save_alternative(Workspace, 'name', workspace)
else:
workspace.save()
# Adding user reference to workspace in the many to many relationship
user_workspace = UserWorkspace(user=user, workspace=workspace, active=False)
user_workspace.save()
fillWorkspaceUsingTemplate(workspace, template)
return (workspace, user_workspace)
示例5: create_widget_from_template
# 需要导入模块: from wirecloud.commons.utils.template import TemplateParser [as 别名]
# 或者: from wirecloud.commons.utils.template.TemplateParser import get_resource_type [as 别名]
def create_widget_from_template(template, user, request=None, base=None):
"""Creates a widget from a template"""
if isinstance(template, TemplateParser):
parser = template
else:
template_content = download_http_content(template, user=user)
if base is None:
base = template
parser = TemplateParser(template_content, base=base)
if parser.get_resource_type() != 'widget':
raise Exception()
widget_info = parser.get_resource_info()
check_requirements(widget_info)
widget = Widget()
widget.resource = CatalogueResource.objects.get(vendor=parser.get_resource_vendor(), short_name=parser.get_resource_name(), version=parser.get_resource_version())
widget_code = parser.get_absolute_url(widget_info['contents']['src'], base)
widget.xhtml = XHTML.objects.create(
uri=widget.uri + "/xhtml",
url=widget_code,
content_type=widget_info['contents']['contenttype'],
use_platform_style=widget_info['contents']['useplatformstyle'],
cacheable=widget_info['contents']['cacheable']
)
widget.width = widget_info['widget_width']
widget.height = widget_info['widget_height']
widget.save()
for preference in widget_info['preferences']:
vDef = VariableDef.objects.create(
name=preference['name'],
type=parser.typeText2typeCode(preference['type']),
aspect='PREF',
readonly=preference['readonly'],
default_value=preference['default'],
value=preference['value'],
widget=widget,
secure=preference['secure']
)
for prop in widget_info['properties']:
vDef = VariableDef.objects.create(
name=prop['name'],
type=parser.typeText2typeCode(prop['type']),
aspect='PROP',
default_value=prop['default'],
widget=widget,
secure=prop['secure'],
)
return widget
示例6: add_widget_from_wgt
# 需要导入模块: from wirecloud.commons.utils.template import TemplateParser [as 别名]
# 或者: from wirecloud.commons.utils.template.TemplateParser import get_resource_type [as 别名]
def add_widget_from_wgt(file, user, wgt_file=None, template=None, deploy_only=False):
close_wgt = False
if wgt_file is None:
wgt_file = WgtFile(file)
close_wgt = True
if template is None:
template_contents = wgt_file.get_template()
template = TemplateParser(template_contents)
if template.get_resource_type() == 'widget':
resource_info = template.get_resource_info()
code_url = resource_info['code_url']
if not code_url.startswith(('http://', 'https://')):
code = wgt_file.read(code_url)
try:
unicode(code, resource_info['code_charset'])
except UnicodeDecodeError:
msg = _('%(file_name)s was not encoded using the specified charset (%(charset)s according to the widget descriptor file).')
raise InvalidContents(msg % {'file_name': code_url, 'charset': resource_info['code_charset']})
resource_id = (
template.get_resource_vendor(),
template.get_resource_name(),
template.get_resource_version(),
)
file_name = '_'.join(resource_id) + '.wgt'
local_dir = wgt_deployer.get_base_dir(*resource_id)
local_wgt = os.path.join(local_dir, file_name)
if not os.path.exists(local_dir):
os.makedirs(local_dir)
overrides = extract_resource_media_from_package(template, wgt_file, local_dir)
if close_wgt:
wgt_file.close()
f = open(local_wgt, "wb")
file.seek(0)
f.write(file.read())
f.close()
if not deploy_only:
return add_resource_from_template(file_name, template, user, fromWGT=True, overrides=overrides)
示例7: stop_tenant_ac
# 需要导入模块: from wirecloud.commons.utils.template import TemplateParser [as 别名]
# 或者: from wirecloud.commons.utils.template.TemplateParser import get_resource_type [as 别名]
def stop_tenant_ac(request):
id_4CaaSt, wgt_file, fileURL = _parse_ac_request(request)
# Process 4CaaSt Id
username = parse_username(id_4CaaSt)
user = get_object_or_404(User, username=username)
try:
if user.tenantprofile_4CaaSt.id_4CaaSt != id_4CaaSt:
raise Http404
except TenantProfile.DoesNotExist:
raise Http404
# Remove assigned workspace if the resource is a mashup
template = TemplateParser(wgt_file.get_template())
if template.get_resource_type() == 'mashup':
Workspace.objects.filter(creator=user, name=template.get_resource_info()['display_name']).delete()
return HttpResponse(status=204)
示例8: fillWorkspaceUsingTemplate
# 需要导入模块: from wirecloud.commons.utils.template import TemplateParser [as 别名]
# 或者: from wirecloud.commons.utils.template.TemplateParser import get_resource_type [as 别名]
def fillWorkspaceUsingTemplate(workspace, template):
if not isinstance(template, TemplateParser):
template = TemplateParser(template)
if template.get_resource_type() != 'mashup':
raise Exception()
user = workspace.creator
user_workspace = UserWorkspace.objects.get(user=workspace.creator, workspace=workspace)
context_values = get_context_values(user_workspace)
processor = TemplateValueProcessor({'user': user, 'context': context_values})
workspace_info = template.get_resource_info()
new_values = {}
iwidget_id_mapping = {}
for preference_name in workspace_info['preferences']:
new_values[preference_name] = {
'inherit': False,
'value': workspace_info['preferences'][preference_name],
}
if len(new_values) > 0:
update_workspace_preferences(workspace, new_values)
new_forced_values = {
'extra_prefs': {},
'iwidget': {},
}
for param_name in workspace_info['params']:
param = workspace_info['params'][param_name]
new_forced_values['extra_prefs'][param_name] = {
'inheritable': False,
'label': param.get('label'),
'type': param.get('type'),
}
for tab_entry in workspace_info['tabs']:
tab = createTab(tab_entry.get('name'), workspace, allow_renaming=True)
new_values = {}
for preference_name in tab_entry['preferences']:
new_values[preference_name] = {
'inherit': False,
'value': tab_entry['preferences'][preference_name],
}
if len(new_values) > 0:
update_tab_preferences(tab, new_values)
for resource in tab_entry['resources']:
position = resource['position']
rendering = resource['rendering']
initial_variable_values = {}
iwidget_forced_values = {}
for prop_name in resource['properties']:
prop = resource['properties'][prop_name]
read_only = prop.get('readonly')
if read_only:
iwidget_forced_values[prop_name] = {'value': prop.get('value')}
else:
initial_variable_values[prop_name] = processor.process(prop.get('value'))
for pref_name in resource['preferences']:
pref = resource['preferences'][pref_name]
read_only = pref.get('readonly')
if read_only:
iwidget_forced_values[pref_name] = {'value': pref.get('value'), 'hidden': pref.get('hidden', False)}
else:
initial_variable_values[pref_name] = processor.process(pref.get('value'))
widget = get_or_add_widget_from_catalogue(resource.get('vendor'), resource.get('name'), resource.get('version'), user, None)
iwidget_data = {
"left": int(position.get('x')),
"top": int(position.get('y')),
"icon_left": -1,
"icon_top": -1,
"zIndex": int(position.get('z')),
"width": int(rendering.get('width')),
"height": int(rendering.get('height')),
"name": resource.get('title'),
"layout": int(rendering.get('layout')),
"widget": widget.uri,
}
iwidget = SaveIWidget(iwidget_data, user, tab, initial_variable_values)
if resource.get('readonly'):
iwidget.readOnly = True
iwidget.save()
new_forced_values['iwidget'][str(iwidget.id)] = iwidget_forced_values
iwidget_id_mapping[resource.get('id')] = iwidget
if workspace.forcedValues is not None and workspace.forcedValues != '':
forced_values = json.loads(workspace.forcedValues)
#.........这里部分代码省略.........
示例9: fillWorkspaceUsingTemplate
# 需要导入模块: from wirecloud.commons.utils.template import TemplateParser [as 别名]
# 或者: from wirecloud.commons.utils.template.TemplateParser import get_resource_type [as 别名]
def fillWorkspaceUsingTemplate(workspace, template):
if not isinstance(template, TemplateParser):
template = TemplateParser(template)
if template.get_resource_type() != 'mashup':
raise TypeError('Unsupported resource type: %s' % template.get_resource_type())
user = workspace.creator
context_values = get_context_values(workspace, workspace.creator)
processor = TemplateValueProcessor({'user': user, 'context': context_values})
mashup_description = template.get_resource_info()
new_values = {}
id_mapping = {
'operator': {},
'widget': {},
}
for preference_name in mashup_description['preferences']:
new_values[preference_name] = {
'inherit': False,
'value': mashup_description['preferences'][preference_name],
}
if len(new_values) > 0:
update_workspace_preferences(workspace, new_values)
new_forced_values = {
'extra_prefs': [],
'iwidget': {},
'ioperator': {},
}
for param in mashup_description['params']:
new_forced_values['extra_prefs'].append({
'name': param['name'],
'inheritable': False,
'label': param.get('label'),
'type': param.get('type'),
})
for tab_entry in mashup_description['tabs']:
tab = createTab(tab_entry.get('name'), workspace, allow_renaming=True)
new_values = {}
for preference_name in tab_entry['preferences']:
new_values[preference_name] = {
'inherit': False,
'value': tab_entry['preferences'][preference_name],
}
if len(new_values) > 0:
update_tab_preferences(tab, new_values)
for resource in tab_entry['resources']:
position = resource['position']
rendering = resource['rendering']
widget = get_or_add_widget_from_catalogue(resource.get('vendor'), resource.get('name'), resource.get('version'), user)
iwidget_data = {
"widget": widget.uri,
"title": resource.get('title'),
"left": int(position.get('x')),
"top": int(position.get('y')),
"icon_left": 0,
"icon_top": 0,
"zIndex": int(position.get('z')),
"width": int(rendering.get('width')),
"height": int(rendering.get('height')),
"layout": int(rendering.get('layout')),
"minimized": rendering['minimized'],
"fulldragboard": rendering['fulldragboard'],
}
iwidget = SaveIWidget(iwidget_data, user, tab, commit=False)
if resource.get('readonly'):
iwidget.readOnly = True
initial_variable_values = {}
iwidget_forced_values = {}
iwidget_info = widget.resource.get_processed_info(process_variables=True)
for prop_name in resource['properties']:
prop = resource['properties'][prop_name]
read_only = prop.get('readonly')
if prop.get('value', None) is not None:
value = prop['value']
else:
value = iwidget_info['variables']['properties'][prop_name]['default']
if read_only:
iwidget_forced_values[prop_name] = {'value': value}
else:
initial_variable_values[prop_name] = processor.process(value)
for pref_name in resource['preferences']:
pref = resource['preferences'][pref_name]
read_only = pref.get('readonly')
if pref.get('value', None) is not None:
#.........这里部分代码省略.........
示例10: fillWorkspaceUsingTemplate
# 需要导入模块: from wirecloud.commons.utils.template import TemplateParser [as 别名]
# 或者: from wirecloud.commons.utils.template.TemplateParser import get_resource_type [as 别名]
def fillWorkspaceUsingTemplate(workspace, template):
if not isinstance(template, TemplateParser):
template = TemplateParser(template)
if template.get_resource_type() != "mashup":
raise TypeError("Unsupported resource type: %s" % template.get_resource_type())
user = workspace.creator
context_values = get_context_values(workspace, workspace.creator)
processor = TemplateValueProcessor({"user": user, "context": context_values})
mashup_description = template.get_resource_info()
new_values = {}
id_mapping = {"operator": {}, "widget": {}}
for preference_name in mashup_description["preferences"]:
new_values[preference_name] = {"inherit": False, "value": mashup_description["preferences"][preference_name]}
if len(new_values) > 0:
update_workspace_preferences(workspace, new_values)
new_forced_values = {"extra_prefs": [], "iwidget": {}, "ioperator": {}}
for param in mashup_description["params"]:
new_forced_values["extra_prefs"].append(
{"name": param["name"], "inheritable": False, "label": param.get("label"), "type": param.get("type")}
)
for tab_entry in mashup_description["tabs"]:
tab = createTab(tab_entry.get("name"), workspace, allow_renaming=True)
new_values = {}
for preference_name in tab_entry["preferences"]:
new_values[preference_name] = {"inherit": False, "value": tab_entry["preferences"][preference_name]}
if len(new_values) > 0:
update_tab_preferences(tab, new_values)
for resource in tab_entry["resources"]:
position = resource["position"]
rendering = resource["rendering"]
widget = get_or_add_widget_from_catalogue(
resource.get("vendor"), resource.get("name"), resource.get("version"), user
)
iwidget_data = {
"left": int(position.get("x")),
"top": int(position.get("y")),
"icon_left": 0,
"icon_top": 0,
"zIndex": int(position.get("z")),
"width": int(rendering.get("width")),
"height": int(rendering.get("height")),
"title": resource.get("title"),
"layout": int(rendering.get("layout")),
"widget": widget.uri,
}
iwidget = SaveIWidget(iwidget_data, user, tab, commit=False)
if resource.get("readonly"):
iwidget.readOnly = True
initial_variable_values = {}
iwidget_forced_values = {}
iwidget_info = widget.resource.get_processed_info(process_variables=True)
for prop_name in resource["properties"]:
prop = resource["properties"][prop_name]
read_only = prop.get("readonly")
if prop.get("value", None) is not None:
value = prop["value"]
else:
value = iwidget_info["variables"]["properties"][prop_name]["default"]
if read_only:
iwidget_forced_values[prop_name] = {"value": value}
else:
initial_variable_values[prop_name] = processor.process(value)
for pref_name in resource["preferences"]:
pref = resource["preferences"][pref_name]
read_only = pref.get("readonly")
if pref.get("value", None) is not None:
value = pref["value"]
else:
value = iwidget_info["variables"]["preferences"][pref_name]["default"]
if read_only:
iwidget_forced_values[pref_name] = {"value": value, "hidden": pref.get("hidden", False)}
else:
initial_variable_values[pref_name] = processor.process(value)
set_initial_values(iwidget, initial_variable_values, iwidget_info)
iwidget.save()
if len(iwidget_forced_values) > 0:
new_forced_values["iwidget"][six.text_type(iwidget.id)] = iwidget_forced_values
id_mapping["widget"][resource.get("id")] = {
"id": iwidget.id,
#.........这里部分代码省略.........
示例11: create_widget_from_template
# 需要导入模块: from wirecloud.commons.utils.template import TemplateParser [as 别名]
# 或者: from wirecloud.commons.utils.template.TemplateParser import get_resource_type [as 别名]
def create_widget_from_template(template, user, request=None, base=None):
"""Creates a widget from a template"""
if isinstance(template, TemplateParser):
parser = template
else:
template_content = downloader.download_http_content(template, user=user)
if base is None:
base = template
parser = TemplateParser(template_content, base=base)
if parser.get_resource_type() != 'widget':
raise Exception()
widget_info = parser.get_resource_info()
check_requirements(widget_info)
widget = Widget()
widget.resource = CatalogueResource.objects.get(vendor=parser.get_resource_vendor(), short_name=parser.get_resource_name(), version=parser.get_resource_version())
widget_code = parser.get_absolute_url(widget_info['code_url'], base)
widget.xhtml = XHTML.objects.create(
uri=widget.uri + "/xhtml",
url=widget_code,
content_type=widget_info['code_content_type'],
use_platform_style=widget_info['code_uses_platform_style'],
cacheable=widget_info['code_cacheable']
)
widget.width = widget_info['widget_width']
widget.height = widget_info['widget_height']
widget.save()
variable_definitions = {}
user_options = {}
order = 0
for preference in widget_info['preferences']:
vDef = VariableDef.objects.create(
name=preference['name'],
order=order,
description=preference['description'],
type=parser.typeText2typeCode(preference['type']),
aspect='PREF',
friend_code=None,
readonly=preference['readonly'],
label=preference['label'],
default_value=preference['default_value'],
value=preference['value'],
widget=widget,
secure=preference['secure']
)
variable_definitions[vDef.name] = vDef
user_options[vDef.name] = {}
for option in preference.get('options', ()):
upo = UserPrefOption.objects.create(
value=option['value'],
name=option['label'],
variableDef=vDef
)
user_options[vDef.name][upo.name] = upo
order += 1
order = 0
for prop in widget_info['properties']:
vDef = VariableDef.objects.create(
name=prop['name'],
order=order,
description=prop['description'],
type=parser.typeText2typeCode(prop['type']),
aspect='PROP',
friend_code=None,
label=prop['label'],
default_value=prop['default_value'],
widget=widget,
secure=prop['secure'],
)
variable_definitions[vDef.name] = vDef
order += 1
order = 0
for input_endpoint in widget_info['wiring']['inputs']:
vDef = VariableDef.objects.create(
name=input_endpoint['name'],
order=order,
description=input_endpoint['description'],
type=parser.typeText2typeCode(input_endpoint['type']),
aspect='SLOT',
friend_code=input_endpoint['friendcode'],
label=input_endpoint['label'],
action_label=input_endpoint['actionlabel'],
widget=widget,
)
variable_definitions[vDef.name] = vDef
order += 1
order = 0
for output_endpoint in widget_info['wiring']['outputs']:
#.........这里部分代码省略.........
示例12: fillWorkspaceUsingTemplate
# 需要导入模块: from wirecloud.commons.utils.template import TemplateParser [as 别名]
# 或者: from wirecloud.commons.utils.template.TemplateParser import get_resource_type [as 别名]
def fillWorkspaceUsingTemplate(workspace, template):
if not isinstance(template, TemplateParser):
template = TemplateParser(template)
if template.get_resource_type() != "mashup":
raise Exception()
user = workspace.creator
context_values = get_context_values(workspace, workspace.creator)
processor = TemplateValueProcessor({"user": user, "context": context_values})
workspace_info = template.get_resource_info()
new_values = {}
iwidget_id_mapping = {}
for preference_name in workspace_info["preferences"]:
new_values[preference_name] = {"inherit": False, "value": workspace_info["preferences"][preference_name]}
if len(new_values) > 0:
update_workspace_preferences(workspace, new_values)
new_forced_values = {"extra_prefs": [], "iwidget": {}, "ioperator": {}}
for param in workspace_info["params"]:
new_forced_values["extra_prefs"].append(
{"name": param["name"], "inheritable": False, "label": param.get("label"), "type": param.get("type")}
)
for tab_entry in workspace_info["tabs"]:
tab = createTab(tab_entry.get("name"), workspace, allow_renaming=True)
new_values = {}
for preference_name in tab_entry["preferences"]:
new_values[preference_name] = {"inherit": False, "value": tab_entry["preferences"][preference_name]}
if len(new_values) > 0:
update_tab_preferences(tab, new_values)
for resource in tab_entry["resources"]:
position = resource["position"]
rendering = resource["rendering"]
initial_variable_values = {}
iwidget_forced_values = {}
for prop_name in resource["properties"]:
prop = resource["properties"][prop_name]
read_only = prop.get("readonly")
if read_only:
iwidget_forced_values[prop_name] = {"value": prop.get("value")}
else:
initial_variable_values[prop_name] = processor.process(prop.get("value"))
for pref_name in resource["preferences"]:
pref = resource["preferences"][pref_name]
read_only = pref.get("readonly")
if read_only:
iwidget_forced_values[pref_name] = {"value": pref.get("value"), "hidden": pref.get("hidden", False)}
else:
initial_variable_values[pref_name] = processor.process(pref.get("value"))
widget = get_or_add_widget_from_catalogue(
resource.get("vendor"), resource.get("name"), resource.get("version"), user, None
)
iwidget_data = {
"left": int(position.get("x")),
"top": int(position.get("y")),
"icon_left": -1,
"icon_top": -1,
"zIndex": int(position.get("z")),
"width": int(rendering.get("width")),
"height": int(rendering.get("height")),
"name": resource.get("title"),
"layout": int(rendering.get("layout")),
"widget": widget.uri,
}
iwidget = SaveIWidget(iwidget_data, user, tab, initial_variable_values)
if resource.get("readonly"):
iwidget.readOnly = True
iwidget.save()
if len(iwidget_forced_values) > 0:
new_forced_values["iwidget"][str(iwidget.id)] = iwidget_forced_values
iwidget_id_mapping[resource.get("id")] = iwidget
# wiring
if workspace.wiringStatus != "":
workspace_wiring_status = json.loads(workspace.wiringStatus)
else:
workspace_wiring_status = {"operators": {}, "connections": [], "views": []}
if "views" not in workspace_wiring_status:
workspace_wiring_status["views"] = []
max_id = 0
ioperator_id_mapping = {}
#.........这里部分代码省略.........