Advertisement
Guest User

Untitled

a guest
Feb 18th, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.83 KB | None | 0 0
  1. import os
  2. import sys
  3. from django.utils import simplejson
  4. from django.http import HttpResponse
  5. from google.appengine.api import users
  6. from google.appengine.ext import db
  7. from google.appengine.ext import webapp
  8. from google.appengine.ext.webapp.util import run_wsgi_app
  9. from google.appengine.ext.webapp import template
  10. from elementtree.ElementTree import *
  11. from elementtree.SimpleXMLWriter import *
  12.  
  13.  
  14.  
  15. class BlobStore(db.Model):
  16. resumeFile = db.BlobProperty(default="")
  17.  
  18. class ResStore(db.Model):
  19. username = db.UserProperty()
  20. resumeJSON = db.TextProperty(default="")
  21. creationDate = db.DateTimeProperty(auto_now_add=True)
  22.  
  23. class Login(webapp.RequestHandler):
  24. def get(self):
  25. url = ""
  26. url_linktext = ""
  27.  
  28. if users.get_current_user() is None:
  29. url = users.create_login_url('/newresume')
  30. url_linktext = 'Login'
  31. else:
  32. self.redirect('/newresume')
  33.  
  34. template_values = {
  35. 'url': url,
  36. 'url_linktext': url_linktext}
  37.  
  38. path = os.path.join(os.path.dirname(__file__), 'login.html')
  39. self.response.out.write(template.render(path, template_values))
  40.  
  41. class NewResume(webapp.RequestHandler):
  42. def get(self):
  43.  
  44. resSearch = db.GqlQuery("SELECT * FROM ResStore WHERE username = :1", users.get_current_user())
  45. userRes = resSearch.get()
  46.  
  47. if userRes is not None:
  48. self.redirect('/resume')
  49.  
  50. if users.get_current_user() is None:
  51. self.redirect('/')
  52.  
  53. template_values = {
  54. }
  55.  
  56. path = os.path.join(os.path.dirname(__file__), 'newresume.html')
  57. self.response.out.write(template.render(path, template_values))
  58.  
  59.  
  60. class AdminHome(webapp.RequestHandler):
  61. def get(self):
  62.  
  63. if users.get_current_user() is None:
  64. self.redirect('/')
  65.  
  66. if users.is_current_user_admin() is False:
  67. self.redirect('/resume')
  68.  
  69. getResume = db.GqlQuery("SELECT * FROM BlobStore")
  70.  
  71. Resumes = []
  72. for resumeBlob in getResume:
  73. Resume = {}
  74. Resume['blob'] = resumeBlob.resumeFile
  75. Resume['resKey'] = resumeBlob.key()
  76. Resume['indivName'] = fromstring(resumeBlob.resumeFile).findtext('.//PersonName/FormattedName')
  77. Resumes.append(Resume)
  78.  
  79. logout_url = users.create_logout_url('/')
  80. logout_linktext = 'Logout'
  81.  
  82. template_values = {
  83. 'Resumes' : Resumes,
  84. 'logout_url': logout_url,
  85. 'logout_linktext': logout_linktext
  86. }
  87.  
  88. path = os.path.join(os.path.dirname(__file__), 'adminhome.html')
  89. self.response.out.write(template.render(path, template_values))
  90.  
  91.  
  92. class UploadHandler(webapp.RequestHandler):
  93. def post(self):
  94.  
  95. resStore = ResStore()
  96. resStore.username = users.get_current_user()
  97. resStore.resumeJSON = self.request.get('Resume_JSON')
  98. resStore.put()
  99. self.redirect('/resume')
  100.  
  101.  
  102.  
  103.  
  104. class ResumePage(webapp.RequestHandler):
  105.  
  106. def get(self):
  107.  
  108. if users.get_current_user() is None:
  109. self.redirect('/')
  110.  
  111. if users.is_current_user_admin() is True:
  112. self.redirect('/adminhome')
  113.  
  114. resSearch = db.GqlQuery("SELECT * FROM ResStore WHERE username = :1", users.get_current_user())
  115. userRes = resSearch.get()
  116.  
  117. resumeJson = userRes.resumeJSON
  118.  
  119. data = simplejson.loads(resumeJson)
  120.  
  121. firstName = data['p_firstname']
  122. lastName = data['p_lastname']
  123. telephonenum = data['p_street']
  124. execsum = data['objective']
  125. emailadd = data['p_email']
  126. streetadd = data['p_street']
  127. cityadd = data['p_city']
  128. stateadd = data['p_state']
  129. zipadd = data['p_zip']
  130.  
  131. education =[]
  132. eduInfo = {}
  133. eduInfo['eduname'] = data['school_0']
  134. eduInfo['eduweb'] = data['schoolWeb_0']
  135. eduInfo['educity'] = data['schoolCity_0']
  136. eduInfo['edustate'] = data['schoolState_0']
  137. eduInfo['edutype'] = data['degreeType_0']
  138. eduInfo['edumajor'] = data['degreeMajor_0']
  139. eduInfo['eduyear'] = data['yearComplete_0']
  140. education.append(eduInfo)
  141.  
  142. employers = []
  143. employerInfo = {}
  144. employerInfo['emplname'] = data['company_0']
  145. employerInfo['webadress'] = data['workWeb_0']
  146. employerInfo['emplcity'] = data['workCity_0']
  147. employerInfo['emplstate'] = data['workState_0']
  148. employerInfo['emplstart'] = data['workStart_0']
  149. employerInfo['emplend'] = data['workEnd_0']
  150. employerInfo['emplpos'] = data['position_0']
  151. employerInfo['Resp1'] = data['resp1_0']
  152. employerInfo['Resp2'] = data['resp2_0']
  153. employerInfo['Resp3'] = data['resp3_0']
  154. employerInfo['Resp4'] = data['resp4_0']
  155. employerInfo['Resp5'] = data['resp5_0']
  156. for companyItemKey in [x for x in data.keys() if x.startswith('company_')]:
  157. employerInfo[companyItemKey] = data[companyItemKey]
  158. employers.append(employerInfo)
  159.  
  160. certs = []
  161. certInfo = {}
  162. certInfo['certname'] = data['certName_0']
  163. certInfo['certdate'] = data['validFrom_0']
  164. certInfo['certexp'] = data['validUntil_0']
  165. for certItemKey in [x for x in data.keys() if x.startswith('certName_')]:
  166. certInfo['certname'] = data['certName_1']
  167. certs.append(certInfo)
  168.  
  169. skills = []
  170. skillsInfo = {}
  171. skillsInfo['skillname'] = data['skillName_0']
  172. skillsInfo['skillevid'] = data['skillDesc_0']
  173. for skillItemKey in [x for x in data.keys() if x.startswith('skillName')]:
  174. skillsInfo['skillname'] = data['skillName_3']
  175. skills.append(skillsInfo)
  176.  
  177. logout_url = users.create_logout_url('/')
  178. logout_linktext = 'Logout'
  179.  
  180.  
  181. template_values = {
  182. 'logout_url': logout_url,
  183. 'logout_linktext': logout_linktext,
  184. 'fname': firstName,
  185. 'lname': lastName,
  186. 'telephone': telephonenum,
  187. 'execsummary': execsum,
  188. 'email' : emailadd,
  189. 'street' : streetadd,
  190. 'state' : stateadd,
  191. 'city' : cityadd,
  192. 'zip' : zipadd,
  193. 'employers' : employers,
  194. 'education' : education,
  195. 'certs' : certs,
  196. 'skills' : skills,
  197. }
  198.  
  199. path = os.path.join(os.path.dirname(__file__), 'resume.html')
  200. self.response.out.write(template.render(path, template_values))
  201.  
  202. application = webapp.WSGIApplication([('/', Login),
  203. ('/newresume', NewResume),
  204. ('/adminhome', AdminHome),
  205. ('/upload2', UploadHandler),
  206. ('/resume', ResumePage)
  207. ], debug=True)
  208.  
  209. def main():
  210. run_wsgi_app(application)
  211.  
  212. if __name__ == "__main__":
  213. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement