[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