def get_global_workspace_data(data, workSpaceDAO, concept_values, user): data_ret = {} data_ret['workspace'] = get_workspace_data(data, user, workSpaceDAO) # Workspace preferences data_ret['workspace']['preferences'] = get_workspace_preference_values( data['pk']) # Tabs processing # Check if the workspace's tabs have order tabs = Tab.objects.filter(workspace=workSpaceDAO).order_by('id') 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() data = serializers.serialize('python', tabs, ensure_ascii=False) tabs_data = [] for i in range(len(tabs)): tabs_data.append(get_tab_data(data[i], tabs[i], user)) data_ret['workspace']['tabList'] = tabs_data for tab in tabs_data: tab_pk = tab['id'] igadgets = IGadget.objects.filter(tab__id=tab_pk).order_by('id') igadget_data = serializers.serialize('python', igadgets, ensure_ascii=False) igadget_data = [ get_igadget_data(d, user, workSpaceDAO) for d in igadget_data ] tab['igadgetList'] = igadget_data #WorkSpace variables processing workspace_variables_data = get_workspace_variables_data(workSpaceDAO, user) data_ret['workspace']['workSpaceVariableList'] = workspace_variables_data #Context information concepts = Concept.objects.all() concepts_data = serializers.serialize('python', concepts, ensure_ascii=False) data_ret['workspace']['concepts'] = [ get_concept_data(d, concept_values) for d in concepts_data ] # Filter information filters = Filter.objects.all() filter_data = serializers.serialize('python', filters, ensure_ascii=False) data_ret['workspace']['filters'] = [ get_filter_data(d) for d in filter_data ] return data_ret
def _populate_variables_values_cache(workspace, user, key, forced_values=None): """ populates VariableValue cached values for that user """ values_by_varid = {} values_by_varname = {} if forced_values == None: concept_values = get_concept_values(user) preferences = get_workspace_preference_values(workspace) forced_values = process_forced_values(workspace, user, concept_values, preferences) var_values = VariableValue.objects.filter(user__id=user.id, variable__igadget__tab__workspace=workspace) for var_value in var_values.select_related('variable__vardef'): varigadget = var_value.variable.igadget.id varname = var_value.variable.vardef.name # forced_values uses string keys svarigadget = str(varigadget) if not varigadget in values_by_varname: values_by_varname[varigadget] = {} entry = {} if svarigadget in forced_values['igadget'] and varname in forced_values['igadget'][svarigadget]: fv_entry = forced_values['igadget'][svarigadget][varname] entry['value'] = fv_entry['value'] if var_value.variable.vardef.secure: entry['value'] = encrypt_value(entry['value']) if 'hidden' in fv_entry: entry['hidden'] = fv_entry['hidden'] entry['forced'] = True else: if not var_value.variable.vardef.secure: entry['value'] = var_value.get_variable_value() else: entry['value'] = var_value.value entry['secure'] = var_value.variable.vardef.secure values_by_varname[varigadget][varname] = entry values_by_varid[var_value.variable.id] = entry values = { 'by_varid': values_by_varid, 'by_varname': values_by_varname, } cache.set(key, values) return values
def get_global_workspace_data(data, workSpaceDAO, concept_values, user): data_ret = {} data_ret['workspace'] = get_workspace_data(data, user, workSpaceDAO) # Workspace preferences data_ret['workspace']['preferences'] = get_workspace_preference_values(data['pk']) # Tabs processing # Check if the workspace's tabs have order tabs = Tab.objects.filter(workspace=workSpaceDAO).order_by('id') 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() data = serializers.serialize('python', tabs, ensure_ascii=False) tabs_data = [] for i in range(len(tabs)): tabs_data.append(get_tab_data(data[i], tabs[i], user)) data_ret['workspace']['tabList'] = tabs_data for tab in tabs_data: tab_pk = tab['id'] igadgets = IGadget.objects.filter(tab__id = tab_pk).order_by('id') igadget_data = serializers.serialize('python', igadgets, ensure_ascii=False) igadget_data = [get_igadget_data(d, user, workSpaceDAO) for d in igadget_data] tab['igadgetList'] = igadget_data #WorkSpace variables processing workspace_variables_data = get_workspace_variables_data(workSpaceDAO, user) data_ret['workspace']['workSpaceVariableList'] = workspace_variables_data #Context information concepts = Concept.objects.all() concepts_data = serializers.serialize('python', concepts, ensure_ascii=False) data_ret['workspace']['concepts'] = [get_concept_data(d, concept_values) for d in concepts_data] # Filter information filters = Filter.objects.all() filter_data = serializers.serialize('python', filters, ensure_ascii=False) data_ret['workspace']['filters'] = [get_filter_data(d) for d in filter_data] return data_ret
def get_global_workspace_data(workSpaceDAO, user): data_ret = {} data_ret['workspace'] = get_workspace_data(workSpaceDAO, user) # Workspace preferences data_ret['workspace']['preferences'] = get_workspace_preference_values( workSpaceDAO.pk) # Tabs processing # Check if the workspace's tabs have order tabs = Tab.objects.filter(workspace=workSpaceDAO).order_by('id') 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() tabs_data = [get_tab_data(tab) for tab in tabs] data_ret['workspace']['tabList'] = tabs_data for tab in tabs_data: tab_pk = tab['id'] igadgets = IGadget.objects.filter(tab__id=tab_pk).order_by('id') igadget_data = [] for igadget in igadgets: igadget_data.append(get_igadget_data(igadget, user, workSpaceDAO)) tab['igadgetList'] = igadget_data #WorkSpace variables processing workspace_variables_data = get_workspace_variables_data(workSpaceDAO, user) data_ret['workspace']['workSpaceVariableList'] = workspace_variables_data # Gets some concept values concept_values = {} concept_values['user'] = user try: if 'twitterauth' in settings.INSTALLED_APPS: concept_values['twitterauth'] = TwitterUserProfile.objects.get( user__id=user.id) else: concept_values['twitterauth'] = None except Exception: concept_values['twitterauth'] = None #Context information concepts = Concept.objects.all() data_ret['workspace']['concepts'] = [ get_concept_data(concept, concept_values) for concept in concepts ] # Filter information filters = Filter.objects.all() data_ret['workspace']['filters'] = [get_filter_data(f) for f in filters] #Branding information data_ret["workspace"]["branding"] = get_workspace_branding_data( workSpaceDAO, user) return data_ret
def _get_global_workspace_data(workSpaceDAO, user): data_ret = {} data_ret['workspace'] = get_workspace_data(workSpaceDAO, user) # Context information concept_values = get_concept_values(user) data_ret['workspace']['concepts'] = get_concepts_data(concept_values) # Workspace preferences preferences = get_workspace_preference_values(workSpaceDAO.pk) data_ret['workspace']['preferences'] = preferences # Process forced variable values forced_values = process_forced_values(workSpaceDAO, user, concept_values, preferences) data_ret['workspace']['empty_params'] = forced_values['empty_params'] data_ret['workspace']['extra_prefs'] = forced_values['extra_prefs'] if len(forced_values['empty_params']) > 0: return data_ret 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('id') 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'), user, workSpaceDAO)] tabs_data = [get_tab_data(tab) for tab in tabs] data_ret['workspace']['tabList'] = tabs_data for tab in tabs_data: tab_pk = tab['id'] igadgets = IGadget.objects.filter(tab__id=tab_pk).order_by('id') igadget_data = [] for igadget in igadgets: igadget_data.append(get_igadget_data(igadget, user, workSpaceDAO, cache_manager)) tab['igadgetList'] = igadget_data workspace_variables_data = get_workspace_variables_data(workSpaceDAO, user) data_ret['workspace']['channels'] = workspace_variables_data # Filter information filters = Filter.objects.all() data_ret['workspace']['filters'] = [get_filter_data(f) for f in filters] # Params last_published_workspace = PublishedWorkSpace.objects.filter(workspace=workSpaceDAO).order_by('-pk') if len(last_published_workspace) > 0: data_ret["workspace"]["params"] = simplejson.loads(last_published_workspace[0].params) return data_ret