def get_action_name(self, action, debug=0): return staff_tasks.get_action_name(action, debug=debug)
def make_admin_activity_panel( self, view="", user_to_view=None, action_to_view=None, ip_to_view=None, post_to_view=None, sortby_name="date", sortby_dir="desc", ): board = self.board template_view = "staff_activity_unfiltered" action_name = action_content = "" table = model.activity account_table = model.account dual_table_select = [ account_table.c.username, account_table.c.account, account_table.c.disabled, table.c.action, table.c.info, table.c.date, table.c.ip, ] sql = select( dual_table_select, from_obj=[table.join(account_table, table.c.username == model.account.c.username)] ) rooturl_args = dict( task="stafflog", board=board.name, view=view, sortby=sortby_name, order=sortby_dir, _amp=True ) if view == "user": if not user_to_view: raise WakaError("Please select a user to view.") template_view = "staff_activity_by_user" sql = sql.where(table.c.username == user_to_view) rooturl_args["usertoview"] = user_to_view elif view == "action": if not action_to_view: raise WakaError("Please select an action to view.") template_view = "staff_activity_by_actions" (action_name, action_content) = staff_tasks.get_action_name(action_to_view, 1) sql = sql.where(table.c.action == action_to_view) rooturl_args["actiontoview"] = action_to_view elif view == "ip": if not ip_to_view: raise WakaError("Please specify an IP address to view.") template_view = "staff_activity_by_ip_address" sql = sql.where(table.c.info.like("%" + ip_to_view + "%")) rooturl_args["iptoview"] = ip_to_view elif view == "post": if not post_to_view: raise WakaError("Post key missing.") template_view = "staff_activity_by_post" sql = sql.where(table.c.info.like("%" + post_to_view + "%")) rooturl_args["posttoview"] = post_to_view rooturl = misc.make_script_url(**rooturl_args) # Acquire staff info. session = model.Session() staff_get = model.account.select() staff = session.execute(staff_get).fetchall() # Establish list of hidden inputs. inputs = [ {"name": "actiontoview", "value": action_to_view}, {"name": "task", "value": "stafflog"}, {"name": "posttoview", "value": post_to_view}, {"name": "usertoview", "value": user_to_view}, {"name": "iptoview", "value": ip_to_view}, {"name": "order", "value": sortby_dir}, {"name": "sortby", "value": sortby_name}, {"name": "view", "value": view}, ] if self.board: inputs.append({"name": "board", "value": self.board.name}) # Apply sorting. if sortby_name and hasattr(table.c, sortby_name): order_col = getattr(table.c, sortby_name) if sortby_dir.lower() == "asc": sort_spec = order_col.asc() else: sort_spec = order_col.desc() sql = sql.order_by(sort_spec) res = model.Page(sql, self.page, self.perpage) Template.__init__( self, template_view, user_to_view=user_to_view, entries=res.rows, staff=staff, rowcount=res.total_entries, numberofpages=res.total_pages, view=view, order=sortby_dir, action_name=action_name, content_name=action_content, sortby=sortby_name, number_of_pages=res.total_pages, rooturl=rooturl, inputs=inputs, )
def make_admin_activity_panel(self, view='', user_to_view=None, action_to_view=None, ip_to_view=None, post_to_view=None, sortby_name='date', sortby_dir='desc'): board = self.board template_view = 'staff_activity_unfiltered' action_name = action_content = '' table = model.activity account_table = model.account dual_table_select = [ account_table.c.username, account_table.c.account, account_table.c.disabled, table.c.action, table.c.info, table.c.date, table.c.ip ] sql = select(dual_table_select, from_obj=[ table.join( account_table, table.c.username == model.account.c.username) ]) rooturl_args = dict(task='stafflog', board=board.name, view=view, sortby=sortby_name, order=sortby_dir, _amp=True) if view == 'user': if not user_to_view: raise WakaError('Please select a user to view.') template_view = 'staff_activity_by_user' sql = sql.where(table.c.username == user_to_view) rooturl_args['usertoview'] = user_to_view elif view == 'action': if not action_to_view: raise WakaError('Please select an action to view.') template_view = 'staff_activity_by_actions' (action_name, action_content) \ = staff_tasks.get_action_name(action_to_view, 1) sql = sql.where(table.c.action == action_to_view) rooturl_args['actiontoview'] = action_to_view elif view == 'ip': if not ip_to_view: raise WakaError('Please specify an IP address to view.') template_view = 'staff_activity_by_ip_address' sql = sql.where(table.c.info.like('%' + ip_to_view + '%')) rooturl_args['iptoview'] = ip_to_view elif view == 'post': if not post_to_view: raise WakaError('Post key missing.') template_view = 'staff_activity_by_post' sql = sql.where(table.c.info.like('%' + post_to_view + '%')) rooturl_args['posttoview'] = post_to_view rooturl = misc.make_script_url(**rooturl_args) # Acquire staff info. session = model.Session() staff_get = model.account.select() staff = session.execute(staff_get).fetchall() # Establish list of hidden inputs. inputs = [{ 'name': 'actiontoview', 'value': action_to_view }, { 'name': 'task', 'value': 'stafflog' }, { 'name': 'posttoview', 'value': post_to_view }, { 'name': 'usertoview', 'value': user_to_view }, { 'name': 'iptoview', 'value': ip_to_view }, { 'name': 'order', 'value': sortby_dir }, { 'name': 'sortby', 'value': sortby_name }, { 'name': 'view', 'value': view }] if self.board: inputs.append({'name': 'board', 'value': self.board.name}) # Apply sorting. if sortby_name and hasattr(table.c, sortby_name): order_col = getattr(table.c, sortby_name) if sortby_dir.lower() == 'asc': sort_spec = order_col.asc() else: sort_spec = order_col.desc() sql = sql.order_by(sort_spec) res = model.Page(sql, self.page, self.perpage) Template.__init__(self, template_view, user_to_view=user_to_view, entries=res.rows, staff=staff, rowcount=res.total_entries, numberofpages=res.total_pages, view=view, order=sortby_dir, action_name=action_name, content_name=action_content, sortby=sortby_name, number_of_pages=res.total_pages, rooturl=rooturl, inputs=inputs)
def make_admin_activity_panel(self, view='', user_to_view=None, action_to_view=None, ip_to_view=None, post_to_view=None, sortby_name='date', sortby_dir='desc'): board = self.board template_view = 'staff_activity_unfiltered' action_name = action_content = '' table = model.activity account_table = model.account dual_table_select = [account_table.c.username, account_table.c.account, account_table.c.disabled, table.c.action, table.c.info, table.c.date, table.c.ip] sql = select(dual_table_select, from_obj=[table.join(account_table, table.c.username == model.account.c.username)]) rooturl_args = dict(task='stafflog', board=board.name, view=view, sortby=sortby_name, order=sortby_dir, _amp=True) if view == 'user': if not user_to_view: raise WakaError('Please select a user to view.') template_view = 'staff_activity_by_user' sql = sql.where(table.c.username == user_to_view) rooturl_args['usertoview'] = user_to_view elif view == 'action': if not action_to_view: raise WakaError('Please select an action to view.') template_view = 'staff_activity_by_actions' (action_name, action_content) \ = staff_tasks.get_action_name(action_to_view, 1) sql = sql.where(table.c.action == action_to_view) rooturl_args['actiontoview'] = action_to_view elif view == 'ip': if not ip_to_view: raise WakaError('Please specify an IP address to view.') template_view = 'staff_activity_by_ip_address' sql = sql.where(table.c.info.like('%' + ip_to_view + '%')) rooturl_args['iptoview'] = ip_to_view elif view == 'post': if not post_to_view: raise WakaError('Post key missing.') template_view = 'staff_activity_by_post' sql = sql.where(table.c.info.like('%' + post_to_view + '%')) rooturl_args['posttoview'] = post_to_view rooturl = misc.make_script_url(**rooturl_args) # Acquire staff info. session = model.Session() staff_get = model.account.select() staff = session.execute(staff_get).fetchall() # Establish list of hidden inputs. inputs = [ {'name' : 'actiontoview', 'value' : action_to_view}, {'name' : 'task', 'value' : 'stafflog'}, {'name' : 'posttoview', 'value' : post_to_view}, {'name' : 'usertoview', 'value' : user_to_view}, {'name' : 'iptoview', 'value' : ip_to_view}, {'name' : 'order', 'value' : sortby_dir}, {'name' : 'sortby', 'value' : sortby_name}, {'name' : 'view', 'value': view} ] if self.board: inputs.append({'name' : 'board', 'value' : self.board.name}) # Apply sorting. if sortby_name and hasattr(table.c, sortby_name): order_col = getattr(table.c, sortby_name) if sortby_dir.lower() == 'asc': sort_spec = order_col.asc() else: sort_spec = order_col.desc() sql = sql.order_by(sort_spec) res = model.Page(sql, self.page, self.perpage) Template.__init__(self, template_view, user_to_view=user_to_view, entries=res.rows, staff=staff, rowcount=res.total_entries, numberofpages=res.total_pages, view=view, order=sortby_dir, action_name=action_name, content_name=action_content, sortby=sortby_name, number_of_pages=res.total_pages, rooturl=rooturl, inputs=inputs)