mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-11 07:46:07 -07:00
Fix header on user IP modal
Return more user data to the info screen. Some other backend changes
This commit is contained in:
parent
2d822c8468
commit
4830cc7d68
6 changed files with 63 additions and 32 deletions
|
@ -59,6 +59,8 @@ class DataTables(object):
|
|||
if join_type:
|
||||
if join_type.upper() == 'LEFT OUTER JOIN':
|
||||
join = 'LEFT OUTER JOIN %s ON %s = %s' % (join_table, join_evals[0], join_evals[1])
|
||||
elif join_type.upper() == 'JOIN' or join_type.upper() == 'INNER JOIN':
|
||||
join = 'INNER JOIN %s ON %s = %s' % (join_table, join_evals[0], join_evals[1])
|
||||
else:
|
||||
join = ''
|
||||
|
||||
|
|
|
@ -697,7 +697,7 @@ class PlexWatch(object):
|
|||
s = self.get_history_table_name()
|
||||
query = 'SELECT user, ' \
|
||||
'(case when friendly_name is null then user else friendly_name end) as friendly_name,' \
|
||||
'COUNT(' + s + '.id) as total_plays, MAX(time) as last_watch ' \
|
||||
'COUNT(' + s + '.id) as total_plays, MAX(time) as last_watch, thumb ' \
|
||||
'FROM ' + s + ' ' \
|
||||
'LEFT OUTER JOIN plexpy_users ON ' + s + '.user = plexpy_users.username ' \
|
||||
'WHERE datetime(stopped, "unixepoch", "localtime") >= ' \
|
||||
|
@ -710,12 +710,17 @@ class PlexWatch(object):
|
|||
return None
|
||||
|
||||
for item in result:
|
||||
if not item['thumb']:
|
||||
user_thumb = 'interfaces/default/images/gravatar-default-80x80.png'
|
||||
else:
|
||||
user_thumb = item[4]
|
||||
|
||||
thumb = self.get_user_gravatar_image(item[0])
|
||||
row = {'user': item[0],
|
||||
'friendly_name': item[1],
|
||||
'total_plays': item[2],
|
||||
'last_play': item[3],
|
||||
'thumb': thumb['user_thumb']
|
||||
'thumb': user_thumb
|
||||
}
|
||||
top_users.append(row)
|
||||
|
||||
|
@ -940,6 +945,37 @@ class PlexWatch(object):
|
|||
|
||||
return None
|
||||
|
||||
def get_user_details(self, user=None, user_id=None):
|
||||
if user:
|
||||
try:
|
||||
myDB = db.DBConnection()
|
||||
query = 'select user_id, username, friendly_name, email, thumb, ' \
|
||||
'is_home_user, is_allow_sync, is_restricted FROM plexpy_users WHERE username = ? LIMIT 1'
|
||||
result = myDB.select(query, args=[user])
|
||||
if result:
|
||||
for item in result:
|
||||
if not item['friendly_name']:
|
||||
friendly_name = item['username']
|
||||
else:
|
||||
friendly_name = item['friendly_name']
|
||||
|
||||
user_details = {"user_id": item['user_id'],
|
||||
"username": item['username'],
|
||||
"friendly_name": friendly_name,
|
||||
"email": item['email'],
|
||||
"thumb": item['thumb'],
|
||||
"is_home_user": item['is_home_user'],
|
||||
"is_allow_sync": item['is_allow_sync'],
|
||||
"is_restricted": item['is_restricted']
|
||||
}
|
||||
return user_details
|
||||
else:
|
||||
return None
|
||||
except:
|
||||
return None
|
||||
|
||||
return None
|
||||
|
||||
# Taken from:
|
||||
# https://stackoverflow.com/questions/18066269/group-by-and-aggregate-the-values-of-a-list-of-dictionaries-in-python
|
||||
@staticmethod
|
||||
|
|
|
@ -101,12 +101,12 @@ class WebInterface(object):
|
|||
def user(self, user=None):
|
||||
try:
|
||||
plex_watch = plexwatch.PlexWatch()
|
||||
friendly_name = plex_watch.get_user_friendly_name(user)
|
||||
user_details = plex_watch.get_user_details(user)
|
||||
except:
|
||||
logger.warn("Unable to retrieve friendly name for user %s " % user)
|
||||
friendly_name = user
|
||||
|
||||
return serve_template(templatename="user.html", title="User", user=user, friendly_name=friendly_name)
|
||||
return serve_template(templatename="user.html", title="User", data=user_details)
|
||||
|
||||
@cherrypy.expose
|
||||
def edit_user(self, user=None, friendly_name=None, **kwargs):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue