示例#1
0
文件: views.py 项目: jvgriffis/OTM2
    return {'start_status': 'OK', 'job_id': job.pk}


def check_export(request, instance, job_id):

    job = get_object_or_404(ExportJob, pk=job_id)

    # if a job has a user, it means the user must
    # be authenticated so only the job user can
    # retrieve the export
    if job.user and job.user != request.user:
        return {'status': 'ERROR',
                'message': 'Job not initiated by user',
                'url': None}

    else:
        return {'status': ExportJob.STATUS_STRINGS[job.status],
                'message': ExportJob.STATUS_CHOICES[job.status],
                'url': job.get_url_if_ready()}


begin_export_endpoint = json_api_call(
    instance_request(
        requires_feature('exports')(
            begin_export)))
check_export_endpoint = json_api_call(
    instance_request(
        requires_feature('exports')(
            check_export)))
示例#2
0
文件: views.py 项目: jvgriffis/OTM2
    else:
        region_code = instance.itree_region_default

    rslt = {}
    if not dbh:
        rslt = {'benefits': {}, 'error': 'MISSING_DBH'}
    elif not otm_code:
        rslt = {'benefits': {}, 'error': 'MISSING_SPECIES'}
    else:
        rslt = {'benefits':
                _benefits_for_trees(
                    [{'species__otm_code': otm_code,
                      'diameter': dbh,
                      'itree_region_code': region_code}])}

    return rslt


def within_itree_regions(request):
    x = request.GET.get('x', None)
    y = request.GET.get('y', None)
    return (bool(x) and bool(y) and
            ITreeRegion.objects
            .filter(geometry__contains=Point(float(x),
                                             float(y))).exists())

within_itree_regions_view = json_api_call(within_itree_regions)

tree_benefits_view = json_api_call(
    instance_request(strip_request(tree_benefits)))
示例#3
0
文件: views.py 项目: jvgriffis/OTM2
    """
    viewbox = _get_viewbox_from_request(request)

    address = request.REQUEST['address']

    pq = PlaceQuery(query=address, viewbox=viewbox)

    geocode_result = geocoder.geocode(pq)
    candidates = geocode_result.get('candidates', None)

    if not candidates or len(candidates) == 0:
        return _no_results_response(address)
    else:
        candidates = [_omgeo_candidate_to_dict(c) for c in candidates]

        if _contains_bbox(request):
            bbox = {'xmin': request.REQUEST['xmin'],
                    'ymin': request.REQUEST['ymin'],
                    'xmax': request.REQUEST['xmax'],
                    'ymax': request.REQUEST['ymax']}

            candidates = [c for c in candidates if _in_bbox(bbox, c)]

            if len(candidates) == 0:
                return _no_results_response(address, inregion=True)

        return {'candidates': candidates}


geocode_view = json_api_call(geocode)
示例#4
0
文件: views.py 项目: jvgriffis/OTM2
map_view = instance_request(render_template("treemap/map.html", _get_map_view_context))

get_plot_detail_view = instance_request(render_template("treemap/plot_detail.html", plot_detail))

edit_plot_detail_view = login_required(
    instance_request(creates_instance_user(render_template("treemap/plot_detail.html", plot_detail)))
)

get_plot_eco_view = instance_request(etag(_plot_hash)(render_template("treemap/partials/plot_eco.html", plot_detail)))

get_plot_sidebar_view = instance_request(
    etag(_plot_hash)(render_template("treemap/partials/sidebar.html", plot_detail))
)

update_plot_detail_view = login_or_401(json_api_call(instance_request(creates_instance_user(update_plot_detail))))

plot_popup_view = instance_request(etag(_plot_hash)(render_template("treemap/partials/plot_popup.html", plot_detail)))

plot_accordion_view = instance_request(render_template("treemap/plot_accordion.html", plot_detail))

add_plot_view = require_http_method("POST")(
    login_or_401(json_api_call(instance_request(creates_instance_user(add_plot))))
)

root_settings_js_view = render_template(
    "treemap/settings.js", {"BING_API_KEY": settings.BING_API_KEY}, mimetype="application/javascript"
)

instance_settings_js_view = instance_request(
    render_template("treemap/settings.js", {"BING_API_KEY": settings.BING_API_KEY}, mimetype="application/javascript")