Esempio n. 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(DictCursor)
    c.execute("""
        SELECT page_id, author_id, name, title, locale, editor_rights, format
            FROM page_files %s
                ORDER BY %s %s LIMIT %%s, %%s
        """ % (cond, pager.order, pager.sort),
              tuple(kwargs.values()) + (pager.offset, pager.limit))
    items = []
    for row in iter(c.fetchone, None):
        page = Page()
        page.from_row(row)
        page.get_modify(req)
        items.append(page)
    # endfow

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

    return items
Esempio n. 2
0
def regenerate_all(req):
    tran = req.db.transaction(req.log_info)
    c = tran.cursor()
    c.execute("""
        SELECT page_id, author_id, name, title, locale, format
        FROM page_files
        """)
    for row in iter(c.fetchone, None):
        page = Page()
        page.from_row(row)
        page.regenerate(req)
    tran.commit()