From 73dfa232f9a313128ebb522b9dfe961e14f34826 Mon Sep 17 00:00:00 2001 From: Ruud Date: Sat, 8 Mar 2014 23:14:16 +0100 Subject: [PATCH] Allow "or" for media and release status in movie.list --- couchpotato/core/media/_base/media/main.py | 29 +++++++++---------- .../media/movie/_base/static/movie.actions.js | 13 +++++---- couchpotato/static/scripts/page/manage.js | 4 ++- 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/couchpotato/core/media/_base/media/main.py b/couchpotato/core/media/_base/media/main.py index 5d0784e4..76172677 100644 --- a/couchpotato/core/media/_base/media/main.py +++ b/couchpotato/core/media/_base/media/main.py @@ -111,7 +111,6 @@ class MediaPlugin(MediaBase): except: log.error('Refresh handler for non existing media: %s', traceback.format_exc()) - def addSingleRefreshView(self): for media_type in fireEvent('media.types', merge = True): @@ -143,7 +142,7 @@ class MediaPlugin(MediaBase): 'media': media, } - def list(self, types = None, status = None, release_status = None, limit_offset = None, starts_with = None, search = None): + def list(self, types = None, status = None, release_status = None, status_or = False, limit_offset = None, starts_with = None, search = None): db = get_db() @@ -189,6 +188,12 @@ class MediaPlugin(MediaBase): if search: filter_by['search'] = [x['_id'] for x in db.get_many('media_search_title', search)] + if status_or and 'media_status' in filter_by and 'release_status' in filter_by: + filter_by['status'] = list(filter_by['media_status']) + list(filter_by['release_status']) + del filter_by['media_status'] + del filter_by['release_status'] + + # Filter by combining ids for x in filter_by: media_ids = [n for n in media_ids if n in filter_by[x]] @@ -228,20 +233,14 @@ class MediaPlugin(MediaBase): def listView(self, **kwargs): - types = splitString(kwargs.get('type')) - status = splitString(kwargs.get('status')) - release_status = splitString(kwargs.get('release_status')) - limit_offset = kwargs.get('limit_offset') - starts_with = kwargs.get('starts_with') - search = kwargs.get('search') - total_movies, movies = self.list( - types = types, - status = status, - release_status = release_status, - limit_offset = limit_offset, - starts_with = starts_with, - search = search + types = splitString(kwargs.get('type')), + status = splitString(kwargs.get('status')), + release_status = splitString(kwargs.get('release_status')), + status_or = kwargs.get('status_or') is not None, + limit_offset = kwargs.get('limit_offset'), + starts_with = kwargs.get('starts_with'), + search = kwargs.get('search') ) return { diff --git a/couchpotato/core/media/movie/_base/static/movie.actions.js b/couchpotato/core/media/movie/_base/static/movie.actions.js index 4152d824..fd0b8837 100644 --- a/couchpotato/core/media/movie/_base/static/movie.actions.js +++ b/couchpotato/core/media/movie/_base/static/movie.actions.js @@ -825,12 +825,13 @@ MA.Files = new Class({ create: function(){ var self = this; - self.el = new Element('a.directory', { - 'title': 'Available files', - 'events': { - 'click': self.show.bind(self) - } - }); + if(self.movie.data.releases && self.movie.data.releases.length > 0) + self.el = new Element('a.directory', { + 'title': 'Available files', + 'events': { + 'click': self.show.bind(self) + } + }); }, diff --git a/couchpotato/static/scripts/page/manage.js b/couchpotato/static/scripts/page/manage.js index ed9120fa..50e6dfa8 100644 --- a/couchpotato/static/scripts/page/manage.js +++ b/couchpotato/static/scripts/page/manage.js @@ -28,7 +28,9 @@ Page.Manage = new Class({ self.list = new MovieList({ 'identifier': 'manage', 'filter': { - 'release_status': 'done' + 'status': 'done', + 'release_status': 'done', + 'status_or': 1 }, 'actions': [MA.IMDB, MA.Trailer, MA.Files, MA.Readd, MA.Edit, MA.Delete], 'menu': [self.refresh_button, self.refresh_quick],