diff --git a/couchpotato/core/media/movie/_base/main.py b/couchpotato/core/media/movie/_base/main.py index 1863d897..75e10c7d 100755 --- a/couchpotato/core/media/movie/_base/main.py +++ b/couchpotato/core/media/movie/_base/main.py @@ -150,8 +150,7 @@ class MovieBase(MovieTypeBase): for release in fireEvent('release.for_media', m['_id'], single = True): if release.get('status') in ['downloaded', 'snatched', 'seeding', 'done']: if params.get('ignore_previous', False): - release['status'] = 'ignored' - db.update(release) + fireEvent('release.update_status', m['_id'], status = 'ignored') else: fireEvent('release.delete', release['_id'], single = True) diff --git a/couchpotato/core/media/movie/_base/static/movie.actions.js b/couchpotato/core/media/movie/_base/static/movie.actions.js index ff71f31d..09a998f3 100644 --- a/couchpotato/core/media/movie/_base/static/movie.actions.js +++ b/couchpotato/core/media/movie/_base/static/movie.actions.js @@ -115,8 +115,15 @@ MA.Release = new Class({ self.releases = null; if(self.options_container){ - self.options_container.destroy(); - self.options_container = null; + // Releases are currently displayed + if(self.options_container.isDisplayed()){ + self.options_container.destroy(); + self.createReleases(); + } + else { + self.options_container.destroy(); + self.options_container = null; + } } }); @@ -131,10 +138,10 @@ MA.Release = new Class({ }, - createReleases: function(){ + createReleases: function(refresh){ var self = this; - if(!self.options_container){ + if(!self.options_container || refresh){ self.options_container = new Element('div.options').grab( self.release_container = new Element('div.releases.table') ); diff --git a/couchpotato/core/media/movie/_base/static/movie.js b/couchpotato/core/media/movie/_base/static/movie.js index 669546b8..e2977a14 100644 --- a/couchpotato/core/media/movie/_base/static/movie.js +++ b/couchpotato/core/media/movie/_base/static/movie.js @@ -54,13 +54,21 @@ var Movie = new Class({ // Reload when releases have updated self.global_events['release.update_status'] = function(notification){ var data = notification.data; - if(data && self.data._id == data.movie_id){ + if(data && self.data._id == data.media_id){ if(!self.data.releases) self.data.releases = []; - self.data.releases.push({'quality': data.quality, 'status': data.status}); - self.updateReleases(); + var updated = false; + self.data.releases.each(function(release){ + if(release._id == data._id){ + release['status'] = data.status; + updated = true; + } + }); + + if(updated) + self.updateReleases(); } }; diff --git a/couchpotato/core/media/movie/searcher.py b/couchpotato/core/media/movie/searcher.py index 4940e7c9..50b2d446 100755 --- a/couchpotato/core/media/movie/searcher.py +++ b/couchpotato/core/media/movie/searcher.py @@ -383,13 +383,11 @@ class MovieSearcher(SearcherBase, MovieTypeBase): try: - db = get_db() rels = fireEvent('release.for_media', media_id, single = True) for rel in rels: if rel.get('status') in ['snatched', 'done']: - rel['status'] = 'ignored' - db.update(rel) + fireEvent('release.update_status', rel.get('_id'), status = 'ignored') media = fireEvent('media.get', media_id, single = True) if media: