@handler.authenticated()
  @handler.asynchronous(datastore=True)
  @admin.require_permission(level='root')
  def get(self):
    user_id = self.get_argument('user_id', None)
    user_email = self.get_argument('user_email', None)  # User email retrieved for display only
    t_dict = {'user_id': user_id, 'user_email': user_email}
    t_dict.update(self.PermissionsTemplateDict())

    if user_id is not None:
      if user_id.isdigit():
        # User ID is provided - look up logs directly for this user id.
        t_dict['col_names'] = ['Date', 'Operation Method', 'Operation ID', 'Attempt #', 'View Link']
        data_source_page = 'user_logs_data'
        template = 'userlogs_table.html'
      else:
        # User name is provided - search for matching User IDs.
        t_dict['col_names'] = ['User Name', 'Email', 'User Id']
        data_source_page = 'user_names_data'
        template = 'userlogs_users.html'

      t_dict['ajax_src'] = (self.request.host, data_source_page, self.request.query) % 'https://%s/admin/%s?%s'
      t_dict['col_data'] = list()
      t_dict['user_email'] = user_email
      self.render(template, **t_dict)
    else:
      self.render('userlogs.html', **t_dict)
dataset/ETHPy150Open viewfinderco/viewfinder/backend/www/admin/user_logs.py/UserLogHandler.get/swapped operands of `%`