api.views.prepare_series is only used in two places, the search
and applier-get endpoints. Simplify a bit the code by dropping support
for the git properties in the search endpoint, and add a result URI
that can be used for patchew-cli's applier mode to switch to the REST
API.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
api/rest.py | 2 +-
api/views.py | 4 ----
mods/git.py | 30 +++++++++++++++++-------------
3 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/api/rest.py b/api/rest.py
index bd46211..646d6ad 100644
--- a/api/rest.py
+++ b/api/rest.py
@@ -102,7 +102,7 @@ def reverse_detail(obj, request):
request=request,
kwargs={"projects_pk": m.project.id,
"series_message_id": m.message_id,
- "name": obj.name}),
+ "name": obj.name})
raise Error("unhandled object type")
# pluggable field for plugin support
diff --git a/api/views.py b/api/views.py
index 7a37481..f2262b6 100644
--- a/api/views.py
+++ b/api/views.py
@@ -168,8 +168,6 @@ def prepare_series(request, s, fields=None):
r["subject"] = s.subject
if want_field("project"):
r["project"] = s.project.name
- if want_field("project.git"):
- r["project.git"] = s.project.git
if want_field("message-id"):
r["message-id"] = s.message_id
if want_field("patches"):
@@ -178,8 +176,6 @@ def prepare_series(request, s, fields=None):
r["properties"] = s.get_properties()
if want_field("is_complete"):
r["is_complete"] = s.is_complete
- dispatch_module_hook("prepare_series_hook", request=request, series=s,
- response=r)
if fields:
r = dict([(k, v) for k, v in r.items() if k in fields])
return r
diff --git a/mods/git.py b/mods/git.py
index 924547a..97db081 100644
--- a/mods/git.py
+++ b/mods/git.py
@@ -19,7 +19,7 @@ from django.utils.html import format_html
from mod import PatchewModule
from event import declare_event, register_handler, emit_event
from api.models import Message, MessageProperty, Project, Result
-from api.rest import PluginMethodField
+from api.rest import PluginMethodField, reverse_detail
from api.views import APILoginRequiredView, prepare_series
from patchew.logviewer import LogView
from schema import *
@@ -218,16 +218,6 @@ class GitModule(PatchewModule):
r = base.git_result
return r if r and r.data.get("repo") else None
- def prepare_series_hook(self, request, series, response):
- po = series.project
- for prop in ["git.push_to", "git.public_repo", "git.url_template"]:
- if po.get_property(prop):
- response[prop] = po.get_property(prop)
- base = self.get_base(series)
- if base:
- response["git.repo"] = base.data["repo"]
- response["git.base"] = base.data["tag"]
-
def _poll_project(self, po):
repo, branch = self._get_project_repo_and_branch(po)
cache_repo = self._update_cache_repo(po.name, repo, branch)
@@ -263,8 +253,22 @@ class ApplierGetView(APILoginRequiredView):
def handle(self, request):
m = Message.objects.filter(results__name="git", results__status="pending").first()
- if m:
- return prepare_series(request, m)
+ if not m:
+ return None
+
+ response = prepare_series(request, m, fields=["project", "message-id", "patches", "properties"])
+
+ po = m.project
+ for prop in ["git.push_to", "git.public_repo", "git.url_template"]:
+ if po.get_property(prop):
+ response[prop] = po.get_property(prop)
+ base = _instance.get_base(m)
+ if base:
+ response["git.repo"] = base.data["repo"]
+ response["git.base"] = base.data["tag"]
+ response["project.git"] = po.git
+ response["result_uri"] = reverse_detail(m.git_result, request)
+ return response
class ApplierReportView(APILoginRequiredView):
name = "applier-report"
--
2.17.1
_______________________________________________
Patchew-devel mailing list
Patchew-devel@redhat.com
https://www.redhat.com/mailman/listinfo/patchew-devel