|
@@ -62,7 +62,37 @@ class MainPage(webapp.RequestHandler):
|
62
|
62
|
|
63
|
63
|
def show_admin_form(self):
|
64
|
64
|
self.response.out.write("""
|
65
|
|
- ADMIN!""")
|
|
65
|
+ <h1>Sources</h1>
|
|
66
|
+ <h2>Add</h2>
|
|
67
|
+ <form action="/admin/addsource" method="post">
|
|
68
|
+ <label>Name: <input type="text" name="name"/></label>
|
|
69
|
+ <label>URL: <input type="text" name="url"/></label>
|
|
70
|
+ <input type="submit" value="Add"/>
|
|
71
|
+ </form>
|
|
72
|
+ <h2>View</h2>
|
|
73
|
+ <table>
|
|
74
|
+ <tr><th>Source</th><th>URL</th></tr>
|
|
75
|
+ """)
|
|
76
|
+
|
|
77
|
+ for source in AchievementSource.all():
|
|
78
|
+ self.response.out.write("<tr><td>");
|
|
79
|
+ self.response.out.write(cgi.escape(source.name))
|
|
80
|
+ self.response.out.write("</td><td>");
|
|
81
|
+ self.response.out.write(cgi.escape(source.url))
|
|
82
|
+ self.response.out.write("</td></tr>");
|
|
83
|
+
|
|
84
|
+class AddSourcePage(webapp.RequestHandler):
|
|
85
|
+ def post(self):
|
|
86
|
+
|
|
87
|
+ if not users.is_current_user_admin():
|
|
88
|
+ self.error(403)
|
|
89
|
+ return
|
|
90
|
+
|
|
91
|
+ source = AchievementSource(name=self.request.get('name'),
|
|
92
|
+ url=self.request.get('url'))
|
|
93
|
+ source.put()
|
|
94
|
+
|
|
95
|
+ self.redirect('/')
|
66
|
96
|
|
67
|
97
|
|
68
|
98
|
class Guestbook(webapp.RequestHandler):
|
|
@@ -72,7 +102,8 @@ class Guestbook(webapp.RequestHandler):
|
72
|
102
|
self.response.out.write('</pre></body></html>')
|
73
|
103
|
|
74
|
104
|
application = webapp.WSGIApplication([('/', MainPage),
|
75
|
|
- ('/sign', Guestbook)],
|
|
105
|
+ ('/sign', Guestbook),
|
|
106
|
+ ('/admin/addsource', AddSourcePage)],
|
76
|
107
|
debug=True)
|
77
|
108
|
|
78
|
109
|
def main():
|