Source code for AutoArchive._application._action.action_result

# _action_result.py
#
# Project: AutoArchive
# License: GNU GPLv3
#
# Copyright (C) 2003 - 2023 Róbert Čerňanský



from AutoArchive._infrastructure.ui import UiMessageKinds
from AutoArchive._infrastructure.py_additions import Enum



[docs] class ActionResult: #: Enumerates statuses how a backup operation can finish. ActionResults = Enum( #: Backup operation finished successfully. "Successful", #: Backup operation finished successfully with some issues (warnings). "Issues", #: Backup operation failed. "Failed") def __init__(self, componentUi): self.__componentUi = componentUi self.__result: ActionResult = self.ActionResults.Successful @property def result(self) -> ActionResults: return self.__result
[docs] def set(self, result: ActionResults): self.__result = result
[docs] def startObservingUiMessages(self): self.__componentUi.messageShown += self.__onMessageShown
[docs] def stopObservingUiMessages(self): self.__componentUi.messageShown -= self.__onMessageShown
[docs] def computeReturnValue(self, executeResult: bool) -> bool: return self.__result == self.ActionResults.Successful and executeResult == True
def __onMessageShown(self, messageKind: UiMessageKinds): "Sets the backup status." # SMELL: Split status evaluation and message presentation. if messageKind == UiMessageKinds.Warning and self.__result != self.ActionResults.Failed: self.__result = self.ActionResults.Issues elif messageKind == UiMessageKinds.Error: self.__result = self.ActionResults.Failed