Exemplo n.º 1
0
def organisation_survey_view(organisation_code, workflow, 
                             workflow_name, organisationsurvey, 
                             allowed_to_edit):
    organisation = Organisation.query.filter_by(
        organisation_code=organisation_code).first_or_404()

    # the next line may be being called for its side effects
    dqsurveys.getSurveyData(organisation_code, workflow_name)

    surveydata = dqsurveys.getSurveyDataAllWorkflows(organisation_code)
    try:
        print surveydata['cso']
    except Exception:
        pass

    indicators = dqindicators.indicators(app.config["INDICATOR_GROUP"])
    org_indicators = dqorganisations._organisation_indicators_split(
        organisation, 2)

    twentytwelvedata = iatidq.survey.mapping.get_organisation_results(
        organisation_code, 
        [i[1]["indicator"]["name"] for i in org_indicators["zero"].items()]
        )

    publishedstatuses = dict(map(id_tuple, dqsurveys.publishedStatus()))
    publishedformats  = dict(map(id_tuple, dqsurveys.publishedFormatAll()))
    years = get_ordinal_values_years()
    year_data = dict(years)
    years.pop()
    donorresponses = donorresponse.RESPONSE_IDS

    old_publication_status = get_old_publication_status()

    admin = usermanagement.check_perms('admin')
    loggedinuser = current_user

    org_indicators['commitment'] = util.resort_sqlalchemy_indicator(org_indicators['commitment'])
    org_indicators['zero'] = util.resort_dict_indicator(org_indicators['zero'])

    return render_template(
        "surveys/_survey_%s.html" % workflow.WorkflowType.name,
        **locals())
Exemplo n.º 2
0
def organisation_publication_unauthorised(organisation_code, aggregation_type):
    aggregation_type=integerise(request.args.get('aggregation_type', 2))
    all_aggregation_types = dqaggregationtypes.aggregationTypes()

    organisation = Organisation.query.filter_by(
        organisation_code=organisation_code).first_or_404()

    aggregate_results = dqorganisations._organisation_indicators_complete_split(
        organisation, aggregation_type)

    packages = dqorganisations.organisationPackages(organisation_code)

    org_indicators = dqindicators.indicators(app.config["INDICATOR_GROUP"])

    lastyearsdata = iatidq.survey.mapping.get_organisation_results(
        organisation_code, 
        [i.name for i in org_indicators]
        )

    publishedformats = dict(map(name_tuple, dqsurveys.publishedFormatsAll()))

    def annotate(res):
        tmp = dict(res)
        name = res["indicator"]["name"]
        lyd = lastyearsdata[name]
        tmp["lastyearsdata"] = lyd
        tmp["lastyearsdata_iati"] = lyd["iati_manual"] == "iati"
        tmp["lastyearsdata_manual"] = lyd["iati_manual"] == "manual"

        def format_and_title():
            if float(lyd["total_points"]) > 0:
                if tmp["lastyearsdata_iati"]:
                    return ("success", "IATI")
                else:
                    pub_format = publishedformats[lyd["publication_format"]]
                    return (pub_format["format_class"],
                            pub_format["title"])
            elif lyd["publication_status"] == "sometimes":
                return ("default", "Sometimes published")
            else:
                return ("inverse", "Not published")

        ly_format, ly_title = format_and_title()
        tmp["lastyearsdata_format"] = ly_format
        tmp["lastyearsdata_title"] = ly_title

        tmp["uses_iati"] = res.get("results_pct", 0) > 0

        return tmp

    result = {
        "commitment": map(annotate, 
                          util.resort_sqlalchemy_indicator(
                aggregate_results['commitment']).values()),
        "publication_organisation": map(annotate,
                                        util.resort_dict_indicator(
                aggregate_results['publication_organisation']).values()),
        "publication_activity": map(annotate,
                                    util.resort_dict_indicator(
                aggregate_results['publication_activity']).values())
        }

    published_status_by_id = dict(map(id_tuple, dqsurveys.publishedStatus()))

    published_status_by_id[None] = {
        'name': 'Unknown',
        'publishedstatus_class': 'label-inverse'
        }

    publishedformats[None] = {
        'name': 'Unknown',
        'format_class': 'label-inverse'
        }

    latest_runtime=1

    years = dict(get_ordinal_values_years())

    payload = {
        "links": {
            "login": url_for('login', next='/organisations/' 
                             + organisation.organisation_code 
                             + '/publication'),
            "orgpage": url_for('organisations', 
			   organisation_code=organisation.organisation_code)
            },
        "organisation": organisation.as_dict(),
        "result": result
        }
    
    json_data = json.dumps(payload, indent=2)

    return render_template("organisation_index_public_2014.html",
                           organisation=organisation,
                           results=aggregate_results,
                           all_aggregation_types=all_aggregation_types,
                           aggregation_type=aggregation_type,
                           packages=packages,
                           admin=usermanagement.check_perms('admin'),
                           loggedinuser=current_user,
                           lastyearsdata=lastyearsdata,
                           publishedformats=publishedformats,
                           years=years,
                           json_data=json_data,
                           old_publication_status = surveys.get_old_publication_status())