コード例 #1
0
ファイル: test_functions.py プロジェクト: wanrumwie/koopsite
 def test_parseClientRequest_raise_error_if_unknown_table(self):
     kwargs = {
                 'browTabName' :'TABLE',
                 'model'       :'folder',
             }
     ajax_data = DummyAjaxRequest(**kwargs).ajax_data()
     request = self.client.request()
     request.POST = ajax_data
     with self.assertRaises(ValueError):
         parseClientRequest(request.POST)
コード例 #2
0
 def test_parseClientRequest_raise_error_if_unknown_table(self):
     kwargs = {
         'browTabName': 'TABLE',
         'model': 'folder',
     }
     ajax_data = DummyAjaxRequest(**kwargs).ajax_data()
     request = self.client.request()
     request.POST = ajax_data
     with self.assertRaises(ValueError):
         parseClientRequest(request.POST)
コード例 #3
0
def ajaxStartRowIndexFromSession(request):
    if 'client_request' in request.POST:
        # Розбираємо дані від клієнта:
        try:
            d = parseClientRequest(request.POST)
        except ValueError as err:
            # запит від клієнта містить невідповідні дані:
            print('ajaxStartRowIndexFromSession:', err)
            s = 'ajaxStartRowIndexFromSession: %s %s %s' % err.args
            return HttpResponseBadRequest(s)
        browTabName = d.get('browTabName')
        parent_id = d.get('parent_id')
        # Беремо з сесії масив параметрів виділеного елемента
        # для даної таблиці і для даного parent_id (якщо є):
        selElement = getSelElementFromSession(request.session,
                                              browTabName=browTabName,
                                              parent_id=parent_id)
        # Посилаємо відповідь клієнту:
        response_dict = {'server_response': selElement}
        # return JsonResponse(response_dict)    # дає помилку в pythonanywhere.com
        return HttpResponse(json.dumps(response_dict),
                            content_type="application/json")
    else:
        return HttpResponseBadRequest("ajaxStartRowIndexFromSession: "
                                      "No 'client_request' in request.POST")
コード例 #4
0
ファイル: viewsajax.py プロジェクト: wanrumwie/koopsite
def ajaxSelRowIndexToSession(request):
    if 'client_request' in request.POST:
        # Розбираємо дані від клієнта:
        try:
            d = parseClientRequest(request.POST)
        except ValueError as err:
            # запит від клієнта містить невідповідні дані:
            print('ajaxSelRowIndexToSession:', err.args)
            s = 'ajaxSelRowIndexToSession: %s %s %s' % err.args
            return HttpResponseBadRequest(s)
        browTabName = d.get('browTabName')
        parent_id   = d.get('parent_id')
        # Формуємо дані для зберігання в сесії:
        selElement = {}
        selElement['model'      ] = d.get('model'      )
        selElement['id'         ] = d.get('id'         )
        selElement['selRowIndex'] = d.get('selRowIndex')
        # Записуємо в сесію:
        setSelElementToSession(request.session,
                                            browTabName=browTabName,
                                            parent_id=parent_id,
                                            selElement=selElement)
        # Посилаємо відповідь клієнту:
        response_dict = {'server_response': selElement }
        # return JsonResponse(response_dict)    # дає помилку в pythonanywhere.com
        return HttpResponse(json.dumps(response_dict), content_type="application/json")
    else:
        return HttpResponseBadRequest("ajaxSelRowIndexToSession: "
                                      "No 'client_request' in request.POST")
コード例 #5
0
ファイル: viewsajaxuser.py プロジェクト: wanrumwie/koopsite
 def get_request_data_set(self, request):
     # Розбираємо дані від клієнта:
     try:
         d = parseClientRequest(request.POST)
     except ValueError as err:
         # запит від клієнта містить невідповідні дані:
         print('get_request_data_set:', err.args)
         return None
     browTabName = d.get('browTabName')
     if browTabName != 'users_table':
         return None
     self.sendMail = d['sendMail']
     elemSet = d.get('elemSet')
     users_set = []
     if elemSet:
         for elem in elemSet:
             model = elem.get('model')
             if model:
                 if model not in get_browTabName_models().get(browTabName):
                     print('Error data in request.POST: model name in elemSet does not correspond to table name', model, browTabName)
                     return None
             if model == "user":
                 user_id = elem.get('id')
                 user = get_or_none(User, id=user_id)    # selected user
                 if user:
                     users_set.append(user)
     return users_set
コード例 #6
0
ファイル: test_viewsajax.py プロジェクト: wanrumwie/koopsite
    def test_function_return_HttpResponse_2(self):
        json_s = '{"browTabName":"folders_contents","parent_id":"1","selRowIndex":"0"}'
        request = self.client.request()
        request.POST = {'client_request': json_s}
        expected = {'sendMail': None, 'id': None, 'name': None, 'browTabName': 'folders_contents', 'parent_id': '1', 'selRowIndex': '0', 'model': None}
        expected = {'browTabName': 'folders_contents', 'parent_id': '1', 'selRowIndex': '0'}
        self.assertEqual(parseClientRequest(request.POST), expected)
        request.session = {
                   'Selections':
                        {"folders_contents":
                             {"1":
                                 {'model'       : "folder",
                                  'id'          : "1",
                                  'selRowIndex' : "2",
                                 },
                             },
                        },
                   }
        response = ajaxStartRowIndexFromSession(request)
        self.assertTrue(isinstance(response, HttpResponse))

        # Чи ф-ція повертає правильний response?
        expected = [b'{"server_response": {"id": "1", "selRowIndex": "2", "model": "folder"}}']
        self.assertEqual(json.loads(response._container[0].decode()) , json.loads(expected[0].decode()))
        expected = {'content-type': ('Content-Type', 'application/json')}
        self.assertEqual(response._headers, expected)
コード例 #7
0
 def get_request_data_set(self, request):
     # Розбираємо дані від клієнта:
     try:
         d = parseClientRequest(request.POST)
     except ValueError as err:
         # запит від клієнта містить невідповідні дані:
         print('get_request_data_set:', err.args)
         return None
     browTabName = d.get('browTabName')
     if browTabName != 'users_table':
         return None
     self.sendMail = d['sendMail']
     elemSet = d.get('elemSet')
     users_set = []
     if elemSet:
         for elem in elemSet:
             model = elem.get('model')
             if model:
                 if model not in get_browTabName_models().get(browTabName):
                     print(
                         'Error data in request.POST: model name in elemSet does not correspond to table name',
                         model, browTabName)
                     return None
             if model == "user":
                 user_id = elem.get('id')
                 user = get_or_none(User, id=user_id)  # selected user
                 if user:
                     users_set.append(user)
     return users_set
コード例 #8
0
def ajaxSelRowIndexToSession(request):
    if 'client_request' in request.POST:
        # Розбираємо дані від клієнта:
        try:
            d = parseClientRequest(request.POST)
        except ValueError as err:
            # запит від клієнта містить невідповідні дані:
            print('ajaxSelRowIndexToSession:', err.args)
            s = 'ajaxSelRowIndexToSession: %s %s %s' % err.args
            return HttpResponseBadRequest(s)
        browTabName = d.get('browTabName')
        parent_id = d.get('parent_id')
        # Формуємо дані для зберігання в сесії:
        selElement = {}
        selElement['model'] = d.get('model')
        selElement['id'] = d.get('id')
        selElement['selRowIndex'] = d.get('selRowIndex')
        # Записуємо в сесію:
        setSelElementToSession(request.session,
                               browTabName=browTabName,
                               parent_id=parent_id,
                               selElement=selElement)
        # Посилаємо відповідь клієнту:
        response_dict = {'server_response': selElement}
        # return JsonResponse(response_dict)    # дає помилку в pythonanywhere.com
        return HttpResponse(json.dumps(response_dict),
                            content_type="application/json")
    else:
        return HttpResponseBadRequest("ajaxSelRowIndexToSession: "
                                      "No 'client_request' in request.POST")
