Exemple #1
0
def signup():
    """
    Sign-up view function.
    :return: if success, render sign-in HTML page.
    """

    form = UserForm(request.form)

    if request.method == 'POST' and form.validate():
        app.logger.debug(form.data)

        try:
            user_exist = db.session.query(User).filter_by(
                email=form.email.data).first()
            if not user_exist:
                user = User(form.username.data, form.email.data,
                            generate_password_hash(form.password.data))
                app.logger.debug(user)
                db.session.add(user)
                db.session.commit()
                flash('You have been signed up successfully!')
                return redirect(url_for('userView.signin', form=form))
            else:
                flash('Your email is already registered. Please try again!')
                app.logger.debug('Email is already registered : %s ',
                                 form.email.data)
                return redirect(url_for('userView.signup', form=form))

        except Exception as e:
            app.logger.error(e)
            db.session.rollback()
            return errorHandler.server_error(e)

    return render_template('signup.html')
def signup():
    """
    Sign-up view function.
    :return: if success, render sign-in HTML page.
    """

    form = UserForm(request.form)
    if request.method == 'POST' and form.validate():
        app.logger.debug(form.data)

        try:
            user_exist = None
            for item in User.email_index.query(form.email.data):
                user_exist = item.email

            if not user_exist:
                user = User(uuid.uuid4().hex)
                user.email = form.email.data
                user.password = generate_password_hash(form.password.data)
                user.username = form.username.data
                user.save()
                app.logger.debug(user)
                flash('You have been signed up successfully!')
                return redirect(url_for('userView.signin', form=form))

            else:
                flash('Your email is already registered. Please try again!')
                app.logger.debug('Email is already registered : %s ', form.email.data)
                return redirect(url_for('userView.signup', form=form))

        except Exception as e:
            app.logger.error(e)
            return errorHandler.server_error(e)

    return render_template('signup.html')
def upload():
    """
    Photo file upload  function
    :return: HTML template for upload form or uploaded photo list
    """

    form = PhotoForm(request.form)

    if request.method == 'POST':
        app.logger.debug(form.data)
        app.logger.debug("form.taken_date.data:%s", form.taken_date.data)
        upload_photo = request.files['photo']
        ext = (upload_photo.filename.rsplit('.', 1)[1]).lower()
        filename = secure_filename("{0}.{1}".format(uuid.uuid4(), ext))
        taken_date = datetime.strptime(form.taken_date.data,
                                       "%Y:%m:%d %H:%M:%S")

        app.logger.debug("take_date:{0}".format(taken_date))

        try:
            app.logger.debug(current_user)
            size = util.save(upload_photo, filename, current_user.email, app)

            photo = Photo(current_user.id, util.current_milli_time())
            photo.tags = form.tags.data
            photo.desc = form.desc.data
            photo.filename_orig = upload_photo.filename
            photo.filename = filename
            photo.filesize = size
            photo.geotag_lat = form.lat.data
            photo.geotag_lng = form.lng.data
            photo.upload_date = util.the_time_now()
            photo.taken_date = taken_date
            photo.make = form.make.data
            photo.model = form.model.data
            photo.width = form.width.data
            photo.height = form.height.data
            photo.city = form.city.data
            photo.nation = form.nation.data
            photo.address = form.address.data
            photo.save()

            flash('Your file upload have been completed successfully!')
            return redirect(
                url_for("photoView.photos",
                        form=form,
                        gmaps_key=conf['GMAPS_KEY']))

        except Exception as e:
            app.logger.error(e)
            util.delete(app, filename, current_user)
            return errorHandler.server_error(e)

    return render_template('upload.html',
                           form=form,
                           gmaps_key=conf['GMAPS_KEY'])