Exemple #1
0
 def test_validator_translation(self):
     form = self.F2(a='hellobye')
     self.assertFalse(form.validate())
     self.assertEqual(form.a.errors[0], 'field cannot be longer than 5 characters.')
     form = self.F(a='hellobye')
     self.assertFalse(form.validate())
     self.assertEqual(form.a.errors[0], 'Field cannot be longer than 5 characters.')
Exemple #2
0
    def test_blog_form_saving(self):
        form = BlogForm(FakePost({"title": "new blog"}))
        self.assertTrue(form.validate())

        blog = Blog()
        form.populate_obj(blog)
        self.assertEqual(blog.title, "new blog")

        # no new blogs were created
        self.assertEqual(Blog.select().count(), 2)

        # explicitly calling save will create the new blog
        blog.save()

        # make sure we created a new blog
        self.assertEqual(Blog.select().count(), 3)

        form = BlogForm(FakePost({"title": "a edited"}), obj=self.blog_a)
        self.assertTrue(form.validate())
        form.populate_obj(self.blog_a)

        self.assertEqual(self.blog_a.title, "a edited")
        self.blog_a.save()

        # make sure no new blogs were created
        self.assertEqual(Blog.select().count(), 3)

        # grab it from the database
        a = Blog.get(title="a edited")
Exemple #3
0
    def test_null_form_saving(self):
        form = NullFieldsModelForm(FakePost({"c": ""}))
        self.assertTrue(form.validate())

        nfm = NullFieldsModel()
        form.populate_obj(nfm)
        self.assertEqual(nfm.c, None)

        # this is a bit odd, but since checkboxes do not send a value if they
        # are unchecked this will evaluate to false (and passing in an empty
        # string evalutes to true) since the wtforms booleanfield blindly coerces
        # to bool
        self.assertEqual(nfm.b, False)

        form = NullFieldsModelForm(FakePost({"c": "", "b": ""}))
        self.assertTrue(form.validate())

        nfm = NullFieldsModel()
        form.populate_obj(nfm)
        self.assertEqual(nfm.c, None)

        # again, this is for the purposes of documenting behavior -- nullable
        # booleanfields won't work without a custom field class
        # Passing an empty string will evalute to False
        # https://bitbucket.org/simplecodes/wtforms/commits/35c5f7182b7f0c62a4d4db7a1ec8719779b4b018
        self.assertEqual(nfm.b, False)

        form = NullFieldsModelForm(FakePost({"c": "test"}))
        self.assertTrue(form.validate())

        nfm = NullFieldsModel()
        form.populate_obj(nfm)
        self.assertEqual(nfm.c, "test")
Exemple #4
0
    def test_hidden_field_none(self):
        class TestNullEntryForm(WTForm):
            blog = HiddenQueryField(query=Blog.select())

        form = TestNullEntryForm(FakePost({"blog": ""}))

        # check the htmlz for the form's hidden field
        html = form._fields["blog"]()
        self.assertEqual(html, u'<input id="blog" name="blog" type="hidden" value="">')

        self.assertTrue(form.validate())
        self.assertEqual(form.blog.data, None)

        entry = NullEntry()
        form.populate_obj(entry)

        # ensure entry count hasn't changed
        self.assertEqual(NullEntry.select().count(), 0)

        entry.save()
        self.assertEqual(NullEntry.select().count(), 1)

        # make sure the blog object came through ok
        self.assertEqual(entry.blog, None)

        # edit entry a1
        form = TestNullEntryForm(FakePost({"blog": None}), obj=self.entry_a1)

        # check the htmlz for the form's hidden field
        html = form._fields["blog"]()
        self.assertEqual(html, u'<input id="blog" name="blog" type="hidden" value="">')

        self.assertTrue(form.validate())
Exemple #5
0
    def test_hidden_field(self):
        class TestEntryForm(WTForm):
            blog = HiddenQueryField(query=Blog.select())
            title = wtfields.TextField()
            content = wtfields.TextAreaField()

        form = TestEntryForm(FakePost({"title": "new entry", "content": "some content", "blog": self.blog_b.get_id()}))

        # check the htmlz for the form's hidden field
        html = form._fields["blog"]()
        self.assertEqual(html, u'<input id="blog" name="blog" type="hidden" value="%s">' % self.blog_b.get_id())

        self.assertTrue(form.validate())
        self.assertEqual(form.blog.data, self.blog_b)

        entry = Entry()
        form.populate_obj(entry)

        # ensure entry count hasn't changed
        self.assertEqual(Entry.select().count(), 3)

        entry.save()
        self.assertEqual(Entry.select().count(), 4)
        self.assertEqual(self.blog_a.entry_set.count(), 2)
        self.assertEqual(self.blog_b.entry_set.count(), 2)

        # make sure the blog object came through ok
        self.assertEqual(entry.blog, self.blog_b)

        # edit entry a1
        form = TestEntryForm(
            FakePost({"title": "a1 edited", "content": "a1 content", "blog": self.blog_b.get_id()}), obj=self.entry_a1
        )

        # check the htmlz for the form's hidden field
        html = form._fields["blog"]()
        self.assertEqual(html, u'<input id="blog" name="blog" type="hidden" value="%s">' % self.blog_b.get_id())

        self.assertTrue(form.validate())

        form.populate_obj(self.entry_a1)
        self.entry_a1.save()

        self.assertEqual(self.entry_a1.blog, self.blog_b)

        self.assertEqual(self.blog_a.entry_set.count(), 1)
        self.assertEqual(self.blog_b.entry_set.count(), 3)

        # pull from the db just to be 100% sure
        a1 = Entry.get(title="a1 edited")
Exemple #6
0
    def test_form(self):
        tcache = i18n_form.translations_cache
        tcache.clear()
        form = self.F()

        assert ('en_US', 'en') in tcache
        assert form._get_translations() is tcache[('en_US', 'en')]
        assert not form.validate()
        self.assertEqual(form.a.errors[0], 'This field is required.')

        form = self.F(LANGUAGES=['es'])
        assert ('es', ) in tcache
        self.assertEquals(len(tcache), 2)
        assert not form.validate()
        self.assertEqual(form.a.errors[0], 'Este campo es obligatorio.')
Exemple #7
0
    def update(self):
        if request.is_xhr:
            status = "NOK"
            ret_id = 0
            if admin_per.require().can():
                form = MenuViewForm(request.form)

                myChoices = [('0', '...')] + [(str(page.id), page.translations[get_locale()].title) for page in
                                              Pages.query.order_by(Pages.updated_on.desc()).all()]
                form.page_view.choices = myChoices

                if form.validate():
                    res = update_node(request.form['node_id'], request.form['page_view'])
                    if res is not None:
                        ret_id = request.form['node_id']
                        status = "OK"
                else:
                    data = []
                    for field, errors in form.errors.items():
                        for error in errors:
                            data.append((getattr(form, field).label.text, error))

                    status = data
            return jsonify({'status': status, 'id': ret_id})

        else:
            # redirect to home
            return redirect(url_for('.index'))
Exemple #8
0
 def post(self):
     next_url = self.request.params.get('next_url', webapp2.uri_for('main'))
     form = MojangLoginForm(self.request.POST)
     if form.validate():
         username = form.username.data
         password = form.password.data
         try:
             u, uuid, access_token = mojang_authentication(username, password)
             if u:
                 email = None
                 if '@' in username:
                     email = username
                 auth_id = User.get_mojang_auth_id(uuid=uuid)
                 self.login_auth_id(auth_id, nickname=u, username=u, email=email)
                 self.redirect(next_url)
                 return
         except MojangException as me:
             message = u'Mojang authentication failed (Reason: {0}).'.format(me)
             self.session.add_flash(message, level='error')
     gae_login_uri = get_gae_login_uri(self, next_url)
     context = {
         'gae_login_uri': gae_login_uri,
         'mojang_login_form': form,
         'next_url': next_url
     }
     self.render_template('login.html', context=context)
Exemple #9
0
 def _common_test(self, expected_error, form_kwargs, form_class=None):
     if not form_class:
         form_class = self.F
     form = form_class(**form_kwargs)
     assert not form.validate()
     self.assertEqual(form.a.errors[0], expected_error)
     return form
Exemple #10
0
 def edit_view(self):
     if (not request.args) or (not request.args.get('id')):
         return abort(404)
     id = request.args['id']
     procurement = models.Procurement.query.get(id)
     form = forms.ProcurementForm(request.form, procurement)
     # check that the user has permission
     if not g.user.is_admin:
         if procurement.country_id != g.user.country_id:
             return abort(401)
     # set dynamic select choices
     form.supplier.choices = forms.get_supplier_choices()
     form.product.choices = forms.get_product_choices()
     form.source.choices = forms.get_source_choices()
     if request.form:
         # update procurement details
         if request.method == 'POST' and form.validate():
             procurement = self.populate_procurement_from_form(procurement, form)
             db.session.add(procurement)
             db.session.commit()
             flash("The details were updated successfully.", "success")
             if request.args.get('host_url'):
                 target = get_redirect_target(param_name="host_url")
                 return redirect(HOST + target)
             return redirect(url_for('.index_view'))
     else:
         # set field values that weren't picked up automatically
         form.product.process_data(procurement.product_id)
         form.country.process_data(procurement.country_id)
         form.currency.process_data(procurement.currency_id)
         form.incoterm.process_data(procurement.incoterm_id)
         form.supplier.process_data(procurement.supplier_id)
         form.source.process_data(procurement.source_id)
     return self.render('admin/procurement.html', procurement=procurement, form=form, title="Edit procurement record", API_HOST=API_HOST)
Exemple #11
0
 def post(self, key):
     try:
         server_key = ndb.Key(urlsafe=key)
         server = server_key.get()
         if server is None:
             self.abort(404)
         form = ServerPropertiesForm(formdata=self.request.POST, server=server)
         if form.validate():
             if set_form_short_name(server, form):
                 server.is_gce = True
                 server.name = form.name.data
                 server.version = form.version.data
                 server.memory = form.memory.data
                 server.operator = form.operator.data or None
                 server.idle_timeout = form.idle_timeout.data
                 server.put()
                 mc_properties = server.mc_properties
                 for prop in form:
                     if prop.name not in ['name', 'version', 'memory', 'operator', 'idle_timeout']:
                         if prop.name == 'server_port':
                             if prop.data is not None:
                                 setattr(mc_properties, prop.name, int(prop.data))
                             else:
                                 setattr(mc_properties, prop.name, None)
                         elif prop.type == 'IntegerField' or prop.name in [
                             'gamemode', 'difficulty', 'op_permission_level'
                         ]:
                             setattr(mc_properties, prop.name, int(prop.data))
                         else:
                             setattr(mc_properties, prop.name, prop.data)
                 mc_properties.put()
                 self.redirect(webapp2.uri_for('home', server_key=server.url_key))
     except Exception, e:
         logging.error(u"Error POSTing GCE server: {0}".format(e))
         self.abort(404)
