mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-07 21:51:14 -07:00
As self-hosted config option
This commit is contained in:
parent
b712874ed2
commit
15cc96a005
2 changed files with 42 additions and 24 deletions
|
@ -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") {
|
||||||
|
|
|
@ -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',
|
|
||||||
'description': 'The past number of days to include in the newsletter.',
|
|
||||||
'input_type': 'number'
|
|
||||||
},
|
|
||||||
{'label': 'Included Libraries',
|
|
||||||
'value': self.config['incl_libraries'],
|
|
||||||
'description': 'Select the libraries to include in the newsletter.',
|
|
||||||
'name': 'recently_added_incl_libraries',
|
|
||||||
'input_type': 'selectize',
|
|
||||||
'select_options': self._get_sections_options()
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
return config_option
|
additional_config = [
|
||||||
|
{'label': 'Included Libraries',
|
||||||
|
'value': self.config['incl_libraries'],
|
||||||
|
'description': 'Select the libraries to include in the newsletter.',
|
||||||
|
'name': 'newsletter_config_incl_libraries',
|
||||||
|
'input_type': 'selectize',
|
||||||
|
'select_options': self._get_sections_options()
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
return config_options + additional_config
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue