diff --git a/couchpotato/core/plugins/movie/static/movie.actions.js b/couchpotato/core/plugins/movie/static/movie.actions.js index f091e7da..6d60483e 100644 --- a/couchpotato/core/plugins/movie/static/movie.actions.js +++ b/couchpotato/core/plugins/movie/static/movie.actions.js @@ -165,7 +165,18 @@ MA.Release = new Class({ 'click': function(e){ (e).preventDefault(); self.ignore(release); - this.getParent('.item').toggleClass('ignored') + if(this.getParent('.item').hasClass('failed')){ + this.getParent('.item').toggleClass('failed'); + this.parentNode.getElementsByTagName('span')[1].innerHTML = 'available'; + } + else if(this.getParent('.item').hasClass('ignored')){ + this.getParent('.item').toggleClass('ignored'); + this.parentNode.getElementsByTagName('span')[1].innerHTML = 'available'; + } + else { + this.getParent('.item').toggleClass('ignored'); + this.parentNode.getElementsByTagName('span')[1].innerHTML = 'ignored'; + } } } }) @@ -189,7 +200,7 @@ MA.Release = new Class({ } if(self.next_release || (self.last_release && ['ignored', 'failed'].indexOf(self.last_release.status.identifier) === false)){ - + self.trynext_container = new Element('div.buttons.try_container').inject(self.release_container, 'top'); self.trynext_container.adopt( diff --git a/couchpotato/core/plugins/movie/static/movie.css b/couchpotato/core/plugins/movie/static/movie.css index 8327d294..bf0b712e 100644 --- a/couchpotato/core/plugins/movie/static/movie.css +++ b/couchpotato/core/plugins/movie/static/movie.css @@ -568,6 +568,16 @@ transform: scale(-1, 1); } + .movies .options .table .item.failed span { + text-decoration: line-through; + color: rgba(255,255,255,0.4); + } + .movies .options .table .item.failed .delete:before { + display: inline-block; + content: "\e04b"; + transform: scale(-1, 1); + } + .movies .options .table .item:last-child { border: 0; } .movies .options .table .item:nth-child(even) { background: rgba(255,255,255,0.05); @@ -617,6 +627,7 @@ .movies .options .table a.download { color: #a7fbaf; } .movies .options .table a.delete { color: #fda3a3; } .movies .options .table .ignored a.delete { color: #b5fda3; } + .movies .options .table .failed a.delete { color: #b5fda3; } .movies .options .table .head > * { font-weight: bold; diff --git a/couchpotato/core/plugins/release/main.py b/couchpotato/core/plugins/release/main.py index c409740a..956d661b 100644 --- a/couchpotato/core/plugins/release/main.py +++ b/couchpotato/core/plugins/release/main.py @@ -153,8 +153,8 @@ class Release(Plugin): rel = db.query(Relea).filter_by(id = id).first() if rel: - ignored_status, available_status = fireEvent('status.get', ['ignored', 'available'], single = True) - rel.status_id = available_status.get('id') if rel.status_id is ignored_status.get('id') else ignored_status.get('id') + ignored_status, failed_status, available_status = fireEvent('status.get', ['ignored', 'failed', 'available'], single = True) + rel.status_id = available_status.get('id') if rel.status_id in [ignored_status.get('id'), failed_status.get('id')] else ignored_status.get('id') db.commit() return jsonified({ diff --git a/couchpotato/core/plugins/searcher/main.py b/couchpotato/core/plugins/searcher/main.py index 23e8ea58..f996978c 100644 --- a/couchpotato/core/plugins/searcher/main.py +++ b/couchpotato/core/plugins/searcher/main.py @@ -146,7 +146,7 @@ class Searcher(Plugin): pre_releases = fireEvent('quality.pre_releases', single = True) release_dates = fireEvent('library.update_release_date', identifier = movie['library']['identifier'], merge = True) - available_status, ignored_status = fireEvent('status.get', ['available', 'ignored'], single = True) + available_status, ignored_status, failed_status = fireEvent('status.get', ['available', 'ignored', 'failed'], single = True) found_releases = [] @@ -169,7 +169,7 @@ class Searcher(Plugin): # See if better quality is available for release in movie['releases']: - if release['quality']['order'] <= quality_type['quality']['order'] and release['status_id'] not in [available_status.get('id'), ignored_status.get('id')]: + if release['quality']['order'] <= quality_type['quality']['order'] and release['status_id'] not in [available_status.get('id'), ignored_status.get('id'), failed_status.get('id')]: has_better_quality += 1 # Don't search for quality lower then already available.