Exemple #12
0
 def post(self):
     next_url = self.request.params.get('next_url', webapp2.uri_for('user_profile'))
     form = UsernameClaimForm(self.request.POST)
     if form.validate():
         username = form.username.data
         password = form.password.data
         try:
             u, uuid, access_token = mojang_authentication(username, password)
             if u:
                 user = self.request.user
                 auth_id = User.get_mojang_auth_id(uuid=uuid)
                 existing_user = self.auth.store.user_model.get_by_auth_id(auth_id)
                 if existing_user is not None and user.key != existing_user.key:
                     user.merge(existing_user)
                 existing_user = User.lookup(username=u)
                 if existing_user is not None and user.key != existing_user.key:
                     user.merge(existing_user)
                 else:
                     user.add_username(u)
                     auth_id = User.get_mojang_auth_id(uuid=uuid)
                     user.add_auth_id(auth_id)
                     user.put()
         except MojangException as me:
             message = u'Mojang authentication failed (Reason: {0}).'.format(me)
             logging.error(message)
             self.session.add_flash(message, level='error')
     self.redirect(next_url)
Exemple #13
0
 def post(self):
     try:
         form = ServerPropertiesForm(formdata=self.request.POST)
         if form.validate():
             server = Server.create(
                 name=form.name.data,
                 is_gce=True,
                 version=form.version.data,
                 memory=form.memory.data,
                 operator=form.operator.data or None,
                 idle_timeout=form.idle_timeout.data
             )
             mc_properties = server.mc_properties
             for prop in form:
                 if prop.name not in ['name', 'version', 'memory', 'operator', 'idle_timeout']:
                     if prop.type == 'IntegerField' or prop.name in [
                         'gamemode', 'difficulty', 'op_permission_level'
                     ]:
                         if prop.data is not None:
                             setattr(mc_properties, prop.name, int(prop.data))
                     else:
                         setattr(mc_properties, prop.name, prop.data)
             mc_properties.put()
             if not set_form_short_name(server, form):
                 message = "Short name '{0}' is already assigned to another world".format(form.short_name.data)
                 self.session.add_flash(message, level='warn')
             self.redirect(webapp2.uri_for('home', server_key=server.url_key))
     except Exception, e:
         logging.error(u"Error POSTing GCE server: {0}".format(e))
         self.abort(404)
Exemple #14
0
 def post(self, key=None):
     server = self.get_server_by_key(key, abort=False)
     if server is None:
         self.redirect_to_server('home')
         return
     try:
         form = CommandForm(self.request.POST)
         if form.validate():
             command = form.command.data
             username = self.request.user.get_server_play_name(server.key)
             if command and command.startswith(u'/say '):
                 if len(command) <= 5:
                     command = None
                 elif username:
                     command = u"/say <{0}> {1}".format(username, command[5:])
             if command:
                 Command.push(server.key, username, command)
                 message = u'Command "{0}" sent to world "{1}".'.format(command, server.name)
                 logging.info(message)
                 self.session.add_flash(message, level='info')
                 time.sleep(1)
     except Exception, e:
         message = u'Command "{0}" could not be send to world "{1}" (Reason: {2}).'.format(command, server.name, e)
         logging.error(message)
         self.session.add_flash(message, level='error')
Exemple #15
0
 def post(self, key):
     try:
         server_key = ndb.Key(urlsafe=key)
         server = server_key.get()
         if server is None:
             self.abort(404)
         if not server.is_gce:
             self.redirect(webapp2.uri_for('home', server_key=server.url_key))
         form = ServerRestoreForm(
             formdata=self.request.POST,
             versions=gcs.get_versions(server.key.urlsafe()),
             timezone=self.request.user.timezone
         )
         if form.validate():
             gcs.restore_generation(server.key.urlsafe(), form.generation.data)
             name = None
             for choice in form.generation.choices:
                 if choice[0] == form.generation.data:
                     name = choice[1]
                     break
             message = u"Saved game restored."
             if name:
                 message = u"Saved game {0} restored.".format(name)
             logging.info(message)
             self.session.add_flash(message, level='info')
             time.sleep(1)
             self.redirect(webapp2.uri_for('home', server_key=server.url_key))
     except Exception, e:
         message = "Problem restoring game: {0}".format(e)
         logging.error(message)
         self.session.add_flash(message, level='error')
    def register_view(self):
        form = RegistrationForm(request.form)
        if request.method == 'POST' and form.validate():
            user = Users()

            user.username = form.username.data
            user.email = form.email.data
            user.roles = ','.join(form.role.data)
            # we hash the users password to avoid saving it as plaintext in the db,
            # remove to use plain text:
            user.password = generate_password_hash(form.password.data)

            Session.add(user)
            Session.commit()

            login.login_user(user)
            flash('Thanks for registering')
            return redirect(url_for('.index'))
        link = '<p>Already have an account? <a href="' + url_for('.login_view') + '">Click here to log in.</a></p>'
        form_roles = []
        roles = Session.query(Role).all()
        for role in roles:
            form_roles.append((role.key, role.name))
        form.role.choices = form_roles
        self._template_args['form'] = form
        self._template_args['link'] = link
        return super(MyAdminIndexView, self).index()
Exemple #17
0
def register():
    form = RegistrationForm(request.form)
    #si el usuario esta registrado guardamos los datos
    if request.method == 'POST' and form.validate() and ('username' in session):
            #guardamos los datos nuevos o editados
            form.databasesMongoUpdate(conn,session['username'])
            #por si cambia el nombre de usuario
            session['username']=form.username.data
            #conn.insertData(form)
            return render_template('perfil.html',usuario=form.username.data,form=form)
    elif request.method == 'POST' and form.validate():
            #grabamos los datos
                form.databasesMongo(conn)
                return render_template('hijo.html',usuario=form.username.data)

    #devolvemos la pagina de registro
    return render_template('register.html',form=form)
Exemple #18
0
def login_view():
  form = LoginForm(request.form)
  if request.method == 'POST' and form.validate():
    user = form.get_user()
    login.login_user(user)
    return redirect(url_for('index'))

  return render_template('form.html', form=form)
Exemple #19
0
def login_view():
    form = LoginForm(request.form)
    if request.method == "POST" and form.validate():
        user = form.get_user()
        login.login_user(user)
        return redirect(url_for("index"))

    return render_template("form.html", form=form)
Exemple #20
0
def login():
    form = LoginForm(request.form)
    if request.method == 'POST' and form.validate():
        # login and validate the user...
        user = form.get_user()
        login_user(user)
        flash("Logged in successfully.")
        return redirect(url_for("search"))
    return render_template("login.html", form=form)
Exemple #21
0
def profile(context, request):
    form = ProfileForm(request.POST)

    if request.method == 'POST' and form.validate():
        profile = request.user.profile = form.profile.data
        rev = UserProfileRevision(user=request.user, updated_by=request.user,
                                  content=profile)
        model.session.add(rev)

    return {}
Exemple #22
0
def loginaction() :
	# handle user login
	form = LoginForm(request.form)
	if request.method == 'POST' and form.validate() :
	    user = form.get_user()
	    if login.login_user(user) :
	        session['user'] = user.login
	        print("User %s logged in successfully."%user.login)
	        return redirect(request.args.get('next') or url_for('vendor_page.index'))
	        
	return render_template('login.html', form=form)
Exemple #23
0
    def index(self):
        if request.method == 'POST':
            form = ProfileForm(request.form)
        else:
            form = ProfileForm()
            form.title.data = Setting.query.filter_by(name='folio_title').first()

        if request.method == 'POST' and form.validate():
            flash('Your data has been saved successfully.', 'success')

        return self.render('admin/profile.html', form=form)
Exemple #24
0
def contact():
    form = ContactForm()
    if request.method == "POST":
        if form.validate() == False:
            flash("All fields are required.")
            return render_template("contact.html", form=form)
        else:
            return "Form posted."

    elif request.method == "GET":
        return render_template("contact.html", form=form)
Exemple #25
0
def register_view():
    form = RegistrationForm(request.form)
    if request.method == 'POST' and form.validate():
        user = User()

        form.populate_obj(user)
        user.save()

        login.login_user(user)
        return redirect(url_for('index'))

    return render_template('form.html', form=form)
Exemple #26
0
def register_view():
  form = RegistrationForm(request.form)
  if request.method == 'POST' and form.validate():
    user = User()

    form.populate_obj(user)
    user.save()

    login.login_user(user)
    return redirect(url_for('index'))

  return render_template('form.html', form=form)
Exemple #27
0
 def login_view(self):
     form = LoginForm(request.form)
     if request.method == 'POST' and form.validate():
         user = form.get_user()
         login_user(user)
     if current_user.is_authenticated:
         return redirect(url_for('.index'))
     link = '<p>Don\'t have an account? <a href="' + url_for(
         '.register_view') + '">Click here to register.</a></p>'
     self._template_args['form'] = form
     self._template_args['link'] = link
     return super(MyAdminIndexView, self).index()
Exemple #28
0
 def post(self):
     try:
         form = ServerForm(formdata=self.request.POST)
         if form.validate():
             server = Server.create(name=form.name.data, is_gce=False)
             if not set_form_short_name(server, form):
                 message = "Short name '{0}' is already assigned to another world".format(form.short_name.data)
                 self.session.add_flash(message, level='warn')
             self.redirect(webapp2.uri_for('home', server_key=server.url_key))
     except Exception, e:
         logging.error(u"Error POSTing server: {0}".format(e))
         self.abort(404)
Exemple #29
0
    def test_entry_form_with_obj(self):
        form = EntryForm(obj=self.entry_a1)
        self.assertEqual(
            form.data,
            {"title": "a1", "content": "a1 content", "pub_date": datetime.datetime(2011, 1, 1), "blog": self.blog_a},
        )
        self.assertTrue(form.validate())

        # check that the options look right
        self.assertEqual(
            list(form.blog.iter_choices()), [(self.blog_a.get_id(), u"a", True), (self.blog_b.get_id(), u"b", False)]
        )
Exemple #30
0
    def test_non_int_pk(self):
        form = NonIntPKForm()
        self.assertEqual(form.data, {"value": None, "id": None})
        self.assertFalse(form.validate())

        obj = NonIntPKModel(id="a", value="A")
        form = NonIntPKForm(obj=obj)
        self.assertEqual(form.data, {"value": "A", "id": "a"})
        self.assertTrue(form.validate())

        form = NonIntPKForm(FakePost({"id": "b", "value": "B"}))
        self.assertTrue(form.validate())

        obj = NonIntPKModel()
        form.populate_obj(obj)
        self.assertEqual(obj.id, "b")
        self.assertEqual(obj.value, "B")

        self.assertEqual(NonIntPKModel.select().count(), 0)
        obj.save(True)
        self.assertEqual(NonIntPKModel.select().count(), 1)
Exemple #31
0
    def test_non_int_pk(self):
        form = NonIntPKForm()
        self.assertEqual(form.data, {'value': None, 'id': None})
        self.assertFalse(form.validate())

        obj = NonIntPKModel(id='a', value='A')
        form = NonIntPKForm(obj=obj)
        self.assertEqual(form.data, {'value': 'A', 'id': 'a'})
        self.assertTrue(form.validate())

        form = NonIntPKForm(FakePost({'id': 'b', 'value': 'B'}))
        self.assertTrue(form.validate())

        obj = NonIntPKModel()
        form.populate_obj(obj)
        self.assertEqual(obj.id, 'b')
        self.assertEqual(obj.value, 'B')

        self.assertEqual(NonIntPKModel.select().count(), 0)
        obj.save(True)
        self.assertEqual(NonIntPKModel.select().count(), 1)
Exemple #32
0
def forget_password_request():
    form = EmailForm(request.form)
    if request.method == 'POST':
        if form.validate():
            account_email = form.email.data
            user = User.query.filter_by(email=account_email).first_or_404()
            send_mail(form.email.data,
                      '重置你的密码',
                      'email/reset_password.html',
                      user=user,
                      token=user.generate_token())
            flash("一封邮件已经发送至您的邮箱" + account_email + ",请及时查收!")
    return render_template('auth/forget_password_request.html', form=form)
Exemple #33
0
def login():
    form = LoginForm(request.form)
    if request.method == 'POST' and form.validate():
        user = User.query.filter_by(email=form.email.data).first()
        if user and user.check_password(form.password.data):
            login_user(user, remember=True)
            nexturl = request.args.get('next')
            if not nexturl or not nexturl.startswith('/'):
                nexturl = url_for('web.index')
            return redirect(nexturl)
        else:
            flash('账号不存在或者密码错误!')
    return render_template('auth/login.html', form=form)
Exemple #34
0
def test_exclusive_minmax():

    field = NumberParameters.from_json_field('test', True, {
        "type": "integer",
        "exclusiveMinimum": 2,
        "exclusiveMaximum": 15
    })
    constraints = field.get_options()
    hamcrest.assert_that(
        constraints,
        hamcrest.has_entries({
            'validators':
            hamcrest.contains_exactly(
                hamcrest.instance_of(wtforms.validators.DataRequired),
                hamcrest.instance_of(
                    jsonschema_wtforms.validators.NumberRange))
        }))
    assert field.required is True
    assert field.get_factory() == wtforms.fields.IntegerField
    form = wtforms.form.BaseForm({"test": field()})
    form.process(data={'test': 1})
    assert form.validate() is False
    assert form.errors == {'test': ['Number must be over 2.']}

    form.process(data={'test': 2})
    assert form.validate() is False
    assert form.errors == {'test': ['Number must be over 2.']}

    form.process(data={'test': 16})
    assert form.validate() is False
    assert form.errors == {'test': ['Number must be under 15.']}

    form.process(data={'test': 15})
    assert form.validate() is False
    assert form.errors == {'test': ['Number must be under 15.']}

    form.process(data={'test': 10})
    assert form.validate() is True
    assert not form.errors
Exemple #35
0
def dashboard():
    form = AddEventForm(request.form)
    if request.method == 'POST' and form.validate():
        event_name = form.name.data
        event_date = str(form.date.data)
        engine.execute('INSERT INTO events (name, date, userid) VALUES (%s, %s, %s);',
                        (event_name, event_date, g.user.id))
        return redirect(url_for('.dashboard'))
    db_events = engine.execute('SELECT name, id, date FROM events WHERE userid = %s', (g.user.id,)).fetchall()
    context = {
        'events': db_events
    }
    return render_template("dashboard.html", form=form, **context)
Exemple #36
0
def update_todolist():

    form = UpdateTodolistForm(request.form)
    if request.method != 'POST':
        abort(405)
    if request.method == 'POST' and form.validate():
        if not (engine.execute('SELECT userid FROM events WHERE id = %s',
         (form.eventid.data,)).fetchone()['userid'] == g.user.id):
            abort(403)
        engine.execute('UPDATE todolist SET eventid = %s, item = %s, completed = %s WHERE id=%s;',
                        (form.eventid.data, form.item.data,form.completed.data, form.todolistid.data))

        return redirect(url_for('.todolists', event_id=form.eventid.data))
