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
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()