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 )
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(), )
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()
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()
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"))
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"))
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 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() )
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() )
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))