コード例 #9
0
ファイル: test_functions.py プロジェクト: wanrumwie/koopsite
 def test_parseClientRequest_if_no_model(self):
     kwargs = {
                 'browTabName' :'users_table',
             }
     ajax_data = DummyAjaxRequest(**kwargs).ajax_data()
     request = self.client.request()
     request.POST = ajax_data
     expected = {
                 'browTabName' :'users_table',
             }
     self.assertEqual(parseClientRequest(request.POST), expected)
コード例 #10
0
 def test_parseClientRequest_if_no_model(self):
     kwargs = {
         'browTabName': 'users_table',
     }
     ajax_data = DummyAjaxRequest(**kwargs).ajax_data()
     request = self.client.request()
     request.POST = ajax_data
     expected = {
         'browTabName': 'users_table',
     }
     self.assertEqual(parseClientRequest(request.POST), expected)
コード例 #11
0
 def test_parseClientRequest(self):
     kwargs = {
         'browTabName': 'users_table',
         'parent_id': None,
         'sendMail': None,
         'selRowIndex': '0',
         'model': 'user',
         'id': '1',
         'name': 'fred',
     }
     ajax_data = DummyAjaxRequest(**kwargs).ajax_data()
     request = self.client.request()
     request.POST = ajax_data
     expected = kwargs
     self.assertEqual(parseClientRequest(request.POST), expected)
コード例 #12
0
ファイル: test_functions.py プロジェクト: wanrumwie/koopsite
 def test_parseClientRequest(self):
     kwargs = {
                 'browTabName' :'users_table',
                 'parent_id'   :None,
                 'sendMail'    :None,
                 'selRowIndex' :'0',
                 'model'       :'user',
                 'id'          :'1',
                 'name'        :'fred',
             }
     ajax_data = DummyAjaxRequest(**kwargs).ajax_data()
     request = self.client.request()
     request.POST = ajax_data
     expected = kwargs
     self.assertEqual(parseClientRequest(request.POST), expected)
コード例 #13
0
 def get_request_data(self, request):
     # Розбираємо дані від клієнта:
     try:
         d = parseClientRequest(request.POST)
     except ValueError as err:
         # запит від клієнта містить невідповідні дані:
         print('get_request_data:', err.args)
         return None, None
     self.sendMail = d.get('sendMail')
     user_id = d.get('id')  # id of selected user
     if d.get('model') == "user":
         user = get_or_none(User, id=user_id)  # selected user
         profile = get_or_none(UserProfile, user=user)  # profile
         return user, profile
     else:
         return None, None
コード例 #14
0
ファイル: viewsajaxuser.py プロジェクト: wanrumwie/koopsite
 def get_request_data(self, request):
     # Розбираємо дані від клієнта:
     try:
         d = parseClientRequest(request.POST)
     except ValueError as err:
         # запит від клієнта містить невідповідні дані:
         print('get_request_data:', err.args)
         return None, None
     self.sendMail = d.get('sendMail')
     user_id = d.get('id')                   # id of selected user
     if d.get('model') == "user":
         user = get_or_none(User, id=user_id)    # selected user
         profile = get_or_none(UserProfile, user=user)  # profile
         return user, profile
     else:
         return None, None
コード例 #15
0
ファイル: test_viewsajax.py プロジェクト: wanrumwie/koopsite
    def test_function_return_HttpResponse_2(self):
        json_s = '{"browTabName":"folders_contents","parent_id":"1","selRowIndex":"0"}'
        request = self.client.request()
        request.POST = {'client_request': json_s}
        expected = {
            'sendMail': None,
            'id': None,
            'name': None,
            'browTabName': 'folders_contents',
            'parent_id': '1',
            'selRowIndex': '0',
            'model': None
        }
        expected = {
            'browTabName': 'folders_contents',
            'parent_id': '1',
            'selRowIndex': '0'
        }
        self.assertEqual(parseClientRequest(request.POST), expected)
        request.session = {
            'Selections': {
                "folders_contents": {
                    "1": {
                        'model': "folder",
                        'id': "1",
                        'selRowIndex': "2",
                    },
                },
            },
        }
        response = ajaxStartRowIndexFromSession(request)
        self.assertTrue(isinstance(response, HttpResponse))

        # Чи ф-ція повертає правильний response?
        expected = [
            b'{"server_response": {"id": "1", "selRowIndex": "2", "model": "folder"}}'
        ]
        self.assertEqual(json.loads(response._container[0].decode()),
                         json.loads(expected[0].decode()))
        expected = {'content-type': ('Content-Type', 'application/json')}
        self.assertEqual(response._headers, expected)
