diff options
Diffstat (limited to 'quoins/controllers.py')
-rw-r--r-- | quoins/controllers.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/quoins/controllers.py b/quoins/controllers.py index 541d90b..e419d40 100644 --- a/quoins/controllers.py +++ b/quoins/controllers.py | |||
@@ -318,6 +318,8 @@ def post_paginate(start, posts, size): | |||
318 | prev = prev, | 318 | prev = prev, |
319 | next = next) | 319 | next = next) |
320 | 320 | ||
321 | ID_RE = re.compile(r'.*?/author/([^/]*)') | ||
322 | |||
321 | class BlogController(TGController): | 323 | class BlogController(TGController): |
322 | feed = Feed() | 324 | feed = Feed() |
323 | pingback = Pingback() | 325 | pingback = Pingback() |
@@ -325,12 +327,17 @@ class BlogController(TGController): | |||
325 | def __init__(self, *args, **kw): | 327 | def __init__(self, *args, **kw): |
326 | self.path = kw.pop('path', '/') | 328 | self.path = kw.pop('path', '/') |
327 | self.post_paginate = kw.pop('paginate', 5) | 329 | self.post_paginate = kw.pop('paginate', 5) |
328 | get_name_from_id = kw.pop('get_name_from_id', lambda x: x) | 330 | get_name_from_id = kw.pop('get_name_from_id', self.get_username_from_openid) |
329 | self.openid = openid_controllers.OpenIDController(path=self.path+'/openid/', | 331 | self.openid = openid_controllers.OpenIDController(path=os.path.join(self.path, 'openid/'), |
332 | quoins=self, | ||
330 | get_name_from_id = get_name_from_id) | 333 | get_name_from_id = get_name_from_id) |
331 | self.feed.blog_controller = self | 334 | self.feed.blog_controller = self |
332 | super(BlogController, self).__init__(*args, **kw) | 335 | super(BlogController, self).__init__(*args, **kw) |
333 | 336 | ||
337 | def get_username_from_openid(self, id): | ||
338 | m = ID_RE.match(id) | ||
339 | return m.group(1) | ||
340 | |||
334 | def url(self, obj=None): | 341 | def url(self, obj=None): |
335 | if obj is None: | 342 | if obj is None: |
336 | u = tg.url(self.path) | 343 | u = tg.url(self.path) |
@@ -506,7 +513,7 @@ Comment: | |||
506 | post = post) | 513 | post = post) |
507 | 514 | ||
508 | @expose(template="genshi:quoinstemplates.new_comment") | 515 | @expose(template="genshi:quoinstemplates.new_comment") |
509 | def new_comment(self, id): | 516 | def new_comment(self, id, **kw): |
510 | post = DBSession.query(Post).get(id) | 517 | post = DBSession.query(Post).get(id) |
511 | if not post.allow_comments: | 518 | if not post.allow_comments: |
512 | flash('This post does not allow comments.') | 519 | flash('This post does not allow comments.') |
@@ -625,6 +632,7 @@ Comment: | |||
625 | c.approved = True | 632 | c.approved = True |
626 | c.body = body | 633 | c.body = body |
627 | c.url = url | 634 | c.url = url |
635 | c.openid = url | ||
628 | c.name = name | 636 | c.name = name |
629 | flash('Your comment has been posted.') | 637 | flash('Your comment has been posted.') |
630 | self.send_comment_email(c) | 638 | self.send_comment_email(c) |