[Patchew-devel] [PATCH 2/4] git: add rendering of Results
Fam Zheng
famz at redhat.com
Thu May 3 09:20:24 UTC 2018
On Mon, 04/23 14:14, Paolo Bonzini wrote:
> ---
> mods/git.py | 62 +++++++++++++++++++++++++++++------------------------
> 1 file changed, 34 insertions(+), 28 deletions(-)
>
> diff --git a/mods/git.py b/mods/git.py
> index 1f22f2e..7d33566 100644
> --- a/mods/git.py
> +++ b/mods/git.py
> @@ -122,7 +122,13 @@ class GitModule(PatchewModule):
> else:
> git_repo = obj.get_property("git.repo")
> git_tag = obj.get_property("git.tag")
> - data = {'repo': git_repo, 'tag': 'refs/tags/' + git_tag}
> + git_url = obj.get_property("git.url")
> + data = {}
> + if git_repo and git_tag:
> + data['repo'] = git_repo
> + data['tag'] = 'refs/tags/' + git_tag
> + if git_url:
> + data['url'] = git_url
> status = 'success'
> log_url = reverse("git-log", kwargs={'series': obj.message_id})
> else:
> @@ -130,30 +136,19 @@ class GitModule(PatchewModule):
> log_url = None
> results.append(Result(name='git', obj=obj, status=status,
> log=log, log_url=log_url, data=data,
> - request=request))
> + request=request, renderer=self))
>
> def prepare_message_hook(self, request, message, detailed):
> if not message.is_series_head:
> return
> - l = message.get_property("git.apply-log")
> - if l:
> - failed = message.get_property("git.apply-failed")
> - log_url = reverse("git-log",
> - kwargs={"series": message.message_id})
> - html_log_url = log_url + "?html=1"
> - colorbox_a = format_html('<a class="cbox-log" data-link="{}" href="{}">apply log</a>',
> - html_log_url, log_url)
> - if failed:
> + if message.get_property("git.apply-log"):
> + if message.get_property("git.apply-failed"):
> title = "Failed in applying to current master"
> message.status_tags.append({
> "title": title,
> "type": "default",
> "char": "G",
> })
> - message.extra_status.append({
> - "kind": "alert",
> - "html": format_html('{} ({})', title, colorbox_a),
> - })
> else:
> git_url = message.get_property("git.url")
> git_repo = message.get_property("git.repo")
> @@ -165,25 +160,12 @@ class GitModule(PatchewModule):
> "type": "info",
> "char": "G",
> })
> - if git_repo and git_tag:
> - message.extra_status.append({
> - "kind": "good",
> - "html": format_html('Patches applied successfully (<a href="{}">tree</a>, {}).<br/><samp>git fetch {} {}</samp>',
> - git_url, colorbox_a, git_repo, git_tag),
> - })
> else:
> message.status_tags.append({
> "title": format_html("Patches applied successfully"),
> "type": "info",
> "char": "G",
> })
> - message.extra_status.append({
> - "kind": "good",
> - "html": format_html('Patches applied successfully ({})',
> - colorbox_a),
> - "extra": colorbox_div,
> - "id": "gitlog"
> - })
> if request.user.is_authenticated:
> if message.get_property("git.apply-failed") != None or \
> message.get_property("git.need-apply") == None:
> @@ -195,6 +177,30 @@ class GitModule(PatchewModule):
> "class": "warning",
> })
>
> + def render_result(self, result):
> + if result.status == 'pending':
> + return None
> +
> + if result.log_url is not None:
> + html_log_url = result.log_url + "?html=1"
> + colorbox_a = format_html('<a class="cbox-log" data-link="{}" href="{}">apply log</a>',
> + html_log_url, result.log_url)
> + if result.status == 'failed':
> + return format_html('Failed in applying to current master ({})', title, colorbox_a)
> + else:
> + if 'url' in result.data:
result.data is None here if git.apply-failed:
Internal Server Error: /QEMU/717b8178-5a4e-49bd-8dc5-8cb5ef50aa12 at SHWDEOPENPSI011.local/
Traceback (most recent call last):
File "/stor/work/patchew/venv/lib64/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/stor/work/patchew/venv/lib64/python3.6/site-packages/django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/stor/work/patchew/venv/lib64/python3.6/site-packages/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/stor/work/patchew/www/views.py", line 273, in view_series_detail
results=prepare_results(request, s),
File "/stor/work/patchew/www/views.py", line 100, in prepare_results
html = result.render()
File "/stor/work/patchew/api/models.py", line 618, in render
return self.renderer.render_result(self)
File "/stor/work/patchew/mods/git.py", line 191, in render_result
if 'url' in result.data:
TypeError: argument of type 'NoneType' is not iterable
Fam
> + s = format_html('<a href="{}">tree</a>, {}', result.data['url'], colorbox_a)
> + else:
> + s = colorbox_a
> + s = format_html('Patches applied successfully ({})', s)
> + if 'repo' in result.data and 'tag' in result.data:
> + git_repo = result.data['repo']
> + git_tag = result.data['tag']
> + if git_tag.startswith('refs/tags/'):
> + git_tag = git_tag[5:]
> + s += format_html('<br/><samp>git fetch {} {}</samp>', git_repo, git_tag)
> + return s
> +
> def prepare_project_hook(self, request, project):
> if not project.maintained_by(request.user):
> return
> --
> 2.17.0
>
>
> _______________________________________________
> Patchew-devel mailing list
> Patchew-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/patchew-devel
More information about the Patchew-devel
mailing list