Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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) 
Ejemplo n.º 4
0
def index():
    return snapins.render_sidebar_template('main.html', current_user=current_user)
Ejemplo n.º 5
0
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)