コード例 #16
0
def ajaxSearchElementsInBase(request):
    if 'client_request' in request.POST:
        # Розбираємо дані від клієнта:
        try:
            d = parseClientRequest(request.POST)
        except ValueError as err:
            # запит від клієнта містить невідповідні дані:
            print('ajaxSearchElementsInBase:', err.args)
            return HttpResponse()
        search_val = d.get('search_val')
        print('search_val =', search_val)
        # Шукаємо  :
        search_results_HTML = search_in_folders(search_val)
        # Посилаємо відповідь клієнту:
        response_dict = {'server_response': search_results_HTML }
        print('response_dict =', response_dict)
        # return JsonResponse(response_dict)
        return HttpResponse(json.dumps(response_dict), content_type="application/json")
    else:
        print("There is no 'client_request' in request.POST")
        return HttpResponse()
コード例 #17
0
 def get_request_data(self, request, rqst):
     # Розбираємо дані від клієнта:
     try:
         d = parseClientRequest(request.POST)
     except ValueError as err:
         # запит від клієнта містить невідповідні дані:
         print('get_request_data:', err.args)
         return None, None
     rqst = get_namespace_from_dict(d, rqst)
     # rqst.parent_id            = d.get('parent_id')
     # rqst.model                = d.get('model')
     # rqst.id                   = d.get('id')
     # rqst.name                 = d.get('name')
     # rqst.target_id            = d.get('target_id')
     if rqst.model == "folder":
         element = Folder.objects.get(id=rqst.id)
     elif rqst.model == "report":
         element = Report.objects.get(id=rqst.id)
     else:
         return None, None
     if not element:
         rqst = None
     return element, rqst
コード例 #18
0
 def get_request_data(self, request, rqst):
     # Розбираємо дані від клієнта:
     try:
         d = parseClientRequest(request.POST)
     except ValueError as err:
         # запит від клієнта містить невідповідні дані:
         print('get_request_data:', err.args)
         return None, None
     rqst = get_namespace_from_dict(d, rqst)
     # rqst.parent_id            = d.get('parent_id')
     # rqst.model                = d.get('model')
     # rqst.id                   = d.get('id')
     # rqst.name                 = d.get('name')
     # rqst.target_id            = d.get('target_id')
     if rqst.model == "folder":
         element = Folder.objects.get(id=rqst.id)
     elif rqst.model == "report":
         element = Report.objects.get(id=rqst.id)
     else:
         return None, None
     if not element:
         rqst = None
     return element, rqst
コード例 #19
0
ファイル: viewsajax.py プロジェクト: wanrumwie/koopsite
def ajaxStartRowIndexFromSession(request):
    if 'client_request' in request.POST:
        # Розбираємо дані від клієнта:
        try:
            d = parseClientRequest(request.POST)
        except ValueError as err:
            # запит від клієнта містить невідповідні дані:
            print('ajaxStartRowIndexFromSession:', err)
            s = 'ajaxStartRowIndexFromSession: %s %s %s' % err.args
            return HttpResponseBadRequest(s)
        browTabName = d.get('browTabName')
        parent_id   = d.get('parent_id')
        # Беремо з сесії масив параметрів виділеного елемента
        # для даної таблиці і для даного parent_id (якщо є):
        selElement = getSelElementFromSession(request.session,
                                            browTabName=browTabName,
                                            parent_id=parent_id)
        # Посилаємо відповідь клієнту:
        response_dict = {'server_response': selElement }
        # return JsonResponse(response_dict)    # дає помилку в pythonanywhere.com
        return HttpResponse(json.dumps(response_dict), content_type="application/json")
    else:
        return HttpResponseBadRequest("ajaxStartRowIndexFromSession: "
                                      "No 'client_request' in request.POST")