def error_panel(db): host = zoom.system.request.host data = db( """ select log.id, username, path, timestamp from log left join users on log.user_id = users.id where log.status in ("E") and timestamp>=%s and server = %s order by log.id desc limit 10 """, today(), host) rows = [] for rec in data: row = [ link_to(str(rec[0]), '/admin/entry/' + str(rec[0])), link_to_user(rec[1]), rec[2], how_long_ago(rec[3]), ] rows.append(row) labels = 'id', 'user', 'path', 'when' return zoom.browse(rows, labels=labels, title=link_to_page('Errors'))
def activity_panel(db): host = zoom.system.request.host data = db( """ select log.id, users.username, log.address, log.path, log.timestamp, log.elapsed from log left join users on log.user_id = users.id where server = %s and path not like "%%\\/\\_%%" and log.status = 'C' order by timestamp desc limit 15 """, host) rows = [] for rec in data: row = [ link_to(str(rec[0]), '/admin/entry/' + str(rec[0])), link_to_user(rec[1]), rec[2], zoom.link_to(rec[3]), how_long_ago(rec[4]), rec[4], rec[5], ] rows.append(row) labels = 'id', 'user', 'address', 'path', 'when', 'timestamp', 'elapsed' return zoom.browse(rows, labels=labels, title=link_to_page('Requests'))
def users_panel(db): host = zoom.system.request.host data = db( """ select users.username, max(log.timestamp) as timestamp, count(*) as requests from log, users where log.user_id = users.id and timestamp >= %s and server = %s and path not like "%%\\/\\_%%" group by users.username order by timestamp desc limit 10 """, today() - datetime.timedelta(days=14), host) rows = [] for rec in data: row = [ link_to_user(rec[0]), how_long_ago(rec[1]), rec[2], ] rows.append(row) labels = 'user', 'last seen', 'requests' return zoom.browse(rows, labels=labels, title=link_to_page('Users'))
def index(): """app index""" event_log = list( zoom.system.site.db(''' select log.message, log.timestamp from log join users on log.user_id = users.id where log.app = "content" and log.status = 'A' order by log.timestamp desc limit 10; ''')) parsed_log = list() for row in event_log: parsed_log.append((row[0], how_long_ago(row[1]))) parsed_log.insert(0, ('Event', 'When')) content = zoom.browse(parsed_log, title='Recent Activity') return zoom.page( content, title='Overview', )
def log_data(db, status, n, limit, q): """retreive log data""" host = zoom.system.request.host statuses = tuple(status) offset = int(n) * int(limit) cmd = """ select id, status, user_id, address, app, path, timestamp, elapsed from log where status in %s and server = %s order by id desc limit {limit} offset {offset} """.format(limit=int(limit), offset=offset, statuses=statuses) data = db(cmd, statuses, host) data = [[ link_to(str(item[0]), '/admin/entry/' + str(item[0])), item[1], zoom.helpers.who(item[2]), item[3], item[4], zoom.link_to(item[5]), how_long_ago(item[6]), ] + list(item[6:]) for item in data if q in repr(item)] labels = ('id', 'status', 'user', 'address', 'app', 'path', 'when', 'timestamp', 'elapsed') return zoom.browse(data, labels=labels)