-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreate_worker.py
More file actions
117 lines (95 loc) · 3.95 KB
/
create_worker.py
File metadata and controls
117 lines (95 loc) · 3.95 KB
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
from google.appengine.api import users
from google.appengine.ext import db, webapp
from google.appengine.ext.webapp import template
import bene_query
import bene_util
import entities
import os
import urllib
"""
Creates a form to create a Worker
"""
class CreateWorkerPage(webapp.RequestHandler):
def get(self):
user = users.get_current_user()
if not user: # need to sign in
self.redirect('/?signin=True')
return
if bene_query.getCurrentUser().isConsumer: # consumers can't access this
self.redirect('/')
return
_producer = bene_query.getCurrentProducer()
if _producer == None: # no producer signed up, so ask to sign up
self.redirect('/')
return
if not _producer.verified: # if producer is not verified
self.redirect('/producerhome?%s' % urllib.urlencode({'verify': True}))
return
template_values = bene_util.initTemplate(self.request.uri)
template_values['factories'] = _producer.getFactories()
path = os.path.join(os.path.dirname(__file__), 'createworker.html')
self.response.out.write(template.render(path, template_values))
return
'''
Exception handler
'''
def handle_exception(self, exception, debug_mode):
if debug_mode:
super(CreateWorkerPage, self).handle_exception(exception, debug_mode)
else:
template_values = bene_util.initTemplate(self.request.uri)
path = os.path.join(os.path.dirname(__file__), 'not_found.html')
self.response.out.write(template.render(path, template_values))
return
"""
Puts a worker in the database
"""
class StoreWorkerPage(webapp.RequestHandler):
def post(self):
user = users.get_current_user()
if not user: # need to sign in
self.redirect('/?signin=True')
return
if bene_query.getCurrentUser().isConsumer: # consumers can't access this
self.redirect('/')
return
_producer = bene_query.getCurrentProducer()
if _producer == None: # no producer signed up, so ask to sign up
self.redirect('/')
return
if not _producer.verified: # if producer is not verified
self.redirect('/producerhome?%s' % urllib.urlencode({'verify': True}))
return
_name = self.request.get('name')
_factory = self.request.get('factory')
_picture = self.request.get('picture')
_profile = self.request.get('profile')
_unique = self.request.get('unique')
w = entities.Worker(name=_name,
profile=_profile,
unique=_unique,
owner=user)
w.addProducer(_producer)
if _factory:
w.addFactory(db.get(_factory))
w.addPicture(_picture)
if bene_util.doesWorkerExist(w): # already exists
self.redirect('/createworker?%s' % urllib.urlencode({'repeat': True}))
return
w.put()
if self.request.get('more'): # want to add more
self.redirect('/createworker?%s' % urllib.urlencode({'added': True}))
return
# otherwise redirect to worker page
self.redirect('/viewworker?%s' % urllib.urlencode({'id' : w.key()}))
'''
Exception handler
'''
def handle_exception(self, exception, debug_mode):
if debug_mode:
super(StoreWorkerPage, self).handle_exception(exception, debug_mode)
else:
template_values = bene_util.initTemplate(self.request.uri)
path = os.path.join(os.path.dirname(__file__), 'not_found.html')
self.response.out.write(template.render(path, template_values))
return