Newer
Older
Sandrine Ribeau
committed
from calendar import monthrange
from datetime import datetime
from cubicweb.web.views.urlrewrite import SimpleReqRewriter, rgx
class BlogReqRewriter(SimpleReqRewriter):
rules = [
(rgx('/blogentry/([a-z_]+)'),
dict(rql='Any X ORDERBY CD DESC WHERE X is BlogEntry, X creation_date CD, X created_by U, U login "%(user)s"' % {'user': r'\1'},
user = r'\1')),
(rgx('/blogentry/([a-z_]+)\.rss'),
dict(rql='Any X ORDERBY CD DESC LIMIT 20 WHERE X is BlogEntry, X creation_date CD, X created_by U, U login "%(user)s"' % {'user': r'\1'}, vid='rss')),
(rgx('/blogentries/([0-9]{4})'),
dict(rql='Any B ORDERBY CD DESC WHERE B is BlogEntry, B creation_date CD, '
'B creation_date >= "%(param)s-01-01", '
'B creation_date <= "%(param)s-12-31"' % {'param': r'\1'},
Sandrine Ribeau
committed
)),
(rgx('/blogentries/([0-9]{4})/([0-9]{2})'),
dict(rql='Any B, BD ORDERBY BD DESC '
'WHERE B is BlogEntry, B creation_date BD, '
'B creation_date >= "%(year)s/%(month)s/01", B creation_date <= "%(year)s/%(month)s/30"' % {'year': r'\1', 'month': r'\2'},
)),
(rgx('/blog/([0-9]+)/blogentries'),
dict(rql='Any B ORDERBY CD DESC WHERE B is BlogEntry, B creation_date CD, '
'B entry_of BL, BL eid %(eid)s' % {'eid': r'\1'},
)),
Sandrine Ribeau
committed
(rgx('/blog/([0-9]+)/blogentries/([0-9]{4})'),
dict(rql='Any B ORDERBY CD DESC WHERE B is BlogEntry, B creation_date CD, '
'B creation_date >= "%(param)s-01-01", '
'B creation_date <= "%(param)s-12-31", B entry_of BL, BL eid %(eid)s' % {'eid': r'\1', 'param': r'\2'},
Sandrine Ribeau
committed
)),
(rgx('/blog/([0-9]+)/blogentries/([0-9]{4})/([0-9]{2})'),
dict(rql='Any B, BD ORDERBY BD DESC '
'WHERE B is BlogEntry, B creation_date BD, B entry_of BL, BL eid %(eid)s, '
'B creation_date >= "%(year)s/%(month)s/01", B creation_date <= "%(year)s/%(month)s/30"' % {'eid': r'\1', 'year': r'\2', 'month': r'\3'},
)),
]