Exemple #37
0
 def post(self):
     form = InstanceForm(self.request.POST)
     if form.validate():
         instance = gce.Instance.singleton()
         instance.zone = form.zone.data
         instance.machine_type = form.machine_type.data
         instance.disk_size = form.disk_size.data
         instance.backup_depth = form.backup_depth.data
         instance.reserved_ip = form.reserved_ip.data
         instance.put()
         self.redirect(webapp2.uri_for('admin'))
     context = {'form': form, 'instance': instance}
     self.render_template('instance_configure.html', context=context)
def add_article():
    form = ArticleForm(request.form)
    if request.method == 'POST' and form.validate():
        title = form.title.data
        body = form.body.data
        #create cursor
        cur = mysql.connection.cursor()
        cur.execute("INSERT INTO articles(title, body, author) VALUES(%s, %s, %s)", (title,body,session['username']))
        mysql.connection.commit()

        cur.close()
        flash ('Article Created', 'success')
        return redirect(url_for('dashboard'))
    return render_template('templates/add_article.html', form=form)
Exemple #39
0
def test_enum():
    field = StringParameters.from_json_field('test', True, {
        "type": "string",
        "enum": ['foo', 'bar']
    })

    constraints = field.get_options()
    hamcrest.assert_that(constraints, hamcrest.has_entries({
        'validators': hamcrest.contains_exactly(
            hamcrest.instance_of(wtforms.validators.DataRequired),
        ),
    }))

    assert field.required is True
    assert field.get_factory() == wtforms.fields.SelectField
    form = wtforms.form.BaseForm({"test": field()})
    form.process(data={'test': 'Dagger'})
    assert form.validate() is False
    assert form.errors == {'test': ['Not a valid choice.']}

    form.process(data={'test': 'foo'})
    assert form.validate() is True
    assert not form.errors
Exemple #40
0
def register():
    form = RegistrationForm(request.form)
    #si el usuario esta registrado guardamos los datos
    if request.method == 'POST' and form.validate() and ('username'
                                                         in session):
        #guardamos los datos nuevos o editados
        form.databasesMongoUpdate(conn, session['username'])
        #por si cambia el nombre de usuario
        session['username'] = form.username.data
        #conn.insertData(form)
        return render_template('perfil.html',
                               usuario=form.username.data,
                               form=form)
    elif request.method == 'POST' and form.validate():
        #grabamos los datos
        if (conn.getUserData(form.username.data)) == True:
            form.databasesMongo(conn)
            return render_template('hijo.html', usuario=form.username.data)
        else:
            return render_template('errorRegister.html', usuario=None)

    #devolvemos la pagina de registro
    return render_template('register.html', form=form)
Exemple #41
0
def forget_password_request():
    form = EmailForm(request.form)
    if request.method == 'POST':
        if form.validate():
            account_email = form.email.data
            user = User.query.filter_by(email=account_email).first_or_404()
            from app.libs.email import send_mail
            send_mail(form.email.data,
                      '重置你的密码',
                      'email/reset_password.html',
                      user=user,
                      token=user.generate_token())
        return redirect(url_for('web.index'))
    return render_template('auth/forget_password_request.html', form=form)
Exemple #42
0
    def test_entry_form_with_obj(self):
        form = EntryForm(obj=self.entry_a1)
        self.assertEqual(form.data, {
            'title': 'a1',
            'content': 'a1 content',
            'pub_date': datetime.datetime(2011, 1, 1),
            'blog': self.blog_a,
        })
        self.assertTrue(form.validate())

        # check that the options look right
        self.assertEqual(list(form.blog.iter_choices()), [
            (self.blog_a.get_id(), u'a', True), (self.blog_b.get_id(), u'b', False)
        ])
Exemple #43
0
    def test_hidden_field_none(self):
        class TestNullEntryForm(WTForm):
            blog = HiddenQueryField(query=Blog.select())

        form = TestNullEntryForm(FakePost({
            'blog': '',
        }))

        # check the htmlz for the form's hidden field
        html = form._fields['blog']()
        self.assertEqual(html, u'<input id="blog" name="blog" type="hidden" value="">')

        self.assertTrue(form.validate())
        self.assertEqual(form.blog.data, None)

        entry = NullEntry()
        form.populate_obj(entry)

        # ensure entry count hasn't changed
        self.assertEqual(NullEntry.select().count(), 0)

        entry.save()
        self.assertEqual(NullEntry.select().count(), 1)

        # make sure the blog object came through ok
        self.assertEqual(entry.blog, None)

        # edit entry a1
        form = TestNullEntryForm(FakePost({
            'blog': None,
        }), obj=self.entry_a1)

        # check the htmlz for the form's hidden field
        html = form._fields['blog']()
        self.assertEqual(html, u'<input id="blog" name="blog" type="hidden" value="">')

        self.assertTrue(form.validate())
Exemple #44
0
def register():
    form = RegisterForm(request.form)
    if request.method == 'POST' and form.validate():
        with db.auto_commit():
            user = User()
            user.set_attrs(form.data)
            # user.password = generate_password_hash(form.password.data)
            # user.nickname = form.nickname.data
            # user.email = form.email.data
            # user.password = form.password.data

            db.session.add(user)
        return redirect(url_for('web.login'))

    return render_template('auth/register.html', form=form)
