PageRenderTime 23ms CodeModel.GetById 8ms RepoModel.GetById 1ms app.codeStats 0ms

/iGoOut/admin.py

http://igoout.googlecode.com/
Python | 62 lines | 49 code | 13 blank | 0 comment | 4 complexity | f05ffb7b3f893d30a3441474df687527 MD5 | raw file
  1. from db_model import Person, Site, Plan
  2. from google.appengine.ext import webapp
  3. class Admin(webapp.RequestHandler):
  4. def getPersonNames(self):
  5. names = []
  6. for person in Person.all():
  7. names.append(person.name)
  8. return names
  9. def getPlans(self):
  10. plans = []
  11. for plan in Plan.all():
  12. plans.append("person: %s, site: %s, date: %s" %
  13. (plan.person.name, plan.site.name, plan.date))
  14. return plans
  15. def get(self):
  16. self.response.out.write("People = %s" % self.getPersonNames())
  17. self.response.out.write("<br>")
  18. self.response.out.write("Plans = %s" % self.getPlans())
  19. from google.appengine.ext import webapp
  20. from google.appengine.api import users
  21. class AdminServer(webapp.RequestHandler):
  22. def get(self):
  23. if not users.GetCurrentUser():
  24. loginUrl = users.CreateLoginURL(self.request.uri)
  25. self.response.out.write('<a href="%s">Login</a>' % loginUrl)
  26. return
  27. if not users.IsCurrentUserAdmin():
  28. self.response.out.write('You must be an admin to view this page.')
  29. return
  30. self._handleRequest()
  31. def _handleRequest(self):
  32. """Invokes methods from the Admin class based on the 'action' parameter"""
  33. admin = Admin()
  34. action = self.request.get('action')
  35. if action == 'init':
  36. admin.initGifts()
  37. admin.initGiftTransactions()
  38. msg = "Gifts have been initialized, gift transactions have been cleared."
  39. self.response.out.write(msg)
  40. elif action == 'list':
  41. self.response.out.write("Gifts = %s" % admin.getGiftNames())
  42. self.response.out.write("<br>")
  43. self.response.out.write("Gift Transactions = %s" % admin.getGiftTransactions())
  44. else:
  45. html = []
  46. html.append('<a href="/admin?action=init">Initialize datastore</a><br>')
  47. html.append('<a href="/admin?action=list">List all data in datastore</a>')
  48. self.response.out.write(''.join(html))