Exemple #1
0
def handle_main_filters(relations: areas.Relations,
                        refcounty_id: str) -> yattag.doc.Doc:
    """Handlers the filter part of the main wsgi page."""
    items: List[yattag.doc.Doc] = []
    doc = yattag.doc.Doc()
    prefix = config.Config.get_uri_prefix()
    with doc.tag("a", href=prefix + "/filter-for/incomplete"):
        doc.text(_("Hide complete areas"))
    items.append(doc)
    # Sorted set of refcounty values of all relations.
    for refcounty in sorted({
            relation.get_config().get_refcounty()
            for relation in relations.get_relations()
    }):
        items.append(
            handle_main_filters_refcounty(relations, refcounty_id, refcounty))
    doc = yattag.doc.Doc()
    with doc.tag("h1"):
        doc.text(_("Where to map?"))
    with doc.tag("p"):
        doc.text(_("Filters:") + " ")
        for index, item in enumerate(items):
            if index:
                doc.text(" ¦ ")
            doc.asis(item.getvalue())
    return doc
Exemple #2
0
def handle_invalid_refstreets(ctx: context.Context,
                              relations: areas.Relations) -> yattag.doc.Doc:
    """Expected request_uri: e.g. /osm/housenumber-stats/hungary/invalid-relations."""
    doc = yattag.doc.Doc()
    doc.asis(get_toolbar(ctx, relations).getvalue())

    prefix = ctx.get_ini().get_uri_prefix()
    for relation in relations.get_relations():
        if not ctx.get_file_system().path_exists(
                relation.get_files().get_osm_streets_path()):
            continue
        invalid_refstreets = relation.get_invalid_refstreets()
        osm_invalids, ref_invalids = invalid_refstreets
        key_invalids = relation.get_invalid_filter_keys()
        if not osm_invalids and not ref_invalids and not key_invalids:
            continue
        with doc.tag("h1"):
            relation_name = relation.get_name()
            with doc.tag("a",
                         href=prefix + "/streets/" + relation_name +
                         "/view-result"):
                doc.text(relation_name)
        doc.asis(
            util.invalid_refstreets_to_html(invalid_refstreets).getvalue())
        doc.asis(util.invalid_filter_keys_to_html(key_invalids).getvalue())

    doc.asis(get_footer().getvalue())
    return doc
Exemple #3
0
def handle_main_filters(ctx: context.Context, relations: areas.Relations,
                        refcounty_id: str) -> yattag.doc.Doc:
    """Handlers the filter part of the main wsgi page."""
    items: List[yattag.doc.Doc] = []

    doc = yattag.doc.Doc()
    with doc.tag("span", id="filter-based-on-position"):
        with doc.tag("a", href="#"):
            doc.text(tr("Based on position"))
    items.append(doc)

    doc = yattag.doc.Doc()
    prefix = ctx.get_ini().get_uri_prefix()
    with doc.tag("a", href=prefix + "/filter-for/everything"):
        doc.text(tr("Show complete areas"))
    items.append(doc)

    # Sorted set of refcounty values of all relations.
    for refcounty in sorted({
            relation.get_config().get_refcounty()
            for relation in relations.get_relations()
    }):
        items.append(
            handle_main_filters_refcounty(ctx, relations, refcounty_id,
                                          refcounty))
    doc = yattag.doc.Doc()
    with doc.tag("h1"):
        doc.text(tr("Where to map?"))
    with doc.tag("p"):
        doc.text(tr("Filters:") + " ")
        for index, item in enumerate(items):
            if index:
                doc.text(" ¦ ")
            doc.asis(item.getvalue())

    # Emit localized strings for JS purposes.
    with doc.tag("div", style="display: none;"):
        string_pairs = [
            ("str-gps-wait", tr("Waiting for GPS...")),
            ("str-gps-error", tr("Error from GPS: ")),
            ("str-overpass-wait", tr("Waiting for Overpass...")),
            ("str-overpass-error", tr("Error from Overpass: "******"str-relations-wait", tr("Waiting for relations...")),
            ("str-relations-error", tr("Error from relations: ")),
            ("str-redirect-wait", tr("Waiting for redirect...")),
        ]
        for key, value in string_pairs:
            kwargs: Dict[str, str] = {}
            kwargs["id"] = key
            kwargs["data-value"] = value
            with doc.tag("div", **kwargs):
                pass
    return doc
Exemple #4
0
def handle_invalid_refstreets(relations: areas.Relations) -> yattag.doc.Doc:
    """Expected request_uri: e.g. /osm/housenumber-stats/hungary/invalid-refstreets."""
    doc = yattag.doc.Doc()
    doc.asis(get_toolbar(relations).getvalue())

    for relation in relations.get_relations():
        invalid_refstreets = areas.get_invalid_refstreets(relation)
        osm_invalids, ref_invalids = invalid_refstreets
        if not osm_invalids and not ref_invalids:
            continue
        with doc.tag("h1"):
            doc.text(relation.get_name())
        doc.asis(
            util.invalid_refstreets_to_html(invalid_refstreets).getvalue())

    doc.asis(get_footer().getvalue())
    return doc