diff --git a/app/models.py b/app/models.py index 2444589c..01e7c09a 100644 --- a/app/models.py +++ b/app/models.py @@ -37,6 +37,16 @@ class CorpusStatus(IntEnum): RUNNING_ANALYSIS_SESSION = 8 CANCELING_ANALYSIS_SESSION = 9 + @staticmethod + def get(corpus_status: Union['CorpusStatus', int, str]) -> 'CorpusStatus': + if isinstance(corpus_status, CorpusStatus): + return corpus_status + if isinstance(corpus_status, int): + return CorpusStatus(corpus_status) + if isinstance(corpus_status, str): + return CorpusStatus[corpus_status] + raise TypeError('corpus_status must be CorpusStatus, int, or str') + class JobStatus(IntEnum): INITIALIZING = 1 @@ -48,6 +58,16 @@ class JobStatus(IntEnum): COMPLETED = 7 FAILED = 8 + @staticmethod + def get(job_status: Union['JobStatus', int, str]) -> 'JobStatus': + if isinstance(job_status, JobStatus): + return job_status + if isinstance(job_status, int): + return JobStatus(job_status) + if isinstance(job_status, str): + return JobStatus[job_status] + raise TypeError('job_status must be JobStatus, int, or str') + class Permission(IntEnum): ''' @@ -68,6 +88,7 @@ class Permission(IntEnum): return Permission[permission] raise TypeError('permission must be Permission, int, or str') + class UserSettingJobStatusMailNotificationLevel(IntEnum): NONE = 1 END = 2 @@ -90,14 +111,14 @@ class CorpusFollowerPermission(IntEnum): UPDATE_FOLLOWER = 64 @staticmethod - def get(permission: Union['CorpusFollowerPermission', int, str]) -> 'CorpusFollowerPermission': - if isinstance(permission, CorpusFollowerPermission): - return permission - if isinstance(permission, int): - return CorpusFollowerPermission(permission) - if isinstance(permission, str): - return CorpusFollowerPermission[permission] - raise TypeError('permission must be CorpusFollowerPermission, int, or str') + def get(corpus_follower_permission: Union['CorpusFollowerPermission', int, str]) -> 'CorpusFollowerPermission': + if isinstance(corpus_follower_permission, CorpusFollowerPermission): + return corpus_follower_permission + if isinstance(corpus_follower_permission, int): + return CorpusFollowerPermission(corpus_follower_permission) + if isinstance(corpus_follower_permission, str): + return CorpusFollowerPermission[corpus_follower_permission] + raise TypeError('corpus_follower_permission must be CorpusFollowerPermission, int, or str') # endregion enums @@ -555,7 +576,7 @@ class User(HashidMixin, UserMixin, db.Model): cascade='all, delete-orphan', lazy='dynamic' ) - + def __init__(self, **kwargs): super().__init__(**kwargs) if self.role is not None: diff --git a/app/static/js/ResourceLists/CorpusFollowerList.js b/app/static/js/ResourceLists/CorpusFollowerList.js index cc94c568..b0b621d2 100644 --- a/app/static/js/ResourceLists/CorpusFollowerList.js +++ b/app/static/js/ResourceLists/CorpusFollowerList.js @@ -41,9 +41,9 @@ class CorpusFollowerList extends ResourceList {