Browse Source

Admin handling of sources

master
Chris Smith 14 years ago
parent
commit
69ecfa8d56
1 changed files with 33 additions and 2 deletions
  1. 33
    2
      src/helloworld.py

+ 33
- 2
src/helloworld.py View File

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

Loading…
Cancel
Save