def test_save_twice(self): UserPreferences.save(self.user, u'김경수') preferences = UserPreferences.save(self.user, u'나부군') self.assertEqual(1, UserPreferences.query().count()) self.assertEqual(self.user, preferences.user) self.assertEqual(u'나부군', preferences.userpage_title)
def test_get_by_user(self): prefs = UserPreferences.get_by_user(self.user) self.assertEqual(None, prefs.userpage_title) prefs.userpage_title = u'김경수' prefs.put() self.assertEqual(u'김경수', UserPreferences.get_by_user(self.user).userpage_title)
def post_preferences(self, user): if user is None: self.response.status = 403 self.response.headers['Content-Type'] = 'text/html; charset=utf-8' html = template(self.request, '403.html', {'page': { 'absolute_url': '/sp.preferences', 'title': 'User preferences', }}) set_response_body(self.response, html, False) return userpage_title = self.request.POST['userpage_title'] UserPreferences.save(user, userpage_title) self.response.headers['X-Message'] = 'Successfully updated.' self.get_preferences(user, False)
def change_preferences(request): user = request.user title = "Change preferences" prefs = UserPreferences.objects.get(user=user) user_paid = prefs.paid free_seats = UserPreferences.get_free_seats() or prefs.bus try: definition = ZosiaDefinition.objects.get(active_definition=True) except Exception: raise Http404 user_opening_hour = definition.rooming_start - timedelta(minutes=prefs.minutes_early) # for sure to change price_overnight = definition.price_overnight price_overnight_breakfast = definition.price_overnight_breakfast price_overnight_dinner = definition.price_overnight_dinner price_overnight_full = definition.price_overnight_full price_organization = definition.price_organization price_transport = definition.price_transport account_number = definition.account_number account_data_1 = definition.account_data_1 account_data_2 = definition.account_data_2 account_data_3 = definition.account_data_3 year = definition.zosia_start.year date_1, date_2, date_3, date_4 = definition.zosia_start, (definition.zosia_start + timedelta(days=1)),\ (definition.zosia_start + timedelta(days=2)),\ (definition.zosia_start + timedelta(days=3)) city = definition.city if request.POST: # raise Http404 # the most nooby way of blocking evar (dreamer_) # bug with settings not updateble # after user paid if user_paid: # remove or True after zosia post = request.POST rewritten_post = {} for k in post.keys(): rewritten_post[k] = post[k] for k in [ 'day_1', 'day_2', 'day_3', 'breakfast_2', 'breakfast_3', 'breakfast_4', 'dinner_1', 'dinner_3', 'dinner_2', 'bus', 'vegetarian' ]: if prefs.__dict__[k]: rewritten_post[k] = u'on' elif k in rewritten_post: del rewritten_post[k] rewritten_post['shirt_type'] = prefs.__dict__['shirt_type'] rewritten_post['shirt_size'] = prefs.__dict__['shirt_size'] form = ChangePrefsForm(rewritten_post, instance=prefs) else: form = ChangePrefsForm(request.POST, instance=prefs) if form.is_valid(): # save everything prefs = form.save() payment = count_payment(user) else: form = ChangePrefsForm(instance=prefs) payment = count_payment(user) user_wants_bus = prefs.bus return render_to_response('change_preferences.html', locals())
def post_preferences(self, user): if user is None: self.response.status = 403 self.response.headers['Content-Type'] = 'text/html; charset=utf-8' html = template( self.request, '403.html', { 'page': { 'absolute_url': '/sp.preferences', 'title': 'User preferences', } }) set_response_body(self.response, html, False) return userpage_title = self.request.POST['userpage_title'] UserPreferences.save(user, userpage_title) self.response.headers['X-Message'] = 'Successfully updated.' self.get_preferences(user, False)
def userpage_link(user): if user is None: return '<span class="user">Anonymous</span>' preferences = UserPreferences.get_by_user(user) if preferences is None: return '<span class="user email">%s</span>' % user.email() elif preferences.userpage_title is None or len(preferences.userpage_title.strip()) == 0: return '<span class="user email">%s</span>' % user.email() path = to_abs_path(preferences.userpage_title) return '<a href="%s" class="user userpage wikilink">%s</a>' % (path, preferences.userpage_title)
def template(req, path, data): config = WikiPage.get_config() user = get_cur_user() data['is_local'] = req.host_url.startswith('http://localhost') data['is_mobile'] = is_mobile(req) data['user'] = user data['preferences'] = UserPreferences.get_by_user(user) if user is not None else None data['users'] = users data['cur_url'] = req.url data['config'] = config data['app'] = {'version': main.VERSION} return JINJA.get_template('templates/%s' % path).render(data)
def template(req, path, data): config = WikiPage.get_config() user = get_cur_user() data['is_local'] = req.host_url.startswith('http://localhost') data['is_mobile'] = is_mobile(req) data['user'] = user data['preferences'] = UserPreferences.get_by_user( user) if user is not None else None data['users'] = users data['cur_url'] = req.url data['config'] = config data['app'] = {'version': main.VERSION} return JINJA.get_template('templates/%s' % path).render(data)
def userpage_link(user): if user is None: return '<span class="user">Anonymous</span>' else: email = user.email() preferences = UserPreferences.get_by_email(email) if preferences is None: return '<span class="user email">%s</span>' % email elif preferences.userpage_title is None or len( preferences.userpage_title.strip()) == 0: return '<span class="user email">%s</span>' % email else: path = to_path(preferences.userpage_title) return '<a href="%s" class="user userpage wikilink">%s</a>' % ( path, preferences.userpage_title)
def userpage_link(user): if user is None: return '<span class="user" data-userpage="" data-email="">Anonymous</span>' preferences = UserPreferences.get_by_user(user) if preferences is None: return '<span class="user email" data-userpage="" data-email="">%s</span>' % user.email( ) elif preferences.userpage_title is None or len( preferences.userpage_title.strip()) == 0: return '<span class="user email" data-userpage="" data-email="%s">%s</span>' % ( user.email(), user.email()) path = to_abs_path(preferences.userpage_title) return '<a href="%s" class="user userpage wikilink" data-userpage="%s" data-email="%s">%s</a>' % ( path, preferences.userpage_title, user.email(), preferences.userpage_title)
def post(self): if (self.req.user is None) or (self.req.user.is_anonymous()): self.res.status = 403 return TemplateRepresentation({ 'page': { 'absolute_url': '/sp.preferences', 'title': 'User preferences', }, 'description': 'You don\'t have a permission', 'errors': [], }, self.req, 'error.html').respond(self.res, False) prefs = UserPreferences.savePrefs(self.req.user, self.req.POST['userpage_title']) self.res['X-Message'] = 'Successfully updated.' representation = self.get_representation(prefs) return representation.respond(self.res, False)
def post(self): if self.user is None: self.res.status = 403 TemplateRepresentation( { "page": {"absolute_url": "/sp.preferences", "title": "User preferences"}, "description": "You don't have a permission", "errors": [], }, self.req, "error.html", ).respond(self.res, False) return prefs = UserPreferences.save(self.user, self.req.POST["userpage_title"]) self.res.headers["X-Message"] = "Successfully updated." representation = self.get_representation(prefs) representation.respond(self.res, False)
def get_preferences(self, user, head): if user is None: self.response.status = 403 self.response.headers['Content-Type'] = 'text/html; charset=utf-8' html = template(self.request, '403.html', { 'page': { 'absolute_url': '/sp.preferences', 'title': 'User preferences', } }) set_response_body(self.response, html, False) return preferences = UserPreferences.get_by_email(user.email()) rendered = template(self.request, 'wiki_sp_preferences.html', { 'preferences': preferences, 'message': self.response.headers.get('X-Message', None), }) self.response.headers['Content-Type'] = 'text/html; charset=utf-8' set_response_body(self.response, rendered, head)
def get_preferences(self, user, head): if user is None: self.response.status = 403 self.response.headers['Content-Type'] = 'text/html; charset=utf-8' html = template( self.request, '403.html', { 'page': { 'absolute_url': '/sp.preferences', 'title': 'User preferences', } }) set_response_body(self.response, html, False) return preferences = UserPreferences.get_by_email(user.email()) rendered = template( self.request, 'wiki_sp_preferences.html', { 'preferences': preferences, 'message': self.response.headers.get('X-Message', None), }) self.response.headers['Content-Type'] = 'text/html; charset=utf-8' set_response_body(self.response, rendered, head)
def list_genders(): genders_all = UserPreferences.query(projection=["gender"], distinct=True) genders = [] for gender in genders_all: genders.append(gender.gender[0]) return render_template('list_genders.html', genders=genders)
def get(self): email = self.request.get('email') user = UserPreferences.gql("WHERE email = :1", email).get() user.delete() self.redirect("/admin/")
def get(self): allUsers = UserPreferences.all().order("-name") template_values = { 'users': allUsers } self.response.write(renderTemplate('admin.html',template_values))
def register(request): if is_registration_disabled(): raise Http404 user = request.user title = "Registration" # login_form = LoginForm() #if user.is_authenticated: # return HttpResponseRedirect('/blog/') if request.method == 'POST': form = RegisterForm(request.POST) if form.is_valid(): email = form.cleaned_data['email'] password = form.cleaned_data['password'] username = form.cleaned_data['email'] try: user = User.objects.get(email=email) return HttpResponseRedirect('/password_reset/') except User.DoesNotExist: user = User.objects.create_user(email, email, password) user.first_name = form.cleaned_data['name'] user.last_name = form.cleaned_data['surname'] user.is_active = False # send activation mail t = loader.get_template("activation_email.txt") c = { 'site_name': RequestSite(request), 'uid': int_to_base36(user.id), 'token': token_generator.make_token(user), } send_mail( _('activation_mail_title'), t.render(Context(c)), '*****@*****.**', [ user.email ], fail_silently=True ) user.save() #saving organization try: org1 = form.cleaned_data['organization_1'] org2 = form.cleaned_data['organization_2'] if org1 == 'new': org = Organization(name=org2, accepted=False) org.save() else: org = Organization.objects.get(id=org1) except Exception: org = Organization("fail",accepted=False) org.save() prefs = UserPreferences(user=user) prefs.org = org prefs.day_1 = form.cleaned_data['day_1'] prefs.day_2 = form.cleaned_data['day_2'] prefs.day_3 = form.cleaned_data['day_3'] prefs.breakfast_2 = form.cleaned_data['breakfast_2'] prefs.breakfast_3 = form.cleaned_data['breakfast_3'] prefs.breakfast_4 = form.cleaned_data['breakfast_4'] prefs.dinner_1 = form.cleaned_data['dinner_1'] prefs.dinner_2 = form.cleaned_data['dinner_2'] prefs.dinner_3 = form.cleaned_data['dinner_3'] prefs.bus = form.cleaned_data['bus'] prefs.vegetarian = form.cleaned_data['vegetarian'] prefs.shirt_size = form.cleaned_data['shirt_size'] prefs.shirt_type = form.cleaned_data['shirt_type'] prefs.save() return HttpResponseRedirect('/register/thanks/') else: form = RegisterForm() return render_to_response('register_form.html', locals())
def test_get_by_email(self): self.assertEquals(None, UserPreferences.get_by_email('*****@*****.**')) UserPreferences.save(self.user, u'김경수') self.assertEquals(u'김경수', UserPreferences.get_by_email('*****@*****.**').userpage_title)
def load(self): if (self.req.user is None) or (self.req.user.is_anonymous()): return None else: return UserPreferences.get_by_user(self.req.user)
def register(request): if is_registration_disabled(): raise Http404 user = request.user title = "Registration" try: definition = ZosiaDefinition.objects.get(active_definition=True) except Exception: raise Http404 price_overnight = definition.price_overnight price_overnight_breakfast = definition.price_overnight_breakfast price_overnight_dinner = definition.price_overnight_dinner price_overnight_full = definition.price_overnight_full price_organization = definition.price_organization price_transport = definition.price_transport date_1, date_2, date_3, date_4 = definition.zosia_start, (definition.zosia_start + timedelta(days=1)),\ (definition.zosia_start + timedelta(days=2)),\ (definition.zosia_start + timedelta(days=3)) city = definition.city # login_form = LoginForm() #if user.is_authenticated: # return HttpResponseRedirect('/blog/') free_seats = UserPreferences.get_free_seats() if request.method == 'POST': form = RegisterForm(request.POST) if form.is_valid(): email = form.cleaned_data['email'] password = form.cleaned_data['password'] username = form.cleaned_data['email'] try: user = User.objects.get(email=email) return HttpResponseRedirect('/password_reset/') except User.DoesNotExist: user = User.objects.create_user(email, email, password) user.first_name = form.cleaned_data['name'] user.last_name = form.cleaned_data['surname'] user.is_active = False # send activation mail t = loader.get_template("activation_email.txt") try: definition = ZosiaDefinition.objects.get(active_definition=True) except Exception: raise Http404 c = { 'site_name': RequestSite(request), 'uid': int_to_base36(user.id), 'token': token_generator.make_token(user), 'payment_deadline': definition.payment_deadline, } send_mail( _('activation_mail_title'), t.render(Context(c)), '*****@*****.**', [ user.email ], fail_silently=True ) user.save() #saving organization try: org1 = form.cleaned_data['organization_1'] org2 = form.cleaned_data['organization_2'] if org1 == 'new': org = Organization(name=org2, accepted=False) org.save() else: org = Organization.objects.get(id=org1) except Exception: org = Organization("fail",accepted=False) org.save() prefs = UserPreferences(user=user) prefs.org = org prefs.day_1 = form.cleaned_data['day_1'] prefs.day_2 = form.cleaned_data['day_2'] prefs.day_3 = form.cleaned_data['day_3'] prefs.breakfast_2 = form.cleaned_data['breakfast_2'] prefs.breakfast_3 = form.cleaned_data['breakfast_3'] prefs.breakfast_4 = form.cleaned_data['breakfast_4'] prefs.dinner_1 = form.cleaned_data['dinner_1'] prefs.dinner_2 = form.cleaned_data['dinner_2'] prefs.dinner_3 = form.cleaned_data['dinner_3'] if not free_seats: prefs.bus = False else: prefs.bus = form.cleaned_data['bus'] prefs.vegetarian = form.cleaned_data['vegetarian'] prefs.shirt_size = form.cleaned_data['shirt_size'] prefs.shirt_type = form.cleaned_data['shirt_type'] prefs.minutes_early = 0 prefs.save() return HttpResponseRedirect('/register/thanks/') else: form = RegisterForm() return render_to_response('register_form.html', locals())
def load(self): if self.user is None: return None else: return UserPreferences.get_by_user(self.user)
def list_interests(): interests_all = UserPreferences.query(projection=["interests"], distinct=True) interests = [] for interest in interests_all: interests.append(interest.interests[0]) return render_template('list_interests.html', interests=interests)
def post(self): email = self.request.get('email') name = self.request.get('name') newUser = UserPreferences(key_name=email, email=email, name=name) newUser.put() self.redirect("/admin/")