As self-hosted config option

This commit is contained in:
JonnyWong16 2018-03-20 10:39:33 -07:00
parent b712874ed2
commit 15cc96a005
2 changed files with 42 additions and 24 deletions

View file

@ -350,7 +350,7 @@
} }
}); // apply cron with default options }); // apply cron with default options
var $incl_libraries = $('#recently_added_incl_libraries').selectize({ var $incl_libraries = $('#newsletter_config_incl_libraries').selectize({
plugins: ['remove_button'], plugins: ['remove_button'],
maxItems: null, maxItems: null,
render: { render: {
@ -375,7 +375,7 @@
} }
}); });
var incl_libraries = $incl_libraries[0].selectize; var incl_libraries = $incl_libraries[0].selectize;
incl_libraries.setValue(${json.dumps(next((c['value'] for c in newsletter['config_options'] if c['name'] == 'recently_added_incl_libraries'), [])) | n}); incl_libraries.setValue(${json.dumps(next((c['value'] for c in newsletter['config_options'] if c['name'] == 'newsletter_config_incl_libraries'), [])) | n});
$('#email_notifier').change(function () { $('#email_notifier').change(function () {
if ($(this).val() === "0") { if ($(this).val() === "0") {

View file

@ -208,7 +208,7 @@ def set_newsletter_config(newsletter_id=None, agent_id=None, **kwargs):
% agent_id) % agent_id)
return False return False
config_prefix = agent['name'] + '_' config_prefix = 'newsletter_config_'
email_config_prefix = 'newsletter_email_' email_config_prefix = 'newsletter_email_'
newsletter_config = {k[len(config_prefix):]: kwargs.pop(k) newsletter_config = {k[len(config_prefix):]: kwargs.pop(k)
@ -289,7 +289,8 @@ def generate_newsletter_uuid():
class Newsletter(object): class Newsletter(object):
NAME = '' NAME = ''
_DEFAULT_CONFIG = {'last_days': 7} _DEFAULT_CONFIG = {'last_days': 7,
'self_hosted': 0}
_DEFAULT_EMAIL_CONFIG = EMAIL().return_default_config() _DEFAULT_EMAIL_CONFIG = EMAIL().return_default_config()
_DEFAULT_EMAIL_CONFIG['from_name'] = 'Tautulli Newsletter' _DEFAULT_EMAIL_CONFIG['from_name'] = 'Tautulli Newsletter'
_DEFAULT_EMAIL_CONFIG['notifier'] = 0 _DEFAULT_EMAIL_CONFIG['notifier'] = 0
@ -336,7 +337,7 @@ class Newsletter(object):
self.data = {} self.data = {}
self.newsletter = None self.newsletter = None
self.is_preview = False self.is_preview = bool(self.config['self_hosted'])
def set_config(self, config=None, default=None): def set_config(self, config=None, default=None):
return self._validate_config(config=config, default=default) return self._validate_config(config=config, default=default)
@ -398,6 +399,10 @@ class Newsletter(object):
self.newsletter = self.generate_newsletter() self.newsletter = self.generate_newsletter()
self._save() self._save()
if self.is_preview:
return True
return self._send() return self._send()
def _save(self): def _save(self):
@ -489,7 +494,24 @@ class Newsletter(object):
return subject, body return subject, body
def return_config_options(self): def return_config_options(self):
config_options = [] return self._return_config_options()
def _return_config_options(self):
config_options = [
{'label': 'Self-Hosted',
'value': self.config['self_hosted'],
'description': 'Self-host this newsletter.',
'name': 'newsletter_config_self_hosted',
'input_type': 'checkbox'
},
{'label': 'Number of Days',
'value': self.config['last_days'],
'name': 'newsletter_config_last_days',
'description': 'The past number of days to include in the newsletter.',
'input_type': 'number'
}
]
return config_options return config_options
def return_email_config_options(self): def return_email_config_options(self):
@ -504,9 +526,8 @@ class RecentlyAdded(Newsletter):
Recently Added Newsletter Recently Added Newsletter
""" """
NAME = 'Recently Added' NAME = 'Recently Added'
_DEFAULT_CONFIG = {'last_days': 7, _DEFAULT_CONFIG = Newsletter._DEFAULT_CONFIG.copy()
'incl_libraries': [] _DEFAULT_CONFIG['incl_libraries'] = []
}
_DEFAULT_SUBJECT = 'Recently Added to {server_name}! ({end_date})' _DEFAULT_SUBJECT = 'Recently Added to {server_name}! ({end_date})'
_DEFAULT_BODY = 'View the newsletter here: {newsletter_url}' _DEFAULT_BODY = 'View the newsletter here: {newsletter_url}'
_TEMPLATE_MASTER = 'recently_added_master.html' _TEMPLATE_MASTER = 'recently_added_master.html'
@ -713,19 +734,16 @@ class RecentlyAdded(Newsletter):
return parameters return parameters
def return_config_options(self): def return_config_options(self):
config_option = [{'label': 'Number of Days', config_options = self._return_config_options()
'value': self.config['last_days'],
'name': 'recently_added_last_days', additional_config = [
'description': 'The past number of days to include in the newsletter.',
'input_type': 'number'
},
{'label': 'Included Libraries', {'label': 'Included Libraries',
'value': self.config['incl_libraries'], 'value': self.config['incl_libraries'],
'description': 'Select the libraries to include in the newsletter.', 'description': 'Select the libraries to include in the newsletter.',
'name': 'recently_added_incl_libraries', 'name': 'newsletter_config_incl_libraries',
'input_type': 'selectize', 'input_type': 'selectize',
'select_options': self._get_sections_options() 'select_options': self._get_sections_options()
} }
] ]
return config_option return config_options + additional_config