Plain is headed towards 1.0! Subscribe for development updates →

 1from plain.http import ResponseRedirect
 2from plain.views import TemplateView
 3
 4from .requests import RequestLog
 5
 6
 7class RequestsView(TemplateView):
 8    template_name = "dev/requests.html"
 9
10    def get_template_context(self):
11        ctx = super().get_template_context()
12        requestlogs = RequestLog.load_json_logs()
13
14        if self.request.query_params.get("log"):
15            try:
16                requestlog = [
17                    x
18                    for x in requestlogs
19                    if x.get("name") == self.request.query_params["log"]
20                ][0]
21            except IndexError:
22                requestlog = None
23        elif requestlogs:
24            requestlog = requestlogs[0]
25        else:
26            requestlog = None
27
28        ctx["requestlogs"] = requestlogs
29        ctx["requestlog"] = requestlog
30
31        return ctx
32
33    def post(self):
34        if self.request.data.get("action") == "clear":
35            RequestLog.clear()
36            return ResponseRedirect(self.request.path)
37        else:
38            RequestLog.replay_request(self.request.data["log"])
39            return ResponseRedirect(".")