Source code for magpie.ui.home.views

from pyramid.httpexceptions import status_map
from pyramid.renderers import render_to_response
from pyramid.security import NO_PERMISSION_REQUIRED
from pyramid.view import view_config

from magpie.ui.utils import BaseViews
from magpie.utils import get_json


[docs] class HomeViews(BaseViews): @view_config(route_name="home", renderer="templates/home.mako", permission=NO_PERMISSION_REQUIRED) @view_config(route_name="home_ui", renderer="templates/home.mako", permission=NO_PERMISSION_REQUIRED)
[docs] def home_view(self): return self.add_template_data()
@view_config(route_name="error", permission=NO_PERMISSION_REQUIRED)
[docs] def error_view(self): """ Generates the wrapped API error view for cleaner error page returned by the UI. Renders a controlled UI error page with viewable details of the error generated by an API sub-request or some generic processing operation. The API HTTP error status code is forwarded to this UI response. """ def get_any_detail(): req_data = data.get("error_request", {}) return data.get("detail", data.get("explanation", req_data.get("detail", http.explanation))) data = {} if self.request.method == "POST": data = get_json(self.request) data = self.add_template_data(data) data.setdefault("error_code", 500) http = status_map[data["error_code"]] data.setdefault("error_title", data.get("title", http.title)) data.setdefault("error_detail", get_any_detail()) data.setdefault("error_image", "forbidden" if data["error_code"] in [401, 403] else "exclamation-circle") resp = render_to_response("templates/error.mako", data, request=self.request) resp.status_int = data["error_code"] return resp