def _get_global_workspace_data(workspaceDAO, user): user_workspace = UserWorkspace.objects.get(user=user, workspace=workspaceDAO) data_ret = get_workspace_data(workspaceDAO, user) # Context information data_ret['context'] = get_workspace_context(user_workspace) # Workspace preferences preferences = get_workspace_preference_values(workspaceDAO.pk) data_ret['preferences'] = preferences # Process forced variable values concept_values = get_context_values(user_workspace) forced_values = process_forced_values(workspaceDAO, user, concept_values, preferences) data_ret['empty_params'] = forced_values['empty_params'] data_ret['extra_prefs'] = forced_values['extra_prefs'] if len(forced_values['empty_params']) > 0: return json.dumps(data_ret, cls=LazyEncoder) cache_manager = VariableValueCacheManager(workspaceDAO, user, forced_values) # Tabs processing # Check if the workspace's tabs have order tabs = Tab.objects.filter(workspace=workspaceDAO).order_by('position') if tabs.count() > 0: if tabs[0].position != None: tabs = tabs.order_by('position') else: #set default order for i in range(len(tabs)): tabs[i].position = i tabs[i].save() else: tabs = [createTab(_('Tab'), workspaceDAO)] tabs_data = [get_tab_data(tab) for tab in tabs] data_ret['tabs'] = tabs_data for tab in tabs_data: tab_pk = tab['id'] iwidgets = IWidget.objects.filter(tab__id=tab_pk).order_by('id') iwidget_data = [] for iwidget in iwidgets: iwidget_data.append(get_iwidget_data(iwidget, user, workspaceDAO, cache_manager)) tab['iwidgets'] = iwidget_data data_ret['wiring'] = json.loads(workspaceDAO.wiringStatus) for forced_operator_id, forced_preferences in forced_values['ioperator'].iteritems(): for forced_pref_name, forced_preference in forced_preferences.iteritems(): data_ret['wiring']['operators'][forced_operator_id]['preferences'][forced_pref_name]['value'] = forced_preference['value'] # Params last_published_workspace = PublishedWorkspace.objects.filter(workspace=workspaceDAO).order_by('-pk') if len(last_published_workspace) > 0: data_ret["params"] = json.loads(last_published_workspace[0].params) return json.dumps(data_ret, cls=LazyEncoder)
def _get_global_workspace_data(workspaceDAO, user): data_ret = get_workspace_data(workspaceDAO, user) # Context information data_ret['context'] = get_workspace_context(workspaceDAO, user) # Workspace preferences preferences = get_workspace_preference_values(workspaceDAO) data_ret['preferences'] = preferences data_ret['users'] = [] for user in workspaceDAO.users.all(): try: is_organization = resource.organization is not None except: is_organization = False data_ret['users'].append({ "fullname": user.get_full_name(), "username": user.username, "organization": is_organization, "accesslevel": "owner" if workspaceDAO.creator == user else "read", }) # Process forced variable values concept_values = get_context_values(workspaceDAO, user) forced_values = process_forced_values(workspaceDAO, user, concept_values, preferences) data_ret['empty_params'] = forced_values['empty_params'] data_ret['extra_prefs'] = forced_values['extra_prefs'] if len(forced_values['empty_params']) > 0: return json.dumps(data_ret, cls=LazyEncoder) cache_manager = VariableValueCacheManager(workspaceDAO, user, forced_values) # Tabs processing # Check if the workspace's tabs have order tabs = Tab.objects.filter(workspace=workspaceDAO).order_by('position') if tabs.count() > 0: if tabs[0].position is not None: tabs = tabs.order_by('position') else: # set default order for i in range(len(tabs)): tabs[i].position = i tabs[i].save() else: tabs = [createTab(_('Tab'), workspaceDAO)] tabs_data = [get_tab_data(tab) for tab in tabs] data_ret['tabs'] = tabs_data for tab in tabs_data: tab_pk = tab['id'] iwidgets = IWidget.objects.filter(tab__id=tab_pk).order_by('id') iwidget_data = [] for iwidget in iwidgets: iwidget_data.append(get_iwidget_data(iwidget, workspaceDAO, cache_manager)) tab['iwidgets'] = iwidget_data data_ret['wiring'] = workspaceDAO.wiringStatus for operator_id, operator in six.iteritems(data_ret['wiring'].get('operators', {})): try: (vendor, name, version) = operator['name'].split('/') except: continue try: resource = CatalogueResource.objects.get(vendor=vendor, short_name=name, version=version) if not resource.is_available_for(workspaceDAO.creator): # The operator used by this instance is missing continue except CatalogueResource.DoesNotExist: continue operator_info = resource.get_processed_info(process_variables=True) operator_forced_values = forced_values['ioperator'].get(operator_id, {}) for preference_name, preference in six.iteritems(operator.get('preferences', {})): vardef = operator_info['variables']['preferences'].get(preference_name) if preference_name in operator_forced_values: preference['value'] = operator_forced_values[preference_name]['value'] elif preference.get('value') is None and vardef is not None: preference['value'] = parse_value_from_text(vardef, vardef['default']) return json.dumps(data_ret, cls=LazyEncoder)
def _get_global_workspace_data(workspaceDAO, user): data_ret = get_workspace_data(workspaceDAO, user) # Context information data_ret['context'] = get_workspace_context(workspaceDAO, user) # Workspace preferences preferences = get_workspace_preference_values(workspaceDAO) data_ret['preferences'] = preferences data_ret['users'] = [] for user in workspaceDAO.users.all(): try: is_organization = resource.organization is not None except: is_organization = False data_ret['users'].append({ "fullname": user.get_full_name(), "username": user.username, "organization": is_organization, "accesslevel": "owner" if workspaceDAO.creator == user else "read", }) # Process forced variable values concept_values = get_context_values(workspaceDAO, user) forced_values = process_forced_values(workspaceDAO, user, concept_values, preferences) data_ret['empty_params'] = forced_values['empty_params'] data_ret['extra_prefs'] = forced_values['extra_prefs'] if len(forced_values['empty_params']) > 0: return json.dumps(data_ret, cls=LazyEncoder) cache_manager = VariableValueCacheManager(workspaceDAO, user, forced_values) # Tabs processing # Check if the workspace's tabs have order tabs = Tab.objects.filter(workspace=workspaceDAO).order_by('position') if tabs.count() > 0: if tabs[0].position is not None: tabs = tabs.order_by('position') else: # set default order for i in range(len(tabs)): tabs[i].position = i tabs[i].save() else: tabs = [createTab(_('Tab'), workspaceDAO)] tabs_data = [get_tab_data(tab) for tab in tabs] data_ret['tabs'] = tabs_data for tab in tabs_data: tab_pk = tab['id'] iwidgets = IWidget.objects.filter(tab__id=tab_pk).order_by('id') iwidget_data = [] for iwidget in iwidgets: iwidget_data.append( get_iwidget_data(iwidget, workspaceDAO, cache_manager)) tab['iwidgets'] = iwidget_data data_ret['wiring'] = workspaceDAO.wiringStatus for forced_operator_id, forced_preferences in six.iteritems( forced_values['ioperator']): for forced_pref_name, forced_preference in six.iteritems( forced_preferences): data_ret['wiring']['operators'][forced_operator_id]['preferences'][ forced_pref_name]['value'] = forced_preference['value'] return json.dumps(data_ret, cls=LazyEncoder)
def _get_global_workspace_data(workspaceDAO, user): data_ret = get_workspace_data(workspaceDAO, user) # Context information data_ret['context'] = get_workspace_context(workspaceDAO, user) # Workspace preferences preferences = get_workspace_preference_values(workspaceDAO) data_ret['preferences'] = preferences data_ret['users'] = [] for user in workspaceDAO.users.all(): try: is_organization = resource.organization is not None except: is_organization = False data_ret['users'].append({ "fullname": user.get_full_name(), "username": user.username, "organization": is_organization, "accesslevel": "owner" if workspaceDAO.creator == user else "read", }) # Process forced variable values concept_values = get_context_values(workspaceDAO, user) forced_values = process_forced_values(workspaceDAO, user, concept_values, preferences) data_ret['empty_params'] = forced_values['empty_params'] data_ret['extra_prefs'] = forced_values['extra_prefs'] if len(forced_values['empty_params']) > 0: return json.dumps(data_ret, cls=LazyEncoder) cache_manager = VariableValueCacheManager(workspaceDAO, user, forced_values) # Tabs processing # Check if the workspace's tabs have order tabs = Tab.objects.filter(workspace=workspaceDAO).order_by('position') if tabs.count() > 0: if tabs[0].position is not None: tabs = tabs.order_by('position') else: # set default order for i in range(len(tabs)): tabs[i].position = i tabs[i].save() else: tabs = [createTab(_('Tab'), workspaceDAO)] tabs_data = [get_tab_data(tab) for tab in tabs] data_ret['tabs'] = tabs_data for tab in tabs_data: tab_pk = tab['id'] iwidgets = IWidget.objects.filter(tab__id=tab_pk).order_by('id') iwidget_data = [] for iwidget in iwidgets: iwidget_data.append(get_iwidget_data(iwidget, workspaceDAO, cache_manager)) tab['iwidgets'] = iwidget_data data_ret['wiring'] = workspaceDAO.wiringStatus for forced_operator_id, forced_preferences in six.iteritems(forced_values['ioperator']): for forced_pref_name, forced_preference in six.iteritems(forced_preferences): data_ret['wiring']['operators'][forced_operator_id]['preferences'][forced_pref_name]['value'] = forced_preference['value'] return json.dumps(data_ret, cls=LazyEncoder)