def test_get_subreports(self): root = DummyFolder().create_dummy_root_folder() f2 = DummyFolder().create_dummy_folder(parent=root) f3 = DummyFolder().create_dummy_folder(parent=f2) r2 = DummyFolder().create_dummy_report(parent=f2) r3 = DummyFolder().create_dummy_report(parent=f3) r4 = DummyFolder().create_dummy_report(parent=f3) self.assertEqual(list(get_subreports(root)), []) self.assertEqual(list(get_subreports(f2)), [r2]) self.assertEqual(list(get_subreports(f3)), [r3, r4])
def delete(self, request, *args, **kwargs): folder = self.get_object() if get_subfolders(folder) or get_subreports(folder): return HttpResponseRedirect(reverse("folders:folder-not-empty")) else: folder.delete() return HttpResponseRedirect(self.get_success_url())
def processing(self, folder, rqst, msg): # Умови при яких зміни не відбудуться: if get_subfolders(folder) or get_subreports(folder): msg.title = rqst.name msg.type = msgType.Forbidden msg.message = "Обрана тека не порожня! Спершу слід видалити вміст теки." else: # Робимо зміни: folder.delete() # тека видалена з бази даних msg.title = rqst.name msg.type = msgType.DeleteRow msg.message = "Теку видалено!" return None, msg