def view(): link_name = request.args.get('link_name', '') if link_name: form = ViewFiltersForm() else: form = ViewForm() if request.method=='GET': data_rows_manager = DataRowsManager() view_manager = ViewManager() if link_name: view_manager.set_view(link_name) if data_rows_manager.set_view(link_name): extra_filter = False # Get filters parameters if any filters_name = data_rows_manager.get_filters_name() filters_url_values = {} url = urlparse.urlparse(request.url) query_param = urlparse.parse_qs(url.query) query_param = dict([(k, v[0]) for k, v in query_param.items()]) for name in filters_name: arg = query_param.get(name, '') if arg: # TODO: find a better way to check if it is a dictionnary if '{' in arg: filters_url_values[name] = dict(ast.literal_eval(arg)) else: filters_url_values[name] = arg if filters_url_values: data_rows_manager.set_extra_filters(filters_url_values) arg = query_param.get('sort_by', '') if arg: sort_by = dict(ast.literal_eval(arg)) data_rows_manager.set_extra_sorters(sort_by) view = data_rows_manager.get_view() viewFilters = view_manager.get_filters() form = ViewFiltersForm(obj=viewFilters) form.populate_obj(viewFilters) filter_display = view_manager.get_filter_display(form) return snapins.render_sidebar_template('views/view.html', controller=globals(), form=form, data_rows_manager=data_rows_manager, extra_filter = extra_filter, filter_display = filter_display) else: flash(_(u'View') + ' \'' + link_name + '\' ' + _(u'doesn\'t exist'), 'error') return redirect('/view') else: views = View.query.all() return snapins.render_sidebar_template('views/view.html', views=views, form=form) return snapins.render_sidebar_template('views/view.html', link_name=link_name) elif request.method=='POST': if link_name: viewFilters = form.get_filters() return redirect(add_to_cur_url(request, viewFilters.get_filters())) else: datasource = form.datasource.data return redirect('/edit_view?datasource='+ datasource)
def profile(): form = ProfileForm() if form.validate_on_submit(): language = form.language.data current_user.language = language db_session.commit() flash(_('Profile settings saved successfully!'), 'success') return redirect('/') else: form.language.data = current_user.language return snapins.render_sidebar_template('users/profile.html', version='0.1', form=form)
def edit_view(): link_name = request.args.get('link_name', '') datasource = request.args.get('datasource', '') form = ViewForm(csrf_enabled=True) view_manager = ViewManager() if request.method=='GET': # Store the link_name parameter to use when we will be in post request session['link_name'] = link_name # We want to edit an existing view or create a new one? if link_name: if view_manager.set_view(link_name): view = view_manager.get_view() form = ViewForm(csrf_enabled=True, obj=view) form.populate_obj(view) form.set_columns_choices(view_manager.get_columns_choices()) form.set_links_choices(view_manager.get_links_choices()) columns = view_manager.get_columns() groupers = view_manager.get_groupers() form.set_columns(columns) if groupers: form.set_groupers(groupers) add_default_groupers(form) sorters = view_manager.get_sorters() if sorters: form.set_sorters(sorters) add_default_sorters(form) filters = view_manager.get_filters() #form.populate_obj(filters) else: flash(_(u'View') + ' \'' + link_name + '\' ' + _(u'doesn\'t exist'), 'error') return redirect('/view') else: if not datasource: datasource = 'hosts' view_manager.set_view_dummy(datasource) view = view_manager.get_view() form = ViewForm(csrf_enabled=True, obj=view) form.populate_obj(view) form.columns.append_entry() add_default_sorters(form) add_default_groupers(form) form.set_columns_choices(view_manager.get_columns_choices(), update=True) form.set_links_choices(view_manager.get_links_choices(), update=True) elif request.method=='POST': link_name = session['link_name'] if link_name: saved_view = view_manager.set_view(link_name) form = ViewForm(csrf_enabled=True, obj=saved_view) #form.populate_obj(saved_view) else: view_manager.set_view_dummy(datasource) form.set_links_choices(view_manager.get_links_choices(), update=True) if form.validate_on_submit(): if not link_name: view = form.get_view() view_manager.add_view(view) link_name = view.link_name saved_view = view_manager.set_view(link_name) view_manager.add_columns(form.get_columns(view.id)) view_manager.add_sorters(form.get_sorters(view.id)) view_manager.add_groupers(form.get_groupers(view.id)) view_manager.add_filters(form.get_filters()) db_session.commit() else: view = view_manager.set_view(link_name) view_manager.update_view(form.get_view()) view_manager.update_filters(form.get_filters()) view_manager.add_columns(form.get_columns(view.id), delete_before=True) view_manager.add_groupers(form.get_groupers(view.id), delete_before=True) view_manager.add_sorters(form.get_sorters(view.id), delete_before=True) flash(_(u'View') + ' \'' + view_manager.get_view().title + '\' ' + _(u'saved successfully!'), 'success') return redirect('/view?link_name='+ view_manager.get_view().link_name) filter_display = view_manager.get_filter_display(form.filters) return snapins.render_sidebar_template('views/edit_view.html', link_name=link_name, form=form, filter_display=filter_display)
def index(): return snapins.render_sidebar_template('main.html', current_user=current_user)
def view(): link_name = request.args.get('link_name', '') if link_name: form = ViewFiltersForm() else: form = ViewForm() if request.method == 'GET': data_rows_manager = DataRowsManager() view_manager = ViewManager() if link_name: view_manager.set_view(link_name) if data_rows_manager.set_view(link_name): extra_filter = False # Get filters parameters if any filters_name = data_rows_manager.get_filters_name() filters_url_values = {} url = urlparse.urlparse(request.url) query_param = urlparse.parse_qs(url.query) query_param = dict([(k, v[0]) for k, v in query_param.items()]) for name in filters_name: arg = query_param.get(name, '') if arg: # TODO: find a better way to check if it is a dictionnary if '{' in arg: filters_url_values[name] = dict( ast.literal_eval(arg)) else: filters_url_values[name] = arg if filters_url_values: data_rows_manager.set_extra_filters(filters_url_values) arg = query_param.get('sort_by', '') if arg: sort_by = dict(ast.literal_eval(arg)) data_rows_manager.set_extra_sorters(sort_by) view = data_rows_manager.get_view() viewFilters = view_manager.get_filters() form = ViewFiltersForm(obj=viewFilters) form.populate_obj(viewFilters) filter_display = view_manager.get_filter_display(form) return snapins.render_sidebar_template( 'views/view.html', controller=globals(), form=form, data_rows_manager=data_rows_manager, extra_filter=extra_filter, filter_display=filter_display) else: flash( _(u'View') + ' \'' + link_name + '\' ' + _(u'doesn\'t exist'), 'error') return redirect('/view') else: views = View.query.all() return snapins.render_sidebar_template('views/view.html', views=views, form=form) return snapins.render_sidebar_template('views/view.html', link_name=link_name) elif request.method == 'POST': if link_name: viewFilters = form.get_filters() return redirect(add_to_cur_url(request, viewFilters.get_filters())) else: datasource = form.datasource.data return redirect('/edit_view?datasource=' + datasource)