[yocto] [error-report-web][PATCH] Post/views.py: Fix for python3

Robert Yang liezhi.yang at windriver.com
Tue Mar 5 00:53:22 PST 2019


Now it works for python 2 and 3.

Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
---
 Post/views.py | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/Post/views.py b/Post/views.py
index 7f2cffb..2f8e4ae 100644
--- a/Post/views.py
+++ b/Post/views.py
@@ -13,9 +13,9 @@ from django.shortcuts import HttpResponse, render
 from django.views.decorators.csrf import csrf_exempt
 from django.shortcuts import redirect
 from Post.models import BuildFailure, Build, ErrorType
-from parser import Parser
+from .parser import Parser
 from django.conf import settings
-from createStatistics import Statistics
+from .createStatistics import Statistics
 from django.core.paginator import Paginator, EmptyPage
 from django.core.exceptions import FieldError, ObjectDoesNotExist
 from django.http import JsonResponse
@@ -55,20 +55,23 @@ def addData(request, return_json=False):
             # Backward compatibility with send-error-report < 0.3
             # The json is url encoded so we need to undo this here.
             data = request.body[len('data='):]
-            data = urllib.unquote_plus(data)
+            data = urllib.parse.unquote_plus(data)
+
+        data = data.decode('utf-8')
 
         p = Parser(data)
         result = p.parse(request)
+        print(result)
 
         if return_json:
             response = JsonResponse(result)
         else:
-            if not result.has_key('error'):
+            if 'error' not in result:
               response = HttpResponse("Your entry can be found here: "+result['build_url'])
             else:
               response = HttpResponse(result['error'])
 
-        if result.has_key('error'):
+        if 'error' in result:
             response.status_code=500
     else:
         if return_json:
@@ -123,7 +126,7 @@ def search(request, mode=results_mode.LATEST, **kwargs):
 
     items = BuildFailure.objects.all()
 
-    if request.GET.has_key("limit"):
+    if "limit" in request.GET:
         try:
             n_limit = int(request.GET['limit'])
             if n_limit > 0:
@@ -200,14 +203,14 @@ def search(request, mode=results_mode.LATEST, **kwargs):
       ],
     }
 
-    if request.GET.has_key("filter") and request.GET.has_key("type"):
+    if "filter" in request.GET and "type" in request.GET:
         items = apply_filter(context, items, request.GET['type'], request.GET['filter'])
     if mode == results_mode.SPECIAL_SUBMITTER and hasattr(settings,"SPECIAL_SUBMITTER"):
         #Special submitter mode see settings.py to enable
         name = settings.SPECIAL_SUBMITTER['name']
         items = items.filter(BUILD__NAME__istartswith=name)
 
-    elif mode == results_mode.SEARCH and request.GET.has_key("query"):
+    elif mode == results_mode.SEARCH and "query" in request.GET:
         query = request.GET["query"]
 
         items = items.filter(
-- 
2.7.4



More information about the yocto mailing list