Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
    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)
Beispiel #5
0
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())
Beispiel #6
0
    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)
Beispiel #7
0
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)
Beispiel #8
0
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)
Beispiel #10
0
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)
Beispiel #12
0
    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)
Beispiel #13
0
    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)
Beispiel #14
0
    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)
Beispiel #15
0
    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)
Beispiel #16
0
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)
Beispiel #17
0
	def get(self):
		email = self.request.get('email')
		user = UserPreferences.gql("WHERE email = :1", email).get()
		user.delete()
		self.redirect("/admin/")
Beispiel #18
0
    def get(self):
		allUsers = UserPreferences.all().order("-name")
		template_values = {
			'users': allUsers
		}
		self.response.write(renderTemplate('admin.html',template_values))
Beispiel #19
0
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())
Beispiel #20
0
    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)
Beispiel #21
0
 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)
Beispiel #22
0
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())
Beispiel #23
0
 def load(self):
     if self.user is None:
         return None
     else:
         return UserPreferences.get_by_user(self.user)
Beispiel #24
0
 def load(self):
     if self.user is None:
         return None
     else:
         return UserPreferences.get_by_user(self.user)
Beispiel #25
0
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)
Beispiel #26
0
	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/")