def activities():
    countries = qactivity.get_iati_list()
    reporting_orgs = list(map(lambda o: {"id": o.id, "name": o.name}, qorganisations.get_reporting_orgs()))
    cl = codelists.get_codelists()
    _cl_domestic_external = [
        {"id": "domestic",
         "name": "Domestic (PSIP / PIU)"},
        {"id": "external",
         "name": "External (Aid / AMCU)"}
    ]
    filters_codelists = [
        ("Reported by", "reporting_org_id", reporting_orgs),
        ("Sector", "mtef-sector", cl["mtef-sector"]),
        ("Aligned Ministry / Agency", "aligned-ministry-agency", cl["aligned-ministry-agency"]),
        ("PAPD Pillar", "papd-pillar", cl["papd-pillar"]),
        ("Activity Status", "activity_status", cl["ActivityStatus"]),
        ("Aid Type", "aid_type", cl["AidType"]),
        ("Domestic / External", "domestic_external", _cl_domestic_external),
        ]
    activity_base_url = url_for("activities.activities")
    earliest, latest = qactivity.get_earliest_latest_dates()
    dates = {
        "earliest": earliest.isoformat() if earliest else None,
        "latest": latest.isoformat() if latest else None
    }
    return render_template("activities.html",
                countries=countries,
                reporting_orgs=reporting_orgs,
                codelists=filters_codelists,
                loggedinuser=current_user,
                stats = qactivity.get_stats(current_user),
                activity_base_url = activity_base_url,
                dates=dates
    )
Exemple #2
0
def profile():
    if current_user.administrator:
        return redirect(url_for("users.users_edit", user_id=current_user.id))

    if request.method == "POST":
        data = {
            k: v
            for k, v in request.form.items() if k in [
                "name", "organisation", "recipient_country_code",
                "change_password", "password"
            ]
        }
        data["id"] = current_user.id
        data["username"] = current_user.username
        data["email_address"] = current_user.email_address

        if quser.updateUser(data):
            flash(gettext(u"Profile successfully updated!"), "success")
        else:
            flash(gettext(u"Sorry, couldn't update!"), "danger")
        return redirect(url_for("users.profile"))

    return render_template("profile.html",
                           codelists=codelists.get_codelists(),
                           user=current_user,
                           loggedinuser=current_user)
def activity_new():
    if request.method == "GET":

        today = datetime.datetime.now().date().isoformat()
        return render_template("activity_edit.html",
                    # Specify some defaults
                    activity = {
                        "flow_type": "10",
                        "aid_type": "C01",
                        "collaboration_type": "1",
                        "finance_type": "110",
                        "tied_status": "5",
                        "start_date": today,
                        "end_date": today,
                        "recipient_country_code": current_user.recipient_country_code,
                    },
                    loggedinuser=current_user,
                    codelists = codelists.get_codelists(),
                    users = quser.user()
                              )

    elif request.method == "POST":
        # Create new activity
        data = request.form.to_dict()
        data["user_id"] = current_user.id
        a = qactivity.create_activity(data)
        if a:
            flash("Successfully added your activity", "success")
        else:
            flash("An error occurred and your activity couldn't be added", "danger")
        return redirect(url_for('activity_edit', activity_id=a.id))
def codelists_management():
    return render_template(
        "codelists.html",
        loggedinuser=current_user,
        codelist_codes=codelists.get_db_codelists(),
        codelist_names=codelists.get_db_codelist_names(),
        countries=codelists.get_codelists()["Country"],
        countries_locations=qlocation.get_countries_locations())
def codelists_management():
    return render_template(
        "codelists.html",
        loggedinuser=current_user,
        codelist_codes=codelists.get_db_codelists(),
        codelist_names=codelists.get_db_codelist_names(),
        countries=codelists.get_codelists()["Country"],
        countries_locations=qlocation.get_countries_locations(),
    )
Exemple #6
0
def import_countries():
    countries = codelists.get_codelists()["Country"]
    for country in countries:
        if country["code"] == "": continue
        c = models.Country()
        c.code = country["code"]
        c.name = country["name"]
        db.session.add(c)
    db.session.commit()
Exemple #7
0
def import_countries(language, country_code=None):
    countries = codelists.get_codelists(language)["Country"]
    if country_code is not None:
        countries = [c for c in countries if c["code"] == country_code]
    for country in countries:
        if country["code"] == "": continue
        c = models.Country()
        c.code = country["code"]
        c.name = country["name"]
        db.session.add(c)
    db.session.commit()
