def get_all_queries(): """Return all queries. Returns: """ return Query.objects().all()
def generate_queries(self): """Generate queries Returns: """ self.query_user1 = Query(user_id="1").save()
def _create_query(): data_source = _create_data_source() query = Query( user_id="1", content="{'root.value': 'test'}", templates=[], data_sources=[data_source], ) return query
def create_default_query(request, template_ids): """create a new Query object Args: request: template_ids: Returns: """ # create new query object query = Query(user_id=str(request.user.id), templates=template_ids) if EXPLORE_ADD_DEFAULT_LOCAL_DATA_SOURCE_TO_QUERY: # add the local data source by default add_local_data_source(request, query) # add a default empty query content query.content = "{}" return query
def get_by_id(id_query, user): """Returns a query with the given id Args: id_query: Returns: """ return Query.get_by_id(id_query)
def _create_new_query(user_id, type_): """ Create a new query Args: user_id: type_: """ # Get templates using the given Type # Here we should get all dependencies recurcively and remove all template.type from the list # Passing an empty list is a quick fix # templates = template_api.get_all_templates_by_dependencies([type_]) # Create query query = Query(user_id=str(user_id), templates=[]) return query_api.upsert(query)
def get_redirect_url(self, *args, **kwargs): try: # here we receive a PersistentQuery id persistent_query_example = self._get_persistent_query(kwargs['persistent_query_id']) # from it we have to duplicate it to a Query with the new user_id # we should probably add the query_id into the persistent query? # to avoid to recreate this query each time we visit the persistent URL query = Query(user_id=str(self.request.user.id), content=persistent_query_example.content, templates=persistent_query_example.templates, data_sources=persistent_query_example.data_sources) query = query_api.upsert(query) # then redirect to the result page core_explore_example_results with /<template_id>/<query_id> return self._get_reversed_url(query) except Exception, e: # add success message messages.add_message(self.request, messages.ERROR, 'The given URL is not valid.') return self._get_reversed_url_if_failed()
def get_redirect_url(self, *args, **kwargs): try: # here we receive a PersistentQuery name or id persistent_query_id = self.request.GET.get("id", None) persistent_query_name = self.request.GET.get("name", None) if persistent_query_id is not None: persistent_query = self._get_persistent_query_by_id( persistent_query_id, self.request.user) elif persistent_query_name is not None: persistent_query = self._get_persistent_query_by_name( persistent_query_name, self.request.user) else: messages.add_message(self.request, messages.ERROR, "Expecting id or name.") return self._get_reversed_url_if_failed() # from it we have to duplicate it to a Query with the new user_id # we should probably add the query_id into the persistent query? # to avoid to recreate this query each time we visit the persistent URL query = Query( user_id=str(self.request.user.id), content=persistent_query.content, templates=persistent_query.templates, data_sources=persistent_query.data_sources, ) query = query_api.upsert(query, self.request.user) # then redirect to the result page core_explore_example_results with /<template_id>/<query_id> return self._get_reversed_url(query) except AccessControlError: # add error message messages.add_message(self.request, messages.ERROR, "Access Forbidden.") return self._get_reversed_url_if_failed() except Exception as e: # add error message messages.add_message(self.request, messages.ERROR, "The given URL is not valid.") return self._get_reversed_url_if_failed()
def tiles(request): """ :param request: :return: """ from django.conf import settings installed_apps = settings.INSTALLED_APPS context = {"tiles": []} if "core_explore_keyword_registry_app" in installed_apps: from core_explore_keyword_registry_app.views.user.forms import RefinementForm from core_explore_common_app.components.query import api as query_api from core_explore_common_app.components.query.models import Query from core_explore_common_app.views.user.ajax import add_local_data_source from core_main_registry_app.components.refinement import api as refinement_api from core_main_registry_app.components.category import api as category_api from core_main_registry_app.components.template import ( api as template_registry_api, ) from core_main_registry_app.components.custom_resource import ( api as custom_resource_api, ) from core_main_app.commons import exceptions as exceptions # create Query query = Query(user_id=str(request.user.id), templates=[]) # add local data source to the query add_local_data_source(request, query) # set visibility query_api.set_visibility_to_query(query) # upsert the query query_api.upsert(query) # add information in context to populate keyword form context.update( { "query_id": str(query.id), "user_id": query.user_id, "order_by_field": ",".join(DATA_SORTING_FIELDS), } ) try: # Get current template template = template_registry_api.get_current_registry_template() # Get type refinement refinement = refinement_api.get_by_template_hash_and_by_slug( template_hash=template.hash, slug="type" ) # Refinement form ID refinement_form_id = "{0}-{1}".format( RefinementForm.prefix, refinement.slug ) context["refinement_form_id"] = refinement_form_id # Shorter api name get_categories = ( category_api.get_all_categories_ids_from_name_and_refinement_id ) custom_resources = custom_resource_api.get_all_of_current_template().order_by( "sort" ) for custom_resource in custom_resources: if ( custom_resource.display_icon and custom_resource.role_type is not None ): tile = { "logo": custom_resource.icon, "color": custom_resource.icon_color, "categories": get_categories( custom_resource.role_type.split(":")[0], refinement.id ), "title": custom_resource.title, "text": "Click here to explore the {0}.".format( custom_resource.title ), } context["tiles"].append(tile) except (exceptions.DoesNotExist, exceptions.ModelError) as e: logger.error( "Error while getting information from the database: {0}".format(str(e)) ) except Exception as ex: logger.error( "Something wrong occurred during the tiles " "generation: {0}".format(str(ex)) ) return render(request, "nmrr_home/tiles.html", context)
def tiles(request): """ :param request: :return: """ from django.conf import settings installed_apps = settings.INSTALLED_APPS context = {"tiles": []} if "core_explore_keyword_registry_app" in installed_apps: from core_explore_keyword_registry_app.views.user.forms import RefinementForm from core_explore_common_app.components.query import api as query_api from core_explore_common_app.components.query.models import Query from core_explore_common_app.views.user.ajax import add_local_data_source from core_main_registry_app.components.refinement import api as refinement_api from core_main_registry_app.components.category import api as category_api from core_main_registry_app.components.template import api as template_registry_api from core_main_app.commons import exceptions as exceptions # create Query query = Query(user_id=str(request.user.id), templates=[]) query_api.upsert(query) # add local data source to the query add_local_data_source(request, query) # add information in context to populate keyword form context.update({"query_id": str(query.id), "user_id": query.user_id}) try: # Get current template template = template_registry_api.get_current_registry_template() # Get type refinement refinement = refinement_api.get_by_template_hash_and_by_slug( template_hash=template.hash, slug='type') # Refinement form ID refinement_form_id = "{0}-{1}".format(RefinementForm.prefix, refinement.slug) context["refinement_form_id"] = refinement_form_id # Shorter api name get_categories = category_api.get_all_categories_ids_by_parent_slug_and_refinement_id organizations_tile = { "logo": "fa-university", "color": "#2CAAE2", "categories": get_categories('organization', refinement.id), "title": "Organizations", "text": "Click here to explore the Organizations." } context["tiles"].append(organizations_tile) data_collections_tile = { "logo": "fa-table", "color": "#A1C057", "categories": get_categories('collection', refinement.id), "title": "Data Collections", "text": "Click here to explore the Data Collections." } context["tiles"].append(data_collections_tile) datasets_tile = { "logo": "fa-database", "color": "grey", "categories": get_categories('dataset', refinement.id), "title": "Datasets", "text": "Click here to explore the Datasets." } context["tiles"].append(datasets_tile) services_tile = { "logo": "fa-cogs", "color": "#EBB057;", "categories": get_categories('service', refinement.id), "title": "Services", "text": "Click here to explore the Services." } context["tiles"].append(services_tile) informational_tile = { "logo": "fa-laptop", "color": "#257ABC;", "categories": get_categories('web-site', refinement.id), "title": "Informational Sites", "text": "Click here to explore the Informational Sites." } context["tiles"].append(informational_tile) software_tile = { "logo": "fa-tachometer", "color": "#79B320;", "categories": get_categories('software', refinement.id), "title": "Software", "text": "Click here to explore the Software." } context["tiles"].append(software_tile) except (exceptions.DoesNotExist, exceptions.ModelError), e: logger.error( "Error while getting information from the database: {0}". format(e.message)) except Exception, ex: logger.error("Something wrong occurred during the tiles " "generation: {0}".format(ex.message))