def test_processing_error_no_profile(self):
     view = self.cls_view()
     user0 = self.ringo
     prof0 = getattr(user0, 'userprofile', None)
     user, msg = view.processing(user0, prof0, view.empty_msg)
     # Витягаємо з бази щойно збережені записи і перевіряємо
     user_db = get_or_none(User, id=user0.id)
     prof_db = get_or_none(UserProfile, user=user0)
     self.assertEqual(user, user0)
     self.assertEqual(msg.title  , user0.username)
     self.assertEqual(msg.type   , msgType.Error)
     self.assertEqual(msg.message, "Непідтверджений Акаунт не може отримати права доступу!")
     self.assertEqual(view.counter["непідтверджені"], 1)
 def test_processing_changes_made(self):
     view = self.cls_view()
     user0 = self.george
     prof0 = getattr(user0, 'userprofile', None)
     user, msg = view.processing(user0, prof0, view.empty_msg)
     # Витягаємо з бази щойно збережені записи і перевіряємо
     user_db = get_or_none(User, id=user0.id)
     prof_db = get_or_none(UserProfile, user=user0)
     self.assertEqual(user.id, user_db.id)
     self.assertEqual(user_db.is_active, True)
     self.assertEqual(msg.title, user_db.username)
     self.assertEqual(msg.type, msgType.Change)
     self.assertEqual(msg.message, "Акаунт активовано!")
     self.assertEqual(view.counter["активовано"], 1)
 def test_processing_changes_made(self):
     view = self.cls_view()
     user0 = self.george
     prof0 = getattr(user0, 'userprofile', None)
     user, msg = view.processing(user0, prof0, view.empty_msg)
     # Витягаємо з бази щойно збережені записи і перевіряємо
     user_db = get_or_none(User, id=user0.id)
     prof_db = get_or_none(UserProfile, user=user0)
     self.assertEqual(user.id, user_db.id)
     self.assertEqual(has_group(user_db, 'members'), True)
     self.assertEqual(msg.title, user_db.username)
     self.assertEqual(msg.type, msgType.Change)
     self.assertEqual(msg.message, "Права доступу встановлено!")
     self.assertEqual(view.counter["встановлено"], 1)
 def test_processing_changes_made(self):
     view = self.cls_view()
     user0 = self.george
     prof0 = getattr(user0, 'userprofile', None)
     user, msg = view.processing(user0, prof0, view.empty_msg)
     # Витягаємо з бази щойно збережені записи і перевіряємо
     user_db = get_or_none(User, id=user0.id)
     prof_db = get_or_none(UserProfile, user=user0)
     self.assertEqual(user.id, user_db.id)
     self.assertEqual(has_group(user_db, 'members'), True)
     self.assertEqual(msg.title  , user_db.username)
     self.assertEqual(msg.type   , msgType.Change)
     self.assertEqual(msg.message, "Права доступу встановлено!")
     self.assertEqual(view.counter["встановлено"], 1)
 def test_processing_changes_made_no_profile(self):
     view = self.cls_view()
     user0 = self.ringo
     prof0 = getattr(user0, 'userprofile', None)
     user, msg = view.processing(user0, prof0, view.empty_msg)
     # Витягаємо з бази щойно збережені записи і перевіряємо
     user_db = get_or_none(User, id=user0.id)
     prof_db = get_or_none(UserProfile, user=user0)
     self.assertEqual(user.id, user_db.id)
     self.assertEqual(user_db.is_active, False)
     self.assertEqual(msg.title  , user_db.username)
     self.assertEqual(msg.type   , msgType.Error)
     self.assertEqual(msg.message, "Непідтверджений Акаунт не можна активувати!")
     self.assertEqual(view.counter["непідтверджені"], 1)
 def test_processing_changes_made(self):
     view = self.cls_view()
     user0 = self.george
     prof0 = getattr(user0, 'userprofile', None)
     user, msg = view.processing(user0, prof0, view.empty_msg)
     # Витягаємо з бази щойно збережені записи і перевіряємо
     user_db = get_or_none(User, id=user0.id)
     prof_db = get_or_none(UserProfile, user=user0)
     self.assertEqual(user.id, user_db.id)
     self.assertEqual(user_db.is_active, True)
     self.assertEqual(msg.title  , user_db.username)
     self.assertEqual(msg.type   , msgType.Change)
     self.assertEqual(msg.message, "Акаунт активовано!")
     self.assertEqual(view.counter["активовано"], 1)
 def test_processing_changes_made_no_profile(self):
     view = self.cls_view()
     user0 = self.ringo
     prof0 = getattr(user0, 'userprofile', None)
     user, msg = view.processing(user0, prof0, view.empty_msg)
     # Витягаємо з бази щойно збережені записи і перевіряємо
     user_db = get_or_none(User, id=user0.id)
     prof_db = get_or_none(UserProfile, user=user0)
     self.assertEqual(user.id, user_db.id)
     self.assertEqual(user_db.is_active, False)
     self.assertEqual(msg.title, user_db.username)
     self.assertEqual(msg.type, msgType.Error)
     self.assertEqual(msg.message,
                      "Непідтверджений Акаунт не можна активувати!")
     self.assertEqual(view.counter["непідтверджені"], 1)
 def test_processing_error_no_profile(self):
     view = self.cls_view()
     user0 = self.ringo
     prof0 = getattr(user0, 'userprofile', None)
     user, msg = view.processing(user0, prof0, view.empty_msg)
     # Витягаємо з бази щойно збережені записи і перевіряємо
     user_db = get_or_none(User, id=user0.id)
     prof_db = get_or_none(UserProfile, user=user0)
     self.assertEqual(user, user0)
     self.assertEqual(msg.title, user0.username)
     self.assertEqual(msg.type, msgType.Error)
     self.assertEqual(
         msg.message,
         "Непідтверджений Акаунт не може отримати права доступу!")
     self.assertEqual(view.counter["непідтверджені"], 1)
Esempio n. 9
0
    def group_processing(self, users_set):
        response_set = []
        for user in users_set:
            msg = deepcopy(self.empty_msg)
            profile = get_or_none(UserProfile, user=user)  # profile
            # Елемент - рядок таблиці ДО змін:
            old_element = UsersTableArray().get_row(user)

            # dict_print(old_element, 'old_element')

            user, msg = self.processing(user, profile, msg)

            # Елемент - рядок таблиці ПІСЛЯ змін (якщо були):
            new_element = UsersTableArray().get_row(user)

            # dict_print(new_element, 'new_element')

            # Зміни рядка в таблиці:
            if msg.type == msgType.NewRow:
                changes = new_element
            else:
                changes = UsersTableArray().get_cell_changes(
                    old_element, new_element)
            supplement = UsersTableArray().get_supplement_data(user)
            # Формуємо словник для передачі в шаблон через XHR:
            response_cont = vars(msg)
            response_cont['model'] = user._meta.model_name
            response_cont['id'] = str(user.id)
            response_cont['changes'] = changes
            response_cont['supplement'] = supplement
            response_set.append(response_cont)
        return response_set
Esempio n. 10
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
Esempio n. 11
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
Esempio n. 12
0
    def group_processing(self, users_set):
        response_set = []
        for user in users_set:
            msg = deepcopy(self.empty_msg)
            profile = get_or_none(UserProfile, user=user)  # profile
            # Елемент - рядок таблиці ДО змін:
            old_element = UsersTableArray().get_row(user)

            # dict_print(old_element, 'old_element')

            user, msg = self.processing(user, profile, msg)

            # Елемент - рядок таблиці ПІСЛЯ змін (якщо були):
            new_element     = UsersTableArray().get_row(user)

            # dict_print(new_element, 'new_element')

            # Зміни рядка в таблиці:
            if msg.type == msgType.NewRow:
                changes = new_element
            else:
                changes = UsersTableArray().get_cell_changes(old_element,
                                                             new_element)
            supplement = UsersTableArray().get_supplement_data(user)
            # Формуємо словник для передачі в шаблон через XHR:
            response_cont = vars(msg)
            response_cont['model'] = user._meta.model_name
            response_cont['id'] = str(user.id)
            response_cont['changes'] = changes
            response_cont['supplement'] = supplement
            response_set.append(response_cont)
        return response_set
Esempio n. 13
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
Esempio n. 14
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
 def processing(self, element, rqst, msg):
     # Список існуючих імен в теці призначення:
     if rqst.model == "folder":
         target_name_list = [
             f.name for f in Folder.objects.filter(parent_id=rqst.target_id)
         ]
     elif rqst.model == "report":
         target_name_list = [
             f.filename
             for f in Report.objects.filter(parent_id=rqst.target_id)
         ]
     else:
         target_name_list = None
     target = get_or_none(Folder, id=rqst.target_id)
     # Умови при яких зміни не відбудуться:
     if not rqst.target_id or rqst.target_id in (0, '0'):
         msg.title = rqst.name
         msg.type = msgType.IncorrectData
         msg.message = "Ви не обрали місце призначення!"
     elif rqst.target_id == rqst.parent_id:
         msg.title = rqst.name
         msg.type = msgType.NoChange
         msg.message = "Ви не змінили розташування!"
     elif rqst.model == 'folder' and rqst.target_id == rqst.id:
         msg.title = rqst.name
         msg.type = msgType.IncorrectData
         msg.message = "Не можна перемістити теку саму в себе :)"
     elif rqst.name in target_name_list:
         msg.title = rqst.name
         msg.type = msgType.IncorrectData
         msg.message = "В обраному місці призначення є %s з такою назвою!" % \
                         ("тека" if rqst.model == 'folder' else "файл")
     elif not element or not target:
         msg.title = rqst.name
         msg.type = msgType.Error
         msg.message = "Не вдалося змінити розташування! " \
                         "Можливо обране місце призначення не існує."
     else:
         # Робимо зміни:
         element.parent = target
         element.save()  # збереження в базі
         msg.title = rqst.name
         msg.type = msgType.MoveElement
         msg.message = "%s переміщено!" % \
                       ("Теку" if rqst.model == 'folder' else "Файл")
     return element, msg
 def processing(self, element, rqst, msg):
     # Список існуючих імен в теці призначення:
     if rqst.model == "folder":
         target_name_list = [f.name for f
            in Folder.objects.filter(parent_id=rqst.target_id)]
     elif rqst.model == "report":
         target_name_list = [f.filename for f
            in Report.objects.filter(parent_id=rqst.target_id)]
     else: target_name_list = None
     target = get_or_none(Folder, id=rqst.target_id)
     # Умови при яких зміни не відбудуться:
     if not rqst.target_id or rqst.target_id in (0, '0'):
         msg.title   = rqst.name
         msg.type    = msgType.IncorrectData
         msg.message = "Ви не обрали місце призначення!"
     elif rqst.target_id == rqst.parent_id:
         msg.title   = rqst.name
         msg.type    = msgType.NoChange
         msg.message = "Ви не змінили розташування!"
     elif rqst.model == 'folder' and rqst.target_id == rqst.id:
         msg.title   = rqst.name
         msg.type    = msgType.IncorrectData
         msg.message = "Не можна перемістити теку саму в себе :)"
     elif rqst.name in target_name_list:
         msg.title   = rqst.name
         msg.type    = msgType.IncorrectData
         msg.message = "В обраному місці призначення є %s з такою назвою!" % \
                         ("тека" if rqst.model == 'folder' else "файл")
     elif not element or not target:
         msg.title   = rqst.name
         msg.type    = msgType.Error
         msg.message = "Не вдалося змінити розташування! " \
                         "Можливо обране місце призначення не існує."
     else:
         # Робимо зміни:
         element.parent = target
         element.save()       # збереження в базі
         msg.title   = rqst.name
         msg.type    = msgType.MoveElement
         msg.message = "%s переміщено!" % \
                       ("Теку" if rqst.model == 'folder' else "Файл")
     return element, msg
Esempio n. 17
0
 def test_get_model_id_name_2(self):
     user = get_or_none(User, id=3)
     expected = {}
     m_id_n = self.bta_cls().get_model_id_name(user)
     self.assertEqual(m_id_n, expected)
Esempio n. 18
0
 def test_get_or_none_gives_error_if_multiple(self):
     DummyFlat().create_dummy_building()
     with self.assertRaises(MultipleObjectsReturned):
         get_or_none(Flat, floor_No="2")
Esempio n. 19
0
 def test_get_or_none(self):
     flat = DummyFlat().create_dummy_flat(id=1, flat_No="1")
     self.assertEqual(get_or_none(Flat, id=1), flat)
     self.assertEqual(get_or_none(Flat, id=1, flat_No="1"), flat)
     self.assertFalse(get_or_none(Flat, id=1, flat_No="2"))
Esempio n. 20
0
 def test_get_model_id_name(self):
     user = get_or_none(User, id=1)
     expected = {'id': '1', 'model': 'user', 'name': 'fred'}
     m_id_n = self.bta_cls().get_model_id_name(user)
     self.assertEqual(m_id_n, expected)
Esempio n. 21
0
 def test_get_row_2(self):
     user = get_or_none(User, id=3)
     expected = None
     row = self.bta_cls().get_row(user)
     self.assertEqual(row, expected)
Esempio n. 22
0
 def test_get_cell_99(self):
     user = get_or_none(User, id=1)
     expected = None
     row = self.bta_cls().get_cell(user, 99)
     self.assertEqual(row, expected)
Esempio n. 23
0
 def test_get_supplement_data(self):
     user = get_or_none(User, id=1)
     expected = {}
     data = self.bta_cls().get_supplement_data(user)
     self.assertEqual(data, expected)
Esempio n. 24
0
 def test_get_model_id_name_2(self):
     user = get_or_none(User, id=3)
     expected = {}
     m_id_n = self.bta_cls().get_model_id_name(user)
     self.assertEqual(m_id_n, expected)
Esempio n. 25
0
 def test_get_cell(self):
     user = get_or_none(User, id=1)
     expected = {'id': '1', 'model': 'user', 'name': 'fred'}
     row = self.bta_cls().get_cell(user, 0)
     self.assertEqual(row, expected)
Esempio n. 26
0
 def test_get_model_id_name(self):
     user = get_or_none(User, id=1)
     expected = {'id': '1', 'model': 'user', 'name': 'fred'}
     m_id_n = self.bta_cls().get_model_id_name(user)
     self.assertEqual(m_id_n, expected)
Esempio n. 27
0
 def test_get_row_2(self):
     user = get_or_none(User, id=3)
     expected = None
     row = self.bta_cls().get_row(user)
     self.assertEqual(row, expected)
Esempio n. 28
0
 def test_get_supplement_data(self):
     user = get_or_none(User, id=1)
     expected = {}
     data = self.bta_cls().get_supplement_data(user)
     self.assertEqual(data, expected)
Esempio n. 29
0
 def test_get_cell_99(self):
     user = get_or_none(User, id=1)
     expected = None
     row = self.bta_cls().get_cell(user, 99)
     self.assertEqual(row, expected)
 def test_get_or_none(self):
     flat = DummyFlat().create_dummy_flat(id=1, flat_No="1")
     self.assertEqual(get_or_none(Flat, id=1), flat)
     self.assertEqual(get_or_none(Flat, id=1, flat_No="1"), flat)
     self.assertFalse(get_or_none(Flat, id=1, flat_No="2"))
 def test_get_or_none_gives_error_if_multiple(self):
     DummyFlat().create_dummy_building()
     with self.assertRaises(MultipleObjectsReturned):
         get_or_none(Flat, floor_No="2")
Esempio n. 32
0
 def test_get_cell(self):
     user = get_or_none(User, id=1)
     expected = {'id': '1', 'model': 'user', 'name': 'fred'}
     row = self.bta_cls().get_cell(user, 0)
     self.assertEqual(row, expected)