Exemple #45
0
def changepass():
    token = request.args.get('token', None)
    user = None
    if token is not None:
        user = User.verify_token(token)
    if token is None or user is None:
        return redirect(url_for("resetpass"))

    form = ChangePasswordForm(request.form)
    if request.method == "POST" and form.validate():
        user.password = hash_password(form.password.data)
        db.session.commit()
        return redirect(url_for("login"))
    else:
        return render_template("change_pass.html", form=form)
Exemple #46
0
def login():
    form = LoginForm(request.form)
    if request.method == 'POST' and form.validate():
        member_data = members.find_one({'name': form.name.data})
        #validation stuff
        # member returns dictionary of collection info
        if not member_data == None:
            user = member_from_dict(Member, member_data)
            login_user(user)
            flash(f"Logged in as {user['name']}")
            return redirect('/')
        # No result from member collection
        flash("That username doesn't exist")
        return redirect('/login')
    return render_template('form.html', form=form)
Exemple #47
0
    def register_view(self):
        form = RegistrationForm(request.form)
        if request.method == 'POST' and form.validate():
            user = User()
            form.populate_obj(user)
            user["password"] = bcrypt.generate_password_hash(user["password"]).decode('utf-8')
            user.save()
            login_user(user)
            return redirect(url_for('.index'))

        self._template_args['form'] = form
        self._template_args['active'] = "Register"
        self._template_args['intro'] = ""
        self._template_args['link'] = '*Please do not enter a used username or password<p><p>Login? <a href="{}">Click here</a></p>'.format(url_for('.login_view'))
        return super(CustomAdminIndexView, self).index()
Exemple #48
0
def remove_tags(artwork, request):
    form = RemoveTagForm(request.POST, artwork=artwork)
    if not form.validate():
        # FIXME when the final UI is figured out
        return HTTPBadRequest()

    for tag in form.tags.data:
        artwork.tags.remove(tag)

    if len(form.tags.data) == 1:
        request.session.flash(u"Tag \"{0}\" has been removed".format(tag))
    else:
        request.session.flash(u"Tags have been removed")

    return HTTPSeeOther(location=request.route_url('art.view', artwork=artwork))
Exemple #49
0
def edit_patient(id):
    # Create cursor
    cur = mysql.connection.cursor()

    # Get article by id
    result = cur.execute("SELECT * FROM PatientList WHERE id = %s", [id])

    article = cur.fetchone()
    cur.close()
    # Get form
    form = PatientForm(request.form)

    # Populate article form fields
    form.PatientName.data = article['PatientName']
    form.Address.data = article['Address']
    form.ServID.data = article['ServID']
    form.Price.data = article['Price']

    if request.method == 'POST' and form.validate():
        PatientName = str(request.form['PatientName'])
        Address = str(request.form['Address'])
        ServID = str(request.form['ServID'])
        Price = str(request.form['Price'])

        # Create Cursor
        cur = mysql.connection.cursor()
        app.logger.info(PatientName)
        # Execute
        cur.execute(
            "UPDATE Patient SET PatientName=%s , Address=%s , ServID=%s,Price=%s WHERE id=%s",
            (PatientName, Address, ServID, Price, id))
        # Commit to DBDoctors/Doctor/MDetails?id=' + $('#vpatid').val()
        mysql.connection.commit()

        #Close connection
        cur.close()

        flash('Patient Updated', 'success')

        return redirect(url_for('patient'))
    cur = mysql.connection.cursor()
    result = cur.execute("SELECT ID , ServName FROM ServList")
    serv = cur.fetchall()
    app.logger.info(type(serv))
    app.logger.info(serv)
    app.logger.info(serv[0]['ServName'])

    return render_template('edit_patient.html', form=form)
Exemple #50
0
    def login_view(self):
        # handle user login
        form = LoginForm(request.form)
        if request.method == 'POST' and form.validate():
            user = form.get_user()
            if user != None:
                login_user(user)

        if current_user.is_authenticated:
            return redirect(request.args.get('next') or url_for('.index'))

        self._template_args['form'] = form
        self._template_args['active'] = "Login"
        self._template_args['intro'] = ""
        self._template_args['link'] = '<p>Register? <a href="{}">Click here</a></p>'.format(url_for('.register_view'))
        return super(CustomAdminIndexView, self).index()
Exemple #51
0
def addarticle():
    form = ArticleForm(request.form)
    if request.method == "POST" and form.validate():
        title = form.title.data
        content = form.content.data

        cursor = mysql.connection.cursor()

        sorgu = "Insert into articles(title,author,content) VALUES(%s,%s,%s)"
        cursor.execute(sorgu, (title, session["username"], content))
        mysql.connection.commit()
        cursor.close()

        flash("Makale Başarıyla Eklendi", "success")
        return redirect(url_for("dashboard"))
    return render_template("addarticle.html", form=form)
Exemple #52
0
def remove_tags(artwork, request):
    form = RemoveTagForm(request.POST, artwork=artwork)
    if not form.validate():
        # FIXME when the final UI is figured out
        return HTTPBadRequest()

    for tag in form.tags.data:
        artwork.tags.remove(tag)

    if len(form.tags.data) == 1:
        request.session.flash(u"Tag \"{0}\" has been removed".format(tag))
    else:
        request.session.flash(u"Tags have been removed")

    return HTTPSeeOther(
        location=request.route_url('art.view', artwork=artwork))
