mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-10 23:42:37 -07:00
Add hours as time frame for newsletters
This commit is contained in:
parent
d316aa34e2
commit
df72ecebf5
5 changed files with 43 additions and 14 deletions
|
@ -4046,6 +4046,19 @@ a:hover .overlay-refresh-image:hover {
|
||||||
-webkit-appearance: none;
|
-webkit-appearance: none;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
.newsletter-time_frame .input-group-addon {
|
||||||
|
height: 32px;
|
||||||
|
width: 52px;
|
||||||
|
margin-top: 5px;
|
||||||
|
line-height: 1.42857143;
|
||||||
|
}
|
||||||
|
.newsletter-time_frame input.form-control {
|
||||||
|
width: calc(50% - 37px);
|
||||||
|
}
|
||||||
|
.newsletter-time_frame select.form-control {
|
||||||
|
width: calc(50% - 15px);
|
||||||
|
height: 32px;
|
||||||
|
}
|
||||||
.newsletter-loader-container {
|
.newsletter-loader-container {
|
||||||
font-family: 'Open Sans', Arial, sans-serif;
|
font-family: 'Open Sans', Arial, sans-serif;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
|
@ -57,6 +57,22 @@
|
||||||
<div class="col-md-12" style="padding-top: 10px; border-top: 1px solid #444;">
|
<div class="col-md-12" style="padding-top: 10px; border-top: 1px solid #444;">
|
||||||
<input type="hidden" id="newsletter_id" name="newsletter_id" value="${newsletter['id']}" />
|
<input type="hidden" id="newsletter_id" name="newsletter_id" value="${newsletter['id']}" />
|
||||||
<input type="hidden" id="agent_id" name="agent_id" value="${newsletter['agent_id']}" />
|
<input type="hidden" id="agent_id" name="agent_id" value="${newsletter['agent_id']}" />
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="time_frame">Time Frame</label>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4">
|
||||||
|
<div class="input-group newsletter-time_frame">
|
||||||
|
<span class="input-group-addon form-control btn-dark inactive">Last</span>
|
||||||
|
<input type="number" class="form-control" id="newsletter_config_time_frame" name="newsletter_config_time_frame" value="${newsletter['config']['time_frame']}">
|
||||||
|
<select class="form-control" id="newsletter_config_time_frame_units" name="newsletter_config_time_frame_units">
|
||||||
|
<option value="days" ${'selected' if newsletter['config']['time_frame_units'] == 'days' else ''}>days</option>
|
||||||
|
<option value="hours" ${'selected' if newsletter['config']['time_frame_units'] == 'hours' else ''}>hours</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p class="help-block">The time frame to include in the newsletter. Note: Days uses calendar days (i.e. since midnight).</p>
|
||||||
|
</div>
|
||||||
% for item in newsletter['config_options']:
|
% for item in newsletter['config_options']:
|
||||||
% if item['input_type'] == 'help':
|
% if item['input_type'] == 'help':
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|
|
@ -522,7 +522,8 @@ NEWSLETTER_PARAMETERS = [
|
||||||
{'name': 'Start Date', 'type': 'str', 'value': 'start_date', 'description': 'The start date of the newesletter.'},
|
{'name': 'Start Date', 'type': 'str', 'value': 'start_date', 'description': 'The start date of the newesletter.'},
|
||||||
{'name': 'End Date', 'type': 'str', 'value': 'end_date', 'description': 'The end date of the newesletter.'},
|
{'name': 'End Date', 'type': 'str', 'value': 'end_date', 'description': 'The end date of the newesletter.'},
|
||||||
{'name': 'Week Number', 'type': 'int', 'value': 'week_number', 'description': 'The week number of the newsletter.'},
|
{'name': 'Week Number', 'type': 'int', 'value': 'week_number', 'description': 'The week number of the newsletter.'},
|
||||||
{'name': 'Newsletter Days', 'type': 'int', 'value': 'newsletter_days', 'description': 'The past number of days included in the newsletter.'},
|
{'name': 'Newsletter Time Frame', 'type': 'int', 'value': 'newsletter_time_frame', 'description': 'The time frame included in the newsletter.'},
|
||||||
|
{'name': 'Newsletter Time Frame Units', 'type': 'str', 'value': 'newsletter_time_frame_units', 'description': 'The time frame units included in the newsletter.'},
|
||||||
{'name': 'Newsletter URL', 'type': 'str', 'value': 'newsletter_url', 'description': 'The self-hosted URL to the newsletter.'},
|
{'name': 'Newsletter URL', 'type': 'str', 'value': 'newsletter_url', 'description': 'The self-hosted URL to the newsletter.'},
|
||||||
{'name': 'Newsletter UUID', 'type': 'str', 'value': 'newsletter_uuid', 'description': 'The unique identifier for the newsletter.'},
|
{'name': 'Newsletter UUID', 'type': 'str', 'value': 'newsletter_uuid', 'description': 'The unique identifier for the newsletter.'},
|
||||||
]
|
]
|
||||||
|
|
|
@ -296,7 +296,8 @@ def generate_newsletter_uuid():
|
||||||
class Newsletter(object):
|
class Newsletter(object):
|
||||||
NAME = ''
|
NAME = ''
|
||||||
_DEFAULT_CONFIG = {'custom_cron': 0,
|
_DEFAULT_CONFIG = {'custom_cron': 0,
|
||||||
'last_days': 7,
|
'time_frame': 7,
|
||||||
|
'time_frame_units': 'days',
|
||||||
'formatted': 1,
|
'formatted': 1,
|
||||||
'notifier_id': 0}
|
'notifier_id': 0}
|
||||||
_DEFAULT_EMAIL_CONFIG = EMAIL().return_default_config()
|
_DEFAULT_EMAIL_CONFIG = EMAIL().return_default_config()
|
||||||
|
@ -324,7 +325,7 @@ class Newsletter(object):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if self.end_date is None:
|
if self.end_date is None:
|
||||||
self.end_date = arrow.now().ceil('day')
|
self.end_date = arrow.now()
|
||||||
|
|
||||||
if start_date:
|
if start_date:
|
||||||
try:
|
try:
|
||||||
|
@ -333,7 +334,10 @@ class Newsletter(object):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if self.start_date is None:
|
if self.start_date is None:
|
||||||
self.start_date = self.end_date.shift(days=-self.config['last_days']+1).floor('day')
|
if self.config['time_frame_units'] == 'days':
|
||||||
|
self.start_date = self.end_date.shift(days=-self.config['time_frame']+1).floor('day')
|
||||||
|
else:
|
||||||
|
self.start_date = self.end_date.shift(hours=-self.config['time_frame']).floor('hour')
|
||||||
|
|
||||||
self.end_time = self.end_date.timestamp
|
self.end_time = self.end_date.timestamp
|
||||||
self.start_time = self.start_date.timestamp
|
self.start_time = self.start_date.timestamp
|
||||||
|
@ -478,7 +482,8 @@ class Newsletter(object):
|
||||||
'start_date': self.start_date.format(date_format),
|
'start_date': self.start_date.format(date_format),
|
||||||
'end_date': self.end_date.format(date_format),
|
'end_date': self.end_date.format(date_format),
|
||||||
'week_number': self.start_date.isocalendar()[1],
|
'week_number': self.start_date.isocalendar()[1],
|
||||||
'newsletter_days': self.config['last_days'],
|
'newsletter_time_frame': self.config['time_frame'],
|
||||||
|
'newsletter_time_frame_units': self.config['time_frame_units'],
|
||||||
'newsletter_url': base_url.rstrip('/') + plexpy.HTTP_ROOT + 'newsletter/' + self.uuid,
|
'newsletter_url': base_url.rstrip('/') + plexpy.HTTP_ROOT + 'newsletter/' + self.uuid,
|
||||||
'newsletter_uuid': self.uuid
|
'newsletter_uuid': self.uuid
|
||||||
}
|
}
|
||||||
|
@ -528,14 +533,7 @@ class Newsletter(object):
|
||||||
return self._return_config_options()
|
return self._return_config_options()
|
||||||
|
|
||||||
def _return_config_options(self):
|
def _return_config_options(self):
|
||||||
config_options = [
|
config_options = []
|
||||||
{'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
|
||||||
|
|
||||||
|
|
|
@ -5521,7 +5521,8 @@ class WebInterface(object):
|
||||||
"friendly_name": "",
|
"friendly_name": "",
|
||||||
"cron": "0 0 * * 1",
|
"cron": "0 0 * * 1",
|
||||||
"active": 1
|
"active": 1
|
||||||
"config": {"last_days": 7,
|
"config": {"time_frame": 7,
|
||||||
|
"time_frame_units": "days",
|
||||||
"incl_libraries": [1, 2]
|
"incl_libraries": [1, 2]
|
||||||
},
|
},
|
||||||
"email_config": {...},
|
"email_config": {...},
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue