-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcomment.py
81 lines (60 loc) · 2.33 KB
/
comment.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# coding=utf-8
import webapp2
from google.appengine.api import users
from shared.base_handler import BaseHandler
from shared.pagelet_processor import *
from model import *
from service import *
import nodes
class CommentListHandler(BaseHandler):
def get(self, entity_key_string):
context = {
'entity_key_string': entity_key_string,
'render_comment_list': self.render_comment_list
}
self.render('comment_list_page.html', context)
def render_comment_list(self, entity_key_string):
meta = {
'entity_key_string': entity_key_string
}
comment_list = nodes.ZNodeCommentList(self, meta = meta)
# No need to set as root node.
#comment_list.set_root_node()
return comment_list.render()
class CommentDeleteHandler(BaseHandler):
def post(self, comment_key_string):
CommentService().delete_comment(comment_key_string)
type_string = self.request.get('client_type')
client_id = self.request.get('client_id')
pagelet = Pagelet(None, type_string = type_string, client_id = client_id, markup = '')
pagelet.set_render_type(PAGELET_RENDER_TYPE.UN_RENDER)
response = self.get_ajax_response()
response.add_pagelet(pagelet)
self.output_ajax_response(response)
# self.redirect(self.uri_for('home'))
def get(self, comment_key_string):
pass
# return self.post(comment_key)
class AddCommentHandler(BaseHandler):
def post(self, entity_key_string):
content = self.request.get('content')
comments_wrap = self.request.get('comments_wrap')
if not content:
#TODO: Handle error report, when in ajax mode.
# self.redirect(self.uri_for('home'))
return
account = self.get_current_account()
new_comment = CommentService().add_comment(account, entity_key_string, content)
meta = {
'comment_key_string':entity_key_string
}
commentNode = nodes.ZNodeComment(self, meta)
commentNode.set_view_data_item('comment', new_comment)
# return new comment pagelet to client side.
pagelet = Pagelet(commentNode)
pagelet.set_ref_element(comments_wrap) \
.set_render_position(PAGELET_RENDER_POSITION.APPEND)
response = self.get_ajax_response()
response.add_pagelet(pagelet)
self.output_ajax_response(response)
# self.redirect(self.uri_for('home'))