diff --git a/couchpotato/core/media/_base/media/main.py b/couchpotato/core/media/_base/media/main.py index aa1ee38..bd42b9d 100755 --- a/couchpotato/core/media/_base/media/main.py +++ b/couchpotato/core/media/_base/media/main.py @@ -491,7 +491,7 @@ class MediaPlugin(MediaBase): } }) - def restatus(self, media_id, tag_recent = True): + def restatus(self, media_id, tag_recent = True, allowed_restatus = None): try: db = get_db() @@ -526,7 +526,7 @@ class MediaPlugin(MediaBase): m['status'] = previous_status # Only update when status has changed - if previous_status != m['status']: + if previous_status != m['status'] and (not allowed_restatus or m['status'] in allowed_restatus): db.update(m) # Tag media as recent diff --git a/couchpotato/core/plugins/manage.py b/couchpotato/core/plugins/manage.py index b0e1239..3c22ee3 100755 --- a/couchpotato/core/plugins/manage.py +++ b/couchpotato/core/plugins/manage.py @@ -218,8 +218,8 @@ class Manage(Plugin): if group['media'] and group['identifier']: added_identifiers.append(group['identifier']) - # Add it to release and update the info - fireEvent('release.add', group = group, update_info = False) + # Add it to release and update the info (only allow media restatus to done, not to active) + fireEvent('release.add', group = group, update_info = False, allowed_restatus = ['done']) fireEvent('movie.update', identifier = group['identifier'], on_complete = self.createAfterUpdate(folder, group['identifier'])) return addToLibrary diff --git a/couchpotato/core/plugins/release/main.py b/couchpotato/core/plugins/release/main.py index 815cb40..a937eee 100644 --- a/couchpotato/core/plugins/release/main.py +++ b/couchpotato/core/plugins/release/main.py @@ -129,7 +129,7 @@ class Release(Plugin): if 'recent' in media.get('tags', []): fireEvent('media.untag', media.get('_id'), 'recent', single = True) - def add(self, group, update_info = True, update_id = None): + def add(self, group, update_info = True, update_id = None, allowed_restatus = None): try: db = get_db() @@ -187,7 +187,7 @@ class Release(Plugin): release['files'] = dict((k, [toUnicode(x) for x in v]) for k, v in group['files'].items() if v) db.update(release) - fireEvent('media.restatus', media['_id'], single = True) + fireEvent('media.restatus', media['_id'], allowed_restatus = allowed_restatus, single = True) return True except: