示例#1
0
def item_list(req, pager, **kwargs):
    keys = list("%s %s %%s" % (k, 'in' if islistable(v) else '=')
                for k, v in kwargs.items())
    cond = "WHERE " + ' AND '.join(keys) if keys else ''

    tran = req.db.transaction(req.log_info)
    c = tran.cursor()
    c.execute("""
        SELECT path, timestamp, singleton, pid, j.login_id, email, j.data
        FROM jobs j LEFT JOIN logins l ON (l.login_id = j.login_id)
            %s ORDER BY %s LIMIT %%d, %%d
        """ % (cond, pager.order),
              tuple(kwargs.values()) + (pager.offset, pager.limit))
    items = []
    for row in iter(c.fetchone, None):
        item = Job('')
        item.path, timestamp, item.singleton, item.pid, item.login_id, \
            item.email, data = row
        item.timestamp = datetime.fromtimestamp(timestamp)
        item.data = json.loads(data)
        items.append(item)

    c.execute("SELECT count(*) FROM jobs %s" % cond, kwargs.values())
    pager.total, = c.fetchone()
    tran.commit()

    return items
示例#2
0
文件: jobs.py 项目: ondratu/morias
def admin_pages_del(req, pid):
    check_login(req, '/log_in?referer=/admin/jopbs')
    check_right(req, 'super')
    check_referer(req, '/admin/jobs')

    job = Job(pid=pid)
    job.delete(req)
    redirect(req, '/admin/jobs')
示例#3
0
def admin_attachments_images_thumb_check(req):
    check_login(req)
    match_right(req, [R_ADMIN, 'attachments_modify'])
    check_referer(req, '/admin/attachments')

    job = Job(path=req.uri)
    req.content_type = 'application/json'
    if job.get(req):
        req.status = state.HTTP_CREATED
        return json.dumps(job.data)
    return '{}'     # job not found, so it could be run again
示例#4
0
文件: jobs.py 项目: ondratu/morias
def admin_jobs(req):
    check_login(req)
    check_right(req, 'super')

    pager = Pager()
    pager.bind(req.args)

    rows = Job.list(req, pager)
    return generate_page(req, "admin/jobs.html", pager=pager, rows=rows)