def load(request): """ Shows the microsite's home page :param request: """ jsonObject = None language = request.auth_manager.language account = request.account preferences = request.preferences is_preview = 'preview' in request.GET and request.GET['preview'] == 'true' builder = ThemeBuilder(preferences, is_preview, language, request.user) resources = ["ds", "vz"] resources.extend([ finder.doc_type for finder in DatalPluginPoint.get_active_with_att('finder') ]) if account.get_preference("account.dataset.show"): resources.append("dt") if is_preview or preferences["account_home"]: """ shows the home page new version""" data = builder.parse() if data: accounts_ids = data['federated_accounts_ids'] + [account.id] queryset = FinderQuerySet(FinderManager(HomeFinder), max_results=250, account_id=accounts_ids, resource=resources) paginator = Paginator(queryset, 25) revisions = paginator.page(1) if data['federated_accounts_ids']: add_domains_to_permalinks(revisions.object_list) context = data.copy() context['has_federated_accounts'] = data[ 'federated_accounts_ids'] != [] context['request'] = request context['paginator'] = paginator context['revisions'] = revisions context['categories'] = Category.objects.get_for_home( language, accounts_ids) context['categories_dict'] = {} for cat in context['categories']: key = str(cat['id']) context['categories_dict'][key] = cat['name'] return render_to_response(data['template_path'], context, context_instance=RequestContext(request)) return redirect('/search/')
def retrieveResourcePermalinks(self, resourceIds, language): datastreamIds = [] visualizationIds = [] for resource in resourceIds: if resource['type'] == 'vz': visualizationIds.append(resource['id']) elif resource['type'] == 'ds': datastreamIds.append(resource['id']) resources = [] if datastreamIds: idsDataStream = ','.join(datastreamIds) resources = DataStreamDBDAO().query_hot_n(10, language, hot=idsDataStream) if visualizationIds: idsVisualization = ','.join(visualizationIds) resources += VisualizationDBDAO().query_hot_n(language, hot=idsVisualization) add_domains_to_permalinks(resources) return resources
def retrieveResourcePermalinks(resourceIds, language): datastreamIds = [] visualizationIds = [] dashboardIds = [] for resource in resourceIds: if resource['type']== 'chart': visualizationIds.append(resource['id']) elif resource['type']== 'ds': datastreamIds.append(resource['id']) elif resource['type']== 'db': dashboardIds.append(resource['id']) resources = [] if datastreamIds: idsDataStream = ','.join(datastreamIds) resources = DataStreamDBDAO().query_hot_n(10,language, hot = idsDataStream) if visualizationIds: idsVisualization = ','.join(visualizationIds) resources += VisualizationDBDAO.query_hot_n(language, hot = idsVisualization) add_domains_to_permalinks(resources) return resources
def load(request): """ Shows the microsite's home page :param request: """ jsonObject = None language = request.auth_manager.language account = request.account preferences = request.preferences is_preview = 'preview' in request.GET and request.GET['preview'] == 'true' if is_preview or preferences["account_home"]: """ shows the home page new version""" if is_preview: jsonObject = json.loads(preferences["account_preview"], strict=False) elif preferences["account_has_home"]: jsonObject = json.loads(preferences["account_home"], strict=False) if jsonObject: themeid = jsonObject['theme'] config = jsonObject['config'] datastreams = [] resources = [] if config: if 'sliderSection' in config: datastreams = retrieveDatastreams(config['sliderSection'], language) if 'linkSection' in config: resources = retrieveResourcePermalinks(config['linkSection'], language) if preferences['account_home_filters'] == 'featured_accounts': # the account have federated accounts (childs) featured_accounts = Account.objects.get_featured_accounts(account.id) account_id = [featured_account['id'] for featured_account in featured_accounts] for index, f in enumerate(featured_accounts): featured_accounts[index]['link'] = Account.objects.get(id=f['id']).get_preference('account.domain') categories = Category.objects.get_for_home(language, account_id) else: account_id = account.id categories = Category.objects.get_for_home(language, account_id) queryset = FinderQuerySet(FinderManager(HomeFinder), max_results=250, account_id=account_id ) paginator = Paginator(queryset, 25) revisions = paginator.page(1) if preferences['account_home_filters'] == 'featured_accounts': add_domains_to_permalinks(revisions.object_list) return render_to_response('loadHome/home_'+themeid+'.html', locals()) else: # No Home, return to featured Dashboards # return redirect('/dashboards/') # For the moment, redirect to search return redirect('/search/') else: # For the moment, redirect to search, but this needs to be erased return redirect('/search/')
def load(request): """ Shows the microsite's home page :param request: """ jsonObject = None language = request.auth_manager.language account = request.account preferences = request.preferences is_preview = 'preview' in request.GET and request.GET['preview'] == 'true' builder = ThemeBuilder(preferences, is_preview, language, request.user) resources = ["ds", "vz"] resources.extend([finder.doc_type for finder in DatalPluginPoint.get_active_with_att('finder')]) if account.get_preference("account.dataset.show"): resources.append("dt") if is_preview or preferences["account_home"]: """ shows the home page new version""" data = builder.parse() if data: accounts_ids=data['federated_accounts_ids'] + [account.id] queryset = FinderQuerySet(FinderManager(HomeFinder), max_results=250, account_id=accounts_ids, resource=resources ) paginator = Paginator(queryset, 25) revisions = paginator.page(1) if data['federated_accounts_ids']: add_domains_to_permalinks(revisions.object_list) context = data.copy() context['has_federated_accounts'] = data['federated_accounts_ids'] != [] context['request'] = request context['paginator'] = paginator context['revisions'] = revisions context['categories'] = Category.objects.get_for_home(language, accounts_ids) context['categories_dict'] = {} for cat in context['categories']: key = str(cat['id']) context['categories_dict'][key] = cat['name'] return render_to_response(data['template_path'], context, context_instance=RequestContext(request)) return redirect('/search/')
def load(request): """ Shows the microsite's home page :param request: """ jsonObject = None language = request.auth_manager.language account = request.account preferences = request.preferences is_preview = 'preview' in request.GET and request.GET['preview'] == 'true' builder = ThemeBuilder(preferences, is_preview, language, account) if is_preview or preferences["account_home"]: """ shows the home page new version""" data = builder.parse() if data: accounts_ids=data['federated_accounts_ids'] + [account.id] queryset = FinderQuerySet(FinderManager(HomeFinder), max_results=250, account_id=accounts_ids ) paginator = Paginator(queryset, 25) revisions = paginator.page(1) if data['federated_accounts_ids']: add_domains_to_permalinks(revisions.object_list) context = data.copy() context['has_federated_accounts'] = data['federated_accounts_ids'] != [] context['request'] = request context['paginator'] = paginator context['revisions'] = revisions context['categories'] = Category.objects.get_for_home(language, accounts_ids) context['categories_dict'] = {} for cat in context['categories']: key = str(cat['id']) context['categories_dict'][key] = cat['name'] return render_to_response(data['template_path'], context) else: # For the moment, redirect to search return redirect('/search/') else: # For the moment, redirect to search, but this needs to be erased return redirect('/search/')
def update_list(request): account = request.account auth_manager = request.auth_manager preferences = account.get_preferences() form = QueryDatasetForm(request.POST) if form.is_valid(): query = form.cleaned_data.get('search') page = form.cleaned_data.get('page') order = form.cleaned_data.get('order') order_type = form.cleaned_data.get('order_type') resources = ['ds', 'db', 'vz', 'dt'] category_filters = form.cleaned_data.get('category_filters') if category_filters: category_filters=category_filters.lower().split(",") if preferences['account_home_filters'] == 'featured_accounts': entity = form.cleaned_data.get('entity_filters') if entity: accounts_ids = [int(entity)] else: featured_accounts = account.account_set.values('id').all() accounts_ids = [featured_account['id'] for featured_account in featured_accounts] typef = form.cleaned_data.get('type_filters') if typef: resources = [typef] queryset = FinderQuerySet(FinderManager(HomeFinder), query = query, max_results = 250, account_id = accounts_ids, resource = resources, category_filters=category_filters, order = order, order_type = order_type ) else: all_resources = form.cleaned_data.get('all') if not all_resources: resources_type = form.cleaned_data.get('type') resources = [] for resource_name in resources_type.split(','): resources.append(resource_name) queryset = FinderQuerySet(FinderManager(HomeFinder), category_filters= category_filters, query=query, resource=resources, max_results=250, order=order, order_type=order_type, account_id=account.id ) ## manual temporary fix for indextank fails #results2 = [] #for r in results: # if r['category'] in categories or categories==[]: # results2.append(r) paginator = Paginator(queryset, 25) revisions = paginator.page(page and page or 1) if preferences['account_home_filters'] == 'featured_accounts': add_domains_to_permalinks(revisions.object_list) error = '' results = revisions.object_list else: error = 'Invalid data' results=[] categories=[] t = loader.get_template('loadHome/table.json') c = Context(locals()) return HttpResponse(t.render(c), content_type="application/json")
def update_list(request): account = request.account auth_manager = request.auth_manager preferences = account.get_preferences() language = request.auth_manager.language resources = ["ds", "vz"] resources.extend([ finder.doc_type for finder in DatalPluginPoint.get_active_with_att('finder') ]) if account.get_preference("account.dataset.show"): resources.append("dt") form = QueryDatasetForm(request.POST) if form.is_valid(): query = form.cleaned_data.get('search') page = form.cleaned_data.get('page') order = form.cleaned_data.get('order') order_elastic = None if order == "0": order_elastic = "title" elif order == "1": order_elastic = "last" order_type = form.cleaned_data.get('order_type') reverse = order_type.lower() == 'ascending' category_filters = form.cleaned_data.get('category_filters') if category_filters: category_filters = category_filters.split(",") builder = ThemeBuilder(preferences, False, language, request.user) data = builder.parse() if data['federated_accounts_ids']: entity = form.cleaned_data.get('entity_filters') if entity: accounts_ids = [int(entity)] else: accounts_ids = data['federated_accounts_ids'] + [account.id] typef = form.cleaned_data.get('type_filters') if typef: if typef in resources: resources = [typef] queryset = FinderQuerySet(FinderManager(HomeFinder), query=query, max_results=250, account_id=accounts_ids, resource=resources, category_filters=category_filters, order=order_elastic, reverse=reverse) else: all_resources = form.cleaned_data.get('all') if not all_resources: resources_type = form.cleaned_data.get('type') aux = [] for resource_name in resources_type.split(','): if resource_name in resources: aux.append(resource_name) resources = aux queryset = FinderQuerySet(FinderManager(HomeFinder), category_filters=category_filters, query=query, resource=resources, max_results=250, order=order_elastic, reverse=reverse, account_id=account.id) paginator = Paginator(queryset, 25) revisions = paginator.page(page and page or 1) if data['federated_accounts_ids']: add_domains_to_permalinks(revisions.object_list) error = '' results = revisions.object_list else: error = 'Invalid data' results = [] categories = [] t = loader.get_template('loadHome/table.json') c = Context(locals()) return HttpResponse(t.render(c), content_type="application/json")
def update_list(request): account = request.account auth_manager = request.auth_manager preferences = account.get_preferences() language = request.auth_manager.language resources = ["ds", "vz"] resources.extend([finder.doc_type for finder in DatalPluginPoint.get_active_with_att('finder')]) if account.get_preference("account.dataset.show"): resources.append("dt") form = QueryDatasetForm(request.POST) if form.is_valid(): query = form.cleaned_data.get('search') page = form.cleaned_data.get('page') order = form.cleaned_data.get('order') order_elastic = None if order == "0": order_elastic = "title" elif order == "1": order_elastic = "last" order_type = form.cleaned_data.get('order_type') reverse = order_type.lower() == 'ascending' category_filters = form.cleaned_data.get('category_filters') if category_filters: category_filters=category_filters.split(",") builder = ThemeBuilder(preferences, False, language, request.user) data = builder.parse() if data['federated_accounts_ids']: entity = form.cleaned_data.get('entity_filters') if entity: accounts_ids = [int(entity)] else: accounts_ids = data['federated_accounts_ids'] + [account.id] typef = form.cleaned_data.get('type_filters') if typef: if typef in resources: resources = [typef] queryset = FinderQuerySet(FinderManager(HomeFinder), query = query, max_results = 250, account_id = accounts_ids, resource = resources, category_filters=category_filters, order = order_elastic, reverse = reverse ) else: all_resources = form.cleaned_data.get('all') if not all_resources: resources_type = form.cleaned_data.get('type') aux = [] for resource_name in resources_type.split(','): if resource_name in resources: aux.append(resource_name) resources=aux queryset = FinderQuerySet(FinderManager(HomeFinder), category_filters= category_filters, query=query, resource=resources, max_results=250, order=order_elastic, reverse = reverse, account_id=account.id ) paginator = Paginator(queryset, 25) revisions = paginator.page(page and page or 1) if data['federated_accounts_ids']: add_domains_to_permalinks(revisions.object_list) error = '' results = revisions.object_list else: error = 'Invalid data' results=[] categories=[] t = loader.get_template('loadHome/table.json') c = Context(locals()) return HttpResponse(t.render(c), content_type="application/json")
def update_list(request): account = request.account auth_manager = request.auth_manager preferences = account.get_preferences() form = QueryDatasetForm(request.POST) if form.is_valid(): query = form.cleaned_data.get('search') page = form.cleaned_data.get('page') order = form.cleaned_data.get('order') order_type = form.cleaned_data.get('order_type') resources = ['ds', 'db', 'vz', 'dt'] category_filters = form.cleaned_data.get('category_filters') if category_filters: category_filters=category_filters.lower().split(",") if preferences['account_home_filters'] == 'featured_accounts': entity = form.cleaned_data.get('entity_filters') if entity: accounts_ids = [int(entity)] else: featured_accounts = account.account_set.values('id').all() accounts_ids = [featured_account['id'] for featured_account in featured_accounts] typef = form.cleaned_data.get('type_filters') if typef: resources = [typef] results, search_time, facets = FinderManager(HomeFinder).search( query = query, max_results = 250, account_id = accounts_ids, resource = resources, category_filters=category_filters, order = order, order_type = order_type) else: all_resources = form.cleaned_data.get('all') if not all_resources: resources_type = form.cleaned_data.get('type') resources = [] for resource_name in resources_type.split(','): resources.append(resource_name) results, search_time, facets = FinderManager(HomeFinder).search( category_filters= category_filters, query=query, resource=resources, max_results=250, order=order, order_type=order_type, account_id=account.id ) ## manual temporary fix for indextank fails #results2 = [] #for r in results: # if r['category'] in categories or categories==[]: # results2.append(r) paginator = Paginator(results, 25) if preferences['account_home_filters'] == 'featured_accounts': add_domains_to_permalinks(results) response = { "number_of_pages": paginator.num_pages, "errors": [], "revisions": paginator.page(page and page or 1).object_list } else: response = { "number_of_pages": 0, "errors": ['Invalid data'], "errores_locos": form.errors, "revisions": [] } results=[] categories=[] response["results_dbg"] = results response["categories_asked_dbg"] = category_filters return HttpResponse(json.dumps(response, cls=DjangoJSONEncoder), mimetype='application/json')
def update_list(request): account = request.account auth_manager = request.auth_manager preferences = account.get_preferences() language = request.auth_manager.language form = QueryDatasetForm(request.POST) if form.is_valid(): query = form.cleaned_data.get('search') page = form.cleaned_data.get('page') order = form.cleaned_data.get('order') order_type = form.cleaned_data.get('order_type') resources = ['ds', 'db', 'vz', 'dt'] category_filters = form.cleaned_data.get('category_filters') if category_filters: category_filters=category_filters.split(",") builder = ThemeBuilder(preferences, False, language, account) data = builder.parse() if data['federated_accounts_ids']: entity = form.cleaned_data.get('entity_filters') if entity: accounts_ids = [int(entity)] else: accounts_ids = data['federated_accounts_ids'] + [account.id] typef = form.cleaned_data.get('type_filters') if typef: resources = [typef] queryset = FinderQuerySet(FinderManager(HomeFinder), query = query, max_results = 250, account_id = accounts_ids, resource = resources, category_filters=category_filters, order = order, order_type = order_type ) else: all_resources = form.cleaned_data.get('all') if not all_resources: resources_type = form.cleaned_data.get('type') resources = [] for resource_name in resources_type.split(','): resources.append(resource_name) queryset = FinderQuerySet(FinderManager(HomeFinder), category_filters= category_filters, query=query, resource=resources, max_results=250, order=order, order_type=order_type, account_id=account.id ) paginator = Paginator(queryset, 25) revisions = paginator.page(page and page or 1) if data['federated_accounts_ids']: add_domains_to_permalinks(revisions.object_list) error = '' results = revisions.object_list else: error = 'Invalid data' results=[] categories=[] t = loader.get_template('loadHome/table.json') c = Context(locals()) return HttpResponse(t.render(c), content_type="application/json")