Exemple #8
0
def users_new():
    if request.method == "GET":
        user = {}
        return render_template("user.html",
                               user=user,
                               loggedinuser=current_user,
                               codelists=codelists.get_codelists())
    elif request.method == "POST":
        if quser.addUser(request.form):
            flash(gettext(u"Successfully created user!"), "success")
        else:
            flash(gettext(u"Sorry, couldn't create that user!"), "danger")
        return redirect(url_for("users"))
Exemple #9
0
def users_new():
    if request.method=="GET":
        user = {}
        return render_template("user.html",
                 user = user,
                 loggedinuser=current_user,
                 codelists = codelists.get_codelists())
    elif request.method == "POST":
        if quser.addUser(request.form):
            flash(gettext(u"Successfully created user!"), "success")
        else:
            flash(gettext(u"Sorry, couldn't create that user!"), "danger")
        return redirect(url_for("users"))
Exemple #10
0
def users_edit(user_id):
    if request.method=="GET":
        user = quser.user(user_id)
        return render_template("user.html",
                 user = user,
                 loggedinuser=current_user,
                 codelists = codelists.get_codelists())
    elif request.method == "POST":
        data = request.form.to_dict()
        data["id"] = user_id
        if quser.updateUser(data):
            flash(gettext(u"Successfully updated user!"), "success")
        else:
            flash(gettext(u"Sorry, couldn't update that user!"), "danger")
        return redirect(url_for("users"))
Exemple #11
0
def users_edit(user_id):
    if request.method == "GET":
        user = quser.user(user_id)
        return render_template("user.html",
                               user=user,
                               loggedinuser=current_user,
                               codelists=codelists.get_codelists())
    elif request.method == "POST":
        data = request.form.to_dict()
        data["id"] = user_id
        if quser.updateUser(data):
            flash(gettext(u"Successfully updated user!"), "success")
        else:
            flash(gettext(u"Sorry, couldn't update that user!"), "danger")
        return redirect(url_for("users"))
def activity_edit(activity_id):
    activity = qactivity.get_activity(activity_id)
    locations = qlocation.get_locations_country(
                                    activity.recipient_country_code)
    return render_template("activity_edit.html",
                activity = activity,
                loggedinuser=current_user,
                codelists = codelists.get_codelists(),
                locations = locations,
                api_locations_url ="/api/locations/%s/" % activity.recipient_country_code,
                api_activity_locations_url = "/api/activity_locations/%s/" % activity_id,
                api_activity_finances_url = "/api/activity_finances/%s/" % activity_id,
                api_update_activity_finances_url = "/api/activity_finances/%s/update_finances/" % activity_id,
                users = quser.user()
          )
Exemple #13
0
def users_edit(user_id):
    if not current_user.administrator:
        flash("You must be an administrator to edit users.", "danger")
        return redirect(url_for("activities.dashboard"))
    if request.method == "GET":
        user = quser.user(user_id)
        return render_template(
            "user.html",
            user=user,
            loggedinuser=current_user,
            organisations=qorganisations.get_organisations(),
            codelists=codelists.get_codelists())
    elif request.method == "POST":
        data = request.form.to_dict()
        data["id"] = user_id
        if quser.updateUser(data):
            flash(gettext(u"Successfully updated user!"), "success")
        else:
            flash(gettext(u"Sorry, couldn't update that user!"), "danger")
        return redirect(url_for("users.users_edit", user_id=user_id))
def activity(activity_id):
    activity = qactivity.get_activity(activity_id)
    if not activity:
        return(abort(404))
    locations = qlocation.get_locations_country(
                                    activity.recipient_country_code)
    return render_template(
        "activity.html",
        activity=activity,
        loggedinuser=current_user,
        codelists=codelists.get_codelists(),
        codelist_lookups=codelists.get_codelists_lookups(),
        locations=locations,
        api_locations_url=url_for("api.api_locations", country_code=activity.recipient_country_code),
        api_activity_locations_url=url_for("api.api_activity_locations", activity_id=activity_id),
        api_activity_finances_url=url_for("api.api_activity_finances", activity_id=activity_id),
        api_update_activity_finances_url=url_for("api.finances_edit_attr", activity_id=activity_id),
        api_iati_search_url=url_for("api.api_iati_search"),
        api_activity_forwardspends_url=url_for("api.api_activity_forwardspends", activity_id=activity_id),
        users=quser.user()
    )
def activity_edit(activity_id):
    activity = qactivity.get_activity(activity_id)
    locations = qlocation.get_locations_country(
                                    activity.recipient_country_code)
    return render_template(
        "activity_edit.html",
        activity=activity,
        loggedinuser=current_user,
        codelists=codelists.get_codelists(),
        organisations=qorganisations.get_organisations(),
        locations=locations,
        api_locations_url=url_for("api.api_locations", country_code=activity.recipient_country_code),
        api_activity_locations_url=url_for("api.api_activity_locations", activity_id=activity_id),
        api_activity_finances_url=url_for("api.api_activity_finances", activity_id=activity_id),
        api_activity_milestones_url=url_for("api.api_activity_milestones", activity_id=activity_id),
        api_update_activity_finances_url=url_for("api.finances_edit_attr", activity_id=activity_id),
        api_iati_search_url=url_for("api.api_iati_search"),
        api_activity_forwardspends_url=url_for("api.api_activity_forwardspends", activity_id=activity_id),
        api_activity_counterpart_funding_url = url_for("api.api_activity_counterpart_funding", activity_id=activity_id),
        users=quser.user()
    )
Exemple #16
0
def users_new():
    #if not current_user.administrator:
    #    flash("You must be an administrator to create new users.", "danger")
    #    return redirect(url_for("activities.dashboard"))
    if request.method == "GET":
        user = {
            "permissions_dict": {
                "domestic_external":
                current_user.permissions_dict["domestic_external"]
            },
            "recipient_country_code": "LR"
        }
        return render_template("user.html",
                               user=user,
                               loggedinuser=current_user,
                               codelists=codelists.get_codelists())
    elif request.method == "POST":
        user = quser.addUser(request.form)
        if user:
            flash(gettext(u"Successfully created user!"), "success")
            return redirect(url_for("users.users_edit", user_id=user.id))
        else:
            flash(gettext(u"Sorry, couldn't create that user!"), "danger")
        return redirect(url_for("users.users"))
def activity_new():
    if request.method == "GET":
        today = datetime.datetime.now().date().isoformat()
        return render_template("activity_edit.html",
            # Specify some defaults
            activity = {
                "flow_type": "10",
                "aid_type": "C01",
                "collaboration_type": "1",
                "finance_type": "110",
                "activity_status": "2",
                "tied_status": "5",
                "start_date": today,
                "end_date": today,
                "recipient_country_code": current_user.recipient_country_code,
                "domestic_external": current_user.permissions_dict.get("domestic_external_edit"),
                "organisations": [ # Here we use the role as the ID so it gets submitted but this is a bad hack
                    {"role": 1, "id": 1, "organisation": { "id": ""}},
                    {"role": 4, "id": 4, "organisation": { "id": ""}}
                ],
                "classification_data": {
                    "mtef-sector": {
                        "name": "MTEF Sector",
                        "code": "mtef-sector",
                        "id": "mtef-sector",
                        "entries": [
                            {""}
                        ]
                    },
                    "aft-pillar": {
                        "name": "AfT Pillar",
                        "code": "aft-pillar",
                        "id": "aft-pillar",
                        "entries": [
                            {""}
                        ]
                    },
                    "aligned-ministry-agency": {
                        "name": "Aligned Ministry/Agency",
                        "code": "aligned-ministry-agency",
                        "id": "aligned-ministry-agency",
                        "entries": [
                            {""}
                        ]
                    },
                    "sdg-goals": {
                        "name": "SDG Goals",
                        "code": "sdg-goals",
                        "id": "sdg-goals",
                        "entries": [
                            {""}
                        ]
                    },
                    "papd-pillar": {
                        "name": "PAPD Pillar",
                        "code": "papd-pillar",
                        "id": "papd-pillar",
                        "entries": [
                            {""}
                        ]
                    }
                },
            },
            loggedinuser=current_user,
            organisations = qorganisations.get_organisations(),
            codelists = codelists.get_codelists(),
            users = quser.user()
            )

    elif request.method == "POST":
        # Create new activity
        data = request.form.to_dict()
        data["user_id"] = current_user.id
        a = qactivity.create_activity(data)
        if a:
            flash("Successfully added your activity", "success")
        else:
            flash("An error occurred and your activity couldn't be added", "danger")
        return redirect(url_for('activities.activity_edit', activity_id=a.id))