mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-08-22 14:13:40 -07:00
initial commit
This commit is contained in:
parent
3c996f01a9
commit
461a78dcba
3 changed files with 34 additions and 4 deletions
|
@ -560,6 +560,14 @@ DOCUMENTATION :: END
|
||||||
<div class="table-card-header">
|
<div class="table-card-header">
|
||||||
<div class="header-bar">
|
<div class="header-bar">
|
||||||
<span><i class="fa fa-group"></i> User Stats</span>
|
<span><i class="fa fa-group"></i> User Stats</span>
|
||||||
|
% if _session['user_group'] == 'admin':
|
||||||
|
<div class="form-check-reverse form-switch">
|
||||||
|
% else:
|
||||||
|
<div class="form-check-reverse form-switch" hidden>
|
||||||
|
% endif
|
||||||
|
<input class="form-check-input" type="checkbox" role="switch" id="switch-show-all-users">
|
||||||
|
<label class="form-check-label" for="switch-show-all-users">Show All Users</label>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="table-card-back">
|
<div class="table-card-back">
|
||||||
|
@ -940,7 +948,7 @@ DOCUMENTATION :: END
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: 'item_user_stats',
|
url: 'item_user_stats',
|
||||||
async: true,
|
async: true,
|
||||||
data: { rating_key: "${data['rating_key']}" },
|
data: { rating_key: "${data['rating_key']}", show_all_users: $('#switch-show-all-users').prop('checked') },
|
||||||
complete: function(xhr, status) {
|
complete: function(xhr, status) {
|
||||||
$("#user-stats").html(xhr.responseText);
|
$("#user-stats").html(xhr.responseText);
|
||||||
}
|
}
|
||||||
|
@ -1018,6 +1026,18 @@ DOCUMENTATION :: END
|
||||||
</script>
|
</script>
|
||||||
% if _session['user_group'] == 'admin':
|
% if _session['user_group'] == 'admin':
|
||||||
<script>
|
<script>
|
||||||
|
$('#switch-show-all-users').on('change', function() {
|
||||||
|
// Refresh user stats
|
||||||
|
$.ajax({
|
||||||
|
url: 'item_user_stats',
|
||||||
|
async: true,
|
||||||
|
data: { rating_key: "${data['rating_key']}", show_all_users: $('#switch-show-all-users').prop('checked') },
|
||||||
|
complete: function(xhr, status) {
|
||||||
|
$("#user-stats").html(xhr.responseText);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
$("#toggle-export-modal").click(function() {
|
$("#toggle-export-modal").click(function() {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: 'export_metadata_modal',
|
url: 'export_metadata_modal',
|
||||||
|
|
|
@ -1213,7 +1213,7 @@ class DataFactory(object):
|
||||||
|
|
||||||
return item_watch_time_stats
|
return item_watch_time_stats
|
||||||
|
|
||||||
def get_user_stats(self, rating_key=None, grouping=None):
|
def get_user_stats(self, rating_key=None, grouping=None, **kwargs):
|
||||||
if grouping is None:
|
if grouping is None:
|
||||||
grouping = plexpy.CONFIG.GROUP_HISTORY_TABLES
|
grouping = plexpy.CONFIG.GROUP_HISTORY_TABLES
|
||||||
|
|
||||||
|
@ -1248,6 +1248,16 @@ class DataFactory(object):
|
||||||
logger.warn("Tautulli Libraries :: Unable to execute database query for get_user_stats: %s." % e)
|
logger.warn("Tautulli Libraries :: Unable to execute database query for get_user_stats: %s." % e)
|
||||||
result = []
|
result = []
|
||||||
|
|
||||||
|
if kwargs['show_all_users'] == 'true':
|
||||||
|
users_to_exlude = '(0,' + ','.join([str(x['user_id']) for x in result]) + ')'
|
||||||
|
|
||||||
|
query = 'SELECT (CASE WHEN users.friendly_name IS NULL OR TRIM(users.friendly_name) = "" ' \
|
||||||
|
'THEN users.username ELSE users.friendly_name END) AS friendly_name, ' \
|
||||||
|
'users.user_id, users.username, users.thumb, users.custom_avatar_url AS custom_thumb, ' \
|
||||||
|
'0 AS total_plays, 0 AS total_time, -1 AS section_id ' \
|
||||||
|
'FROM users WHERE NOT user_id IN %s' % users_to_exlude
|
||||||
|
result.extend(monitor_db.select(query))
|
||||||
|
|
||||||
for item in result:
|
for item in result:
|
||||||
section_ids.add(item['section_id'])
|
section_ids.add(item['section_id'])
|
||||||
|
|
||||||
|
@ -1267,7 +1277,7 @@ class DataFactory(object):
|
||||||
}
|
}
|
||||||
user_stats.append(row)
|
user_stats.append(row)
|
||||||
|
|
||||||
if any(not session.allow_session_library(section_id) for section_id in section_ids):
|
if any(not session.allow_session_library(section_id) for section_id in section_ids if section_id != -1):
|
||||||
return []
|
return []
|
||||||
|
|
||||||
return session.mask_session_info(user_stats, mask_metadata=False)
|
return session.mask_session_info(user_stats, mask_metadata=False)
|
||||||
|
|
|
@ -4449,7 +4449,7 @@ class WebInterface(object):
|
||||||
def item_user_stats(self, rating_key=None, **kwargs):
|
def item_user_stats(self, rating_key=None, **kwargs):
|
||||||
if rating_key:
|
if rating_key:
|
||||||
item_data = datafactory.DataFactory()
|
item_data = datafactory.DataFactory()
|
||||||
result = item_data.get_user_stats(rating_key=rating_key)
|
result = item_data.get_user_stats(rating_key=rating_key, **kwargs)
|
||||||
else:
|
else:
|
||||||
result = None
|
result = None
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue