def warnings(request, profile, page=0): warnings_qs = profile.warnings.order_by('-id') warnings = paginate(warnings_qs, page, 5, 2) items_left = warnings.paginator.count - warnings.end_index() add_acl(request.user, warnings.object_list) warning_level = get_user_warning_level(profile) warning_level_obj = get_user_warning_obj(profile) active_warnings = warning_level - warnings.start_index() + 1 for warning in warnings.object_list: if warning.is_canceled: warning.is_active = False else: warning.is_active = active_warnings > 0 active_warnings -= 1 levels_total = len(get_warning_levels()) - 1 if levels_total and warning_level: warning_progress = 100 - warning_level * 100 / levels_total else: warning_progress = 100 if warning_level: warning_level_obj.level = warning_level return render(request, 'misago/profile/warnings.html', { 'profile': profile, 'warnings': warnings, 'warning_level': warning_level_obj, 'warning_progress': warning_progress, 'page_number': warnings.number, 'items_left': items_left })
def test_warnings(self): """user warning levels is obtained""" threadstore.clear() cache.clear() self.assertTrue(warnings.is_user_warning_level_max(self.test_user)) levels = ( WarningLevel.objects.create(name="Level 1"), WarningLevel.objects.create(name="Level 2"), WarningLevel.objects.create(name="Level 3"), WarningLevel.objects.create(name="Level 4"), WarningLevel.objects.create(name="Level 5"), WarningLevel.objects.create(name="Level 6"), WarningLevel.objects.create(name="Level 7"), WarningLevel.objects.create(name="Level 8"), ) self.assertEqual(WarningLevel.objects.count(), 8) threadstore.clear() cache.clear() for level, warning in enumerate(levels): warnings.warn_user(self.test_mod, self.test_user, "bawww") user_level = warnings.get_user_warning_level(self.test_user) user_level_obj = warnings.get_user_warning_obj(self.test_user) self.assertEqual(user_level, level + 1) self.assertEqual(user_level_obj.name, levels[level].name) self.assertEqual(self.test_user.warning_level, level + 1) self.assertTrue(warnings.is_user_warning_level_max(self.test_user)) previous_level = user_level for warning in self.test_user.warnings.all(): warnings.cancel_warning(self.test_mod, self.test_user, warning) user_level = warnings.get_user_warning_level(self.test_user) self.assertEqual(user_level + 1, previous_level) previous_level = user_level self.assertEqual(0, warnings.get_user_warning_level(self.test_user))
def test_warnings(self): """user warning levels is obtained""" threadstore.clear() cache.clear() self.assertTrue(warnings.is_user_warning_level_max(self.test_user)) levels = (WarningLevel.objects.create(name="Level 1"), WarningLevel.objects.create(name="Level 2"), WarningLevel.objects.create(name="Level 3"), WarningLevel.objects.create(name="Level 4"), WarningLevel.objects.create(name="Level 5"), WarningLevel.objects.create(name="Level 6"), WarningLevel.objects.create(name="Level 7"), WarningLevel.objects.create(name="Level 8")) self.assertEqual(WarningLevel.objects.count(), 8) threadstore.clear() cache.clear() for level, warning in enumerate(levels): warnings.warn_user(self.test_mod, self.test_user, "bawww") user_level = warnings.get_user_warning_level(self.test_user) user_level_obj = warnings.get_user_warning_obj(self.test_user) self.assertEqual(user_level, level + 1) self.assertEqual(user_level_obj.name, levels[level].name) self.assertEqual(self.test_user.warning_level, level + 1) self.assertTrue(warnings.is_user_warning_level_max(self.test_user)) previous_level = user_level for warning in self.test_user.warnings.all(): warnings.cancel_warning(self.test_mod, self.test_user, warning) user_level = warnings.get_user_warning_level(self.test_user) self.assertEqual(user_level + 1, previous_level) previous_level = user_level self.assertEqual(0, warnings.get_user_warning_level(self.test_user))
def warnings(request, profile, page=0): warnings_qs = profile.warnings.order_by('-id') warnings = paginate(warnings_qs, page, 5, 2) items_left = warnings.paginator.count - warnings.end_index() add_acl(request.user, warnings.object_list) warning_level = get_user_warning_level(profile) warning_level_obj = get_user_warning_obj(profile) active_warnings = warning_level - warnings.start_index() + 1 for warning in warnings.object_list: if warning.is_canceled: warning.is_active = False else: warning.is_active = active_warnings > 0 active_warnings -= 1 levels_total = len(get_warning_levels()) - 1 if levels_total and warning_level: warning_progress = 100 - warning_level * 100 / levels_total else: warning_progress = 100 if warning_level: warning_level_obj.level = warning_level return render( request, 'misago/profile/warnings.html', { 'profile': profile, 'warnings': warnings, 'warning_level': warning_level_obj, 'warning_progress': warning_progress, 'page_number': warnings.number, 'items_left': items_left })