Example #1
0
def indicatorgroups():
    if not usermanagement.check_perms('admin'):
        return redirect(url_for('indicators', indicatorgroup=app.config["INDICATOR_GROUP"]))
    indicatorgroups = dqindicators.indicatorGroups()
    return render_template("indicatorgroups.html", indicatorgroups=indicatorgroups,
                         admin=usermanagement.check_perms('admin'),
                         loggedinuser=current_user)
Example #2
0
def indicators_edit(indicatorgroup=None, indicator=None):
    indicatorgroups = dqindicators.indicatorGroups()
    if (request.method == 'POST'):
        data = {
            'name': request.form['name'],
            'description': request.form['description'],
            'indicatorgroup_id': request.form['indicatorgroup_id'],
            'longdescription': request.form['longdescription'],
            'indicator_type': request.form.get("indicator_type"),
            'indicator_category_name': request.form.get("indicator_category_name"),
            'indicator_subcategory_name': request.form.get("indicator_subcategory_name"),
            'indicator_ordinal': request.form.get("indicator_ordinal", None),
            'indicator_noformat': request.form.get("indicator_noformat", None),
            'indicator_order': request.form.get("indicator_order", None),
            'indicator_weight': request.form.get("indicator_weight", None)
        }
        indicator = dqindicators.updateIndicator(indicatorgroup, indicator, data)
        flash('Successfully updated Indicator', 'success')
    else:
        indicator = dqindicators.indicators(indicatorgroup, indicator)
    return render_template("indicator_edit.html", 
                         indicatorgroups=indicatorgroups, 
                         indicator=indicator,
                         admin=usermanagement.check_perms('admin'),
                         loggedinuser=current_user)
Example #3
0
def indicators_new(indicatorgroup=None):
    indicatorgroups = dqindicators.indicatorGroups()
    if (request.method == 'POST'):
        data = {
            'name': request.form['name'],
            'description': request.form['description'],
            'indicatorgroup_id': request.form['indicatorgroup_id'],
            'longdescription': request.form.get("longdescription"),
            'indicator_type': request.form.get("indicator_type"),
            'indicator_category_name': request.form.get("indicator_category_name"),
            'indicator_subcategory_name': request.form.get("indicator_subcategory_name"),
            'indicator_ordinal': request.form.get("indicator_ordinal", None),
            'indicator_noformat': request.form.get("indicator_noformat", None),
            'indicator_order': request.form.get("indicator_order", None),
            'indicator_weight': request.form.get("indicator_weight", None)
        }
        indicator = dqindicators.addIndicator(data)
        if indicator:
            flash('Successfully added Indicator.', 'success')
        else:
            flash("Couldn't add Indicator. Maybe one already exists with the same name?", 'error')
    else:
        indicator = None
    return render_template("indicator_edit.html", 
                         indicatorgroups=indicatorgroups, 
                         indicator=indicator,
                         admin=usermanagement.check_perms('admin'),
                         loggedinuser=current_user)
Example #4
0
def indicators(indicatorgroup=None):
    its = {}
    indicators = dqindicators.indicatorsTests(indicatorgroup)

    indicatorgroup = dqindicators.indicatorGroups(indicatorgroup)

    for indicator in indicators:
        ind_id = indicator.Indicator.id
        if ind_id not in its:
            its[ind_id] = {}
        its[ind_id].update(indicator.Indicator.as_dict())
        its[ind_id]["indicator_type"] = its[ind_id]["indicator_type"].title()
        if its[ind_id]["indicator_category_name"]:
            its[ind_id]["indicator_type"] += " - " + its[ind_id]["indicator_category_name"]
        if True:
            if ('test' not in its[ind_id]):
                its[ind_id]['test'] = []
        if indicator.Test:
            test_data = indicator.Test.as_dict()
            test_data['test_id'] = test_data['id']
            del(test_data['id'])
            its[ind_id]['test'].append(test_data)
        its[ind_id]["links"] = {
            "edit": url_for('indicators_edit', 
                            indicatorgroup=indicatorgroup.name, 
                            indicator=indicator.Indicator.name),
            "delete": url_for('indicators_delete', 
                              indicatorgroup=indicatorgroup.name, 
                              indicator=indicator.Indicator.name)
            }

    its = util.resort_indicator_tests(its)

    links = {
        "edit_group": url_for('indicatorgroups_edit', 
                              indicatorgroup=indicatorgroup.name),
        "delete_group": url_for('indicatorgroups_delete', 
                                indicatorgroup=indicatorgroup.name),
        "new_indicator": url_for('indicators_new', 
                                 indicatorgroup=indicatorgroup.name),
        "csv_assoc_tests": url_for('indicatorgroup_tests_csv', 
                                   indicatorgroup=indicatorgroup.name),
        "csv_unassoc_tests": url_for('indicatorgroup_tests_csv', 
                                     indicatorgroup=indicatorgroup.name,
                                     option="no")
        }

    indicator_data = [ v for k,v in its.items() ]

    json_data = json.dumps({ 
            "indicator": indicator_data,
            "indicatorgroup": indicatorgroup.as_dict(),
            "admin": usermanagement.check_perms('admin'),
            "links": links
            }, indent=2)

    return render_template("indicators.html", 
                        admin=usermanagement.check_perms('admin'),
                        loggedinuser=current_user,
                        json_data=json_data)
def indicators(indicatorgroup=None):
    indicators = dqindicators.indicators(indicatorgroup)
    indicatorgroup = dqindicators.indicatorGroups(indicatorgroup)
    return render_template("indicators.html", 
                        indicatorgroup=indicatorgroup, 
                        indicators=indicators,
                        admin=usermanagement.check_perms('admin'),
                        loggedinuser=current_user)
Example #6
0
def indicatorgroups_edit(indicatorgroup=None):
    if (request.method == 'POST'):
        data = {
            'name': request.form['name'],
            'description': request.form['description']
        }
        indicatorgroup = dqindicators.updateIndicatorGroup(indicatorgroup, data)
        flash('Successfully updated IndicatorGroup', 'success')
    else:
        indicatorgroup = dqindicators.indicatorGroups(indicatorgroup)
    return render_template("indicatorgroups_edit.html", indicatorgroup=indicatorgroup,
                 admin=usermanagement.check_perms('admin'),
                 loggedinuser=current_user)
Example #7
0
def indicatortests(indicatorgroup=None, indicator=None):
    alltests = dqindicators.allTests()
    indicator = dqindicators.indicators(indicatorgroup, indicator)
    indicatorgroup = dqindicators.indicatorGroups(indicatorgroup)
    if (request.method == 'POST'):
        for test in request.form.getlist('test'):
            data = {
                    'indicator_id': indicator.id,
                    'test_id': test
            }
            if dqindicators.addIndicatorTest(data):
                flash('Successfully added test to your indicator.', 'success')
            else:
                flash("Couldn't add test to your indicator.", 'error')
    indicatortests = dqindicators.indicatorTests(indicatorgroup.name, indicator.name)
    return render_template("indicatortests.html", 
                         indicatorgroup=indicatorgroup, 
                         indicator=indicator, 
                         indicatortests=indicatortests, 
                         alltests=alltests,
                         admin=usermanagement.check_perms('admin'),
                         loggedinuser=current_user)