Exemple #53
0
 def register_view(self):
     form = RegistrationForm(request.form)
     if request.method == 'POST' and form.validate():
         user = User()
         user.login = form.login.data
         user.email = form.email.data
         user.password = generate_password_hash(form.password.data)
         db.session.add(user)
         db.session.commit()
         login_user(user)
         return redirect(url_for('.index'))
     link = '<p>Already have an account? <a href="' + url_for(
         '.login_view') + '">Click here to log in.</a></p>'
     self._template_args['form'] = form
     self._template_args['link'] = link
     return super(MyAdminIndexView, self).index()
def register():
    form = RegisterForm(request.form)

    if request.method == "POST" and form.validate():
        try:
            user = User()
            user.set_attrs(form.data)
            db.session.add(user)
            db.session.commit()
            login_user(user, False)

        except Exception as e:
            db.session.rollback()
            raise e
        return redirect(url_for('web.index'))
    return render_template('register.html', form=form)
Exemple #55
0
def notes(event_id):
    event = engine.execute('SELECT * FROM events WHERE id = %s', (int(event_id),)).fetchone()
    notes = engine.execute('SELECT * FROM notepad WHERE eventid = %s', (int(event_id),)).fetchall()
    if not (event['userid'] == g.user.id):
        abort(403)
    form = AddNoteForm(request.form)
    if request.method == 'POST' and form.validate():
        event_name = form.name.data
        engine.execute('INSERT INTO notepad (name, eventid) VALUES (%s, %s);',
                        (event_name, event_id))
        return redirect(url_for('.notes', event_id=event_id))
    context = {
        'event': event,
        'notes': notes
    }
    return render_template('notes.html', **context)
Exemple #56
0
 def post(self):
     user = self.user
     if user and not user.active:
         form = UserEmailForm(self.request.POST, user)
         if form.validate():
             user.email = form.email.data
             user.put()
             self.redirect(webapp2.uri_for('main'))
         context = {
             'title': main_config.TITLE,
             'description': main_config.DESCRIPTION,
             'form': form
         }
         self.render_template('main_inactive.html', context=context)
     else:
         self.redirect(webapp2.uri_for('main'))
    def login_view(self):
        try:

            # handle user login
            form = LoginForm(request.form)
            if request.method == 'POST': 
                if form.validate():
                    user = form.get_user()
                    login.login_user(user)

                if login.current_user.is_authenticated:
                    return redirect(url_for('.index'))
        except validators.ValidationError as error:
            flash(str(error))

        self._template_args['form'] = form
        return super(BaobabAdminIndexView, self).index()
Exemple #58
0
def send_drift(gid):
    current_gift = Gift.query.first_or_404()

    if current_gift.is_yourself_gift(current_user.id):
        flash('这本书是你自己的,不能像自己索要书籍哦')
        return redirect(url_for('web.book_detail', isbn=current_gift.isbn))

    can = current_user.can_send_drift()
    if not can:
        return render_template('not_enough_beans.html', beans=current_user.beans)
    form = DriftForm(request.form)
    if request.method == 'POST' and form.validate():
        save_drift(form, current_gift)
        send_mail(current_gift.user.email, '有人想要一本书', 'email/get_gift.html',
                  wisher=current_user,
                  gift=current_gift)
        return redirect(url_for('web.pending'))
    gifter = current_gift.user.summary
    return render_template('drift.html', gifter=gifter, user_beans=current_user.beans, form=form)
Exemple #59
0
    def login_view(self):
        # handle user login

        form = LoginForm(request.form)
        if request.method == 'POST' and form.validate():
            user = form.get_user()
            if user is not None:
                if user and utils.verify_password(form.password.data, user.password):
                    login.login_user(user)
                    flash("Logged in successfully!", category='success')
                return redirect(url_for('admin.index'))
            flash("Wrong username or password!", category='error')

        if login.current_user.is_authenticated:
            return redirect(url_for('.index'))
        link = '<p>Don\'t have an account? Too bad... </p>'
        self._template_args['form'] = form
        self._template_args['link'] = link
        return super(MyAdminIndexView, self).index()
Exemple #60
0
def login_begin(context, request):
    """Step one of logging in with OpenID; redirect to the provider."""
    form = LoginForm(request.POST)

    if not form.validate():
        return {'form': form}

    # Ensure the return key, if present and valid, will be passed
    # to openid_finish()
    return_url = request.route_url('account.login_finish')
    if form.return_key.data in get_stash_keys(request):
        return_url = update_params(return_url,
            return_key=form.return_key.data)

    if request.user:
        # Logged-in user trying to update their OpenID expiry time
        sreg = False
        settings = request.registry.settings
        max_auth_age = settings.get('auth.openid.expiry_seconds',
                                    DEFAULT_CONFIDENCE_EXPIRY)
    else:
        # Someone either logging in or registering
        # Problem is that we don't want sreg (as part of opeinid_begin) unless
        # the user is registering, but we don't know whether the user is
        # registering or just logging in until we resolve their identity URL...
        # which we do in openid_begin.
        # Possibly use checkid_immediate instead
        sreg = True
        max_auth_age = False

    try:
        return HTTPSeeOther(location=openid_begin(
                identifier=form.openid_identifier.data,
                return_url=return_url,
                request=request,
                max_auth_age=max_auth_age,
                sreg=sreg))

    except OpenIDError as exc:
        request.session.flash(exc.message,
            level='error', icon='key--exclamation')
        return {'form': form}