From 79e5f6687b64f31354da1056fd4261bb5b8965b7 Mon Sep 17 00:00:00 2001 From: Kfir Hadas <sharkykh@gmail.com> Date: Sun, 7 May 2017 02:51:58 +0300 Subject: [PATCH] Add option to show/hide snatched episodes in Schedule (#3720) * Add option to show/hide snatched episodes in Schedule * Hide "Snatched" key if unused --- gui/slick/views/schedule.mako | 22 ++++++++++++++++++---- sickbeard/__init__.py | 5 ++++- sickbeard/webserve.py | 7 +++++++ 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/gui/slick/views/schedule.mako b/gui/slick/views/schedule.mako index 0762b2264..c69d68ca2 100644 --- a/gui/slick/views/schedule.mako +++ b/gui/slick/views/schedule.mako @@ -8,7 +8,7 @@ from sickbeard.helpers import anon_url from sickbeard import sbdatetime from sickbeard.common import Quality - + SNATCHED = Quality.SNATCHED + Quality.SNATCHED_PROPER + Quality.SNATCHED_BEST # type = list %> <%block name="scripts"> @@ -24,7 +24,9 @@ % if 'calendar' != layout: <b>${_('Key')}:</b> <span class="listing-key listing-overdue">${_('Missed')}</span> - <span class="listing-key listing-snatched">${_('Snatched')}</span> + % if sickbeard.COMING_EPS_DISPLAY_SNATCHED: + <span class="listing-key listing-snatched">${_('Snatched')}</span> + % endif <span class="listing-key listing-current">${_('Today')}</span> <span class="listing-key listing-default">${_('Soon')}</span> <span class="listing-key listing-toofar">${_('Later')}</span> @@ -66,7 +68,16 @@ </select> </label> - + % if layout != 'calendar': + <label> + <span>${_('View Snatched')}:</span> + <select name="viewsnatched" class="form-control form-control-inline input-sm" onchange="location = this.options[this.selectedIndex].value;" title="View snatched"> + <option value="${srRoot}/toggleScheduleDisplaySnatched" ${('', 'selected="selected"')[not bool(sickbeard.COMING_EPS_DISPLAY_SNATCHED)]}>${_('Hidden')}</option> + <option value="${srRoot}/toggleScheduleDisplaySnatched" ${('', 'selected="selected"')[bool(sickbeard.COMING_EPS_DISPLAY_SNATCHED)]}>${_('Shown')}</option> + </select> + + </label> + % endif <label> <span>${_('Layout')}:</span> <select name="layout" class="form-control form-control-inline input-sm" onchange="location = this.options[this.selectedIndex].value;" title="Layout"> @@ -116,6 +127,9 @@ if int(cur_result[b'paused']) and not sickbeard.COMING_EPS_DISPLAY_PAUSED: continue + if snatched_status and not sickbeard.COMING_EPS_DISPLAY_SNATCHED: + continue + cur_ep_airdate = cur_result[b'localtime'].date() cur_ep_enddate = cur_result[b'localtime'] if run_time: @@ -303,7 +317,7 @@ if int(cur_result[b'paused']) and not sickbeard.COMING_EPS_DISPLAY_PAUSED: continue - if cur_result[b'location'] and snatched_status: + if snatched_status and (cur_result[b'location'] or not sickbeard.COMING_EPS_DISPLAY_SNATCHED): continue run_time = cur_result[b'runtime'] diff --git a/sickbeard/__init__.py b/sickbeard/__init__.py index f3f16ad79..dfcc891a5 100644 --- a/sickbeard/__init__.py +++ b/sickbeard/__init__.py @@ -583,6 +583,7 @@ HISTORY_LAYOUT = None HISTORY_LIMIT = 0 DISPLAY_SHOW_SPECIALS = False COMING_EPS_LAYOUT = None +COMING_EPS_DISPLAY_SNATCHED = False COMING_EPS_DISPLAY_PAUSED = False COMING_EPS_SORT = None COMING_EPS_MISSED_RANGE = None @@ -705,7 +706,7 @@ def initialize(consoleLogging=True): # pylint: disable=too-many-locals, too-man USE_EMAIL, EMAIL_HOST, EMAIL_PORT, EMAIL_TLS, EMAIL_USER, EMAIL_PASSWORD, EMAIL_FROM, EMAIL_NOTIFY_ONSNATCH, EMAIL_NOTIFY_ONDOWNLOAD, EMAIL_NOTIFY_ONSUBTITLEDOWNLOAD, EMAIL_LIST, EMAIL_SUBJECT, \ USE_LISTVIEW, METADATA_KODI, METADATA_KODI_12PLUS, METADATA_MEDIABROWSER, METADATA_PS3, metadata_provider_dict, \ NEWZBIN, NEWZBIN_USERNAME, NEWZBIN_PASSWORD, GIT_PATH, MOVE_ASSOCIATED_FILES, DELETE_NON_ASSOCIATED_FILES, SYNC_FILES, POSTPONE_IF_SYNC_FILES, dailySearchScheduler, NFO_RENAME, \ - GUI_NAME, HOME_LAYOUT, HISTORY_LAYOUT, DISPLAY_SHOW_SPECIALS, COMING_EPS_LAYOUT, COMING_EPS_SORT, COMING_EPS_DISPLAY_PAUSED, COMING_EPS_MISSED_RANGE, FUZZY_DATING, TRIM_ZERO, DATE_PRESET, TIME_PRESET, TIME_PRESET_W_SECONDS, THEME_NAME, \ + GUI_NAME, HOME_LAYOUT, HISTORY_LAYOUT, DISPLAY_SHOW_SPECIALS, COMING_EPS_LAYOUT, COMING_EPS_SORT, COMING_EPS_DISPLAY_PAUSED, COMING_EPS_DISPLAY_SNATCHED, COMING_EPS_MISSED_RANGE, FUZZY_DATING, TRIM_ZERO, DATE_PRESET, TIME_PRESET, TIME_PRESET_W_SECONDS, THEME_NAME, \ POSTER_SORTBY, POSTER_SORTDIR, HISTORY_LIMIT, CREATE_MISSING_SHOW_DIRS, ADD_SHOWS_WO_DIR, USE_FREE_SPACE_CHECK, \ METADATA_WDTV, METADATA_TIVO, METADATA_MEDE8ER, IGNORE_WORDS, TRACKERS_LIST, IGNORED_SUBS_LIST, REQUIRE_WORDS, CALENDAR_UNPROTECTED, CALENDAR_ICONS, NO_RESTART, \ USE_SUBTITLES, SUBTITLES_INCLUDE_SPECIALS, SUBTITLES_LANGUAGES, SUBTITLES_DIR, SUBTITLES_SERVICES_LIST, SUBTITLES_SERVICES_ENABLED, SUBTITLES_HISTORY, SUBTITLES_FINDER_FREQUENCY, SUBTITLES_MULTI, SUBTITLES_KEEP_ONLY_WANTED, EMBEDDED_SUBTITLES_ALL, SUBTITLES_EXTRA_SCRIPTS, SUBTITLES_PERFECT_MATCH, subtitlesFinderScheduler, \ @@ -1370,6 +1371,7 @@ def initialize(consoleLogging=True): # pylint: disable=too-many-locals, too-man DISPLAY_SHOW_SPECIALS = check_setting_bool(CFG, 'GUI', 'display_show_specials', True) COMING_EPS_LAYOUT = check_setting_str(CFG, 'GUI', 'coming_eps_layout', 'banner') COMING_EPS_DISPLAY_PAUSED = check_setting_bool(CFG, 'GUI', 'coming_eps_display_paused') + COMING_EPS_DISPLAY_SNATCHED = check_setting_bool(CFG, 'GUI', 'coming_eps_display_snatched') COMING_EPS_SORT = check_setting_str(CFG, 'GUI', 'coming_eps_sort', 'date') COMING_EPS_MISSED_RANGE = check_setting_int(CFG, 'GUI', 'coming_eps_missed_range', 7, min_val=0, max_val=42810, fallback_def=False) FUZZY_DATING = check_setting_bool(CFG, 'GUI', 'fuzzy_dating') @@ -2337,6 +2339,7 @@ def save_config(): # pylint: disable=too-many-statements, too-many-branches 'display_show_specials': int(DISPLAY_SHOW_SPECIALS), 'coming_eps_layout': COMING_EPS_LAYOUT, 'coming_eps_display_paused': int(COMING_EPS_DISPLAY_PAUSED), + 'coming_eps_display_snatched': int(COMING_EPS_DISPLAY_SNATCHED), 'coming_eps_sort': COMING_EPS_SORT, 'coming_eps_missed_range': config.min_max(COMING_EPS_MISSED_RANGE, 7, 0, 42810), 'fuzzy_dating': int(FUZZY_DATING), diff --git a/sickbeard/webserve.py b/sickbeard/webserve.py index 544567b71..407c8ed66 100644 --- a/sickbeard/webserve.py +++ b/sickbeard/webserve.py @@ -474,6 +474,13 @@ class WebRoot(WebHandler): return self.redirect("/schedule/") + + def toggleScheduleDisplaySnatched(self): + + sickbeard.COMING_EPS_DISPLAY_SNATCHED = not sickbeard.COMING_EPS_DISPLAY_SNATCHED + + return self.redirect("/schedule/") + def setScheduleSort(self, sort): if sort not in ('date', 'network', 'show') or sickbeard.COMING_EPS_LAYOUT == 'calendar': sort = 'date' -- GitLab