def explore(sketch_id, view_id=None, searchtemplate_id=None): """Generates the sketch explore view template. Returns: Template with context. """ save_view = False # If the view should be saved to the database. sketch = Sketch.query.get_with_acl(sketch_id) sketch_timelines = [t.searchindex.index_name for t in sketch.timelines] view_form = SaveViewForm() graphs_enabled = current_app.config['GRAPH_BACKEND_ENABLED'] similarity_enabled = current_app.config.get('ENABLE_EXPERIMENTAL_UI') # Get parameters from the GET query url_query = request.args.get('q', '') url_time_start = request.args.get('time_start', None) url_time_end = request.args.get('time_end', None) url_index = request.args.get('index', None) url_size = request.args.get('size', None) if searchtemplate_id: searchtemplate = SearchTemplate.query.get(searchtemplate_id) view = sketch.get_user_view(current_user) if not view: view = View(user=current_user, name='', sketch=sketch) view.query_string = searchtemplate.query_string view.query_filter = searchtemplate.query_filter view.query_dsl = searchtemplate.query_dsl save_view = True elif view_id: view = View.query.get(view_id) # Check that this view belongs to the sketch if view.sketch_id != sketch.id: abort(HTTP_STATUS_CODE_NOT_FOUND) # Return 404 if view is deleted if view.get_status.status == 'deleted': return abort(HTTP_STATUS_CODE_NOT_FOUND) else: view = sketch.get_user_view(current_user) if not view: view = View( user=current_user, name='', sketch=sketch, query_string='*') view.query_filter = view.validate_filter( dict(indices=sketch_timelines)) save_view = True if url_query: view.query_string = url_query query_filter = json.loads(view.query_filter) query_filter['from'] = 0 # if we loaded from get, start at first event query_filter['time_start'] = url_time_start query_filter['time_end'] = url_time_end if url_index in sketch_timelines: query_filter['indices'] = [url_index] if url_size: query_filter['size'] = url_size view.query_filter = view.validate_filter(query_filter) view.query_dsl = None save_view = True if save_view: db_session.add(view) db_session.commit() return render_template( 'sketch/explore.html', sketch=sketch, view=view, named_view=view_id, timelines=sketch_timelines, view_form=view_form, searchtemplate_id=searchtemplate_id, graphs_enabled=graphs_enabled, similarity_enabled=similarity_enabled)
def explore(sketch_id, view_id=None, searchtemplate_id=None): """Generates the sketch explore view template. Returns: Template with context. """ save_view = False # If the view should be saved to the database. sketch = Sketch.query.get_with_acl(sketch_id) sketch_timelines = [t.searchindex.index_name for t in sketch.timelines] view_form = SaveViewForm() graphs_enabled = current_app.config['GRAPH_BACKEND_ENABLED'] similarity_enabled = current_app.config.get('ENABLE_EXPERIMENTAL_UI') # Get parameters from the GET query url_query = request.args.get('q', '') url_time_start = request.args.get('time_start', None) url_time_end = request.args.get('time_end', None) url_index = request.args.get('index', None) url_size = request.args.get('size', None) if searchtemplate_id: searchtemplate = SearchTemplate.query.get(searchtemplate_id) view = sketch.get_user_view(current_user) if not view: view = View(user=current_user, name='', sketch=sketch) view.query_string = searchtemplate.query_string view.query_filter = searchtemplate.query_filter view.query_dsl = searchtemplate.query_dsl save_view = True elif view_id: view = View.query.get(view_id) # Check that this view belongs to the sketch if view.sketch_id != sketch.id: abort(HTTP_STATUS_CODE_NOT_FOUND) # Return 404 if view is deleted if view.get_status.status == 'deleted': return abort(HTTP_STATUS_CODE_NOT_FOUND) else: view = sketch.get_user_view(current_user) if not view: view = View(user=current_user, name='', sketch=sketch, query_string='*') view.query_filter = view.validate_filter( dict(indices=sketch_timelines)) save_view = True if url_query: view.query_string = url_query query_filter = json.loads(view.query_filter) query_filter['from'] = 0 # if we loaded from get, start at first event query_filter['time_start'] = url_time_start query_filter['time_end'] = url_time_end if url_index in sketch_timelines: query_filter['indices'] = [url_index] if url_size: query_filter['size'] = url_size view.query_filter = view.validate_filter(query_filter) view.query_dsl = None save_view = True if save_view: db_session.add(view) db_session.commit() return render_template('sketch/explore.html', sketch=sketch, view=view, named_view=view_id, timelines=sketch_timelines, view_form=view_form, searchtemplate_id=searchtemplate_id, graphs_enabled=graphs_enabled, similarity_enabled=similarity_enabled)
def explore(sketch_id, view_id=None, searchtemplate_id=None): """Generates the sketch explore view template. Returns: Template with context. """ save_view = False # If the view should be saved to the database. sketch = Sketch.query.get_with_acl(sketch_id) sketch_timelines = [t.searchindex.index_name for t in sketch.timelines] view_form = SaveViewForm() # Get parameters from the GET query url_query = request.args.get(u'q', u'') url_time_start = request.args.get(u'time_start', None) url_time_end = request.args.get(u'time_end', None) url_index = request.args.get(u'index', None) url_limit = request.args.get(u'limit', None) if searchtemplate_id: searchtemplate = SearchTemplate.query.get(searchtemplate_id) view = sketch.get_user_view(current_user) if not view: view = View(user=current_user, name=u'', sketch=sketch) view.query_string = searchtemplate.query_string view.query_filter = searchtemplate.query_filter view.query_dsl = searchtemplate.query_dsl save_view = True elif view_id: view = View.query.get(view_id) # Check that this view belongs to the sketch if view.sketch_id != sketch.id: abort(HTTP_STATUS_CODE_NOT_FOUND) # Return 404 if view is deleted if view.get_status.status == u'deleted': return abort(HTTP_STATUS_CODE_NOT_FOUND) else: view = sketch.get_user_view(current_user) if not view: view = View( user=current_user, name=u'', sketch=sketch, query_string=u'*') view.query_filter = view.validate_filter( dict(indices=sketch_timelines)) save_view = True if url_query: view.query_string = url_query query_filter = json.loads(view.query_filter) query_filter[u'time_start'] = url_time_start query_filter[u'time_end'] = url_time_end if url_index in sketch_timelines: query_filter[u'indices'] = [url_index] if url_limit: query_filter[u'limit'] = url_limit view.query_filter = view.validate_filter(query_filter) view.query_dsl = None save_view = True if save_view: db_session.add(view) db_session.commit() return render_template( u'sketch/explore.html', sketch=sketch, view=view, named_view=view_id, timelines=sketch_timelines, view_form=view_form, searchtemplate_id=searchtemplate_id)