def test_file_not_allowed(self) -> None:
     """Raise UploadNotAllowed for not allowed file extensions."""
     uset = UploadSet('files', ('png'))
     uset._config = Config('/uploads')
     testing_filestorage = TestingFileStorage(filename='picture.gif')
     with pytest.raises(UploadNotAllowed):
         uset.save(testing_filestorage)
Example #2
0
def upload():
    if request.method == 'POST' and len(request.files) > 0:
        msg = "Log in with an Admin privlidged user to upload files!"
        if not oidc.user_loggedin:
            return msgHandler.createMessageJSON("danger", msg)
        elif oidc.user_loggedin:
            isAdmin = oidc.user_getfield("isAdmin")
            if isAdmin != "yes":
                return msgHandler.createMessageJSON("danger", msg)

        view = get_window_controller().get_window(1).get_view(0)
        folder = view.get_current_directory()
        UPLOADS_PTH = folder + '/'
        files = UploadSet('files', ALL, default_dest=lambda x: UPLOADS_PTH)
        configure_uploads(app, files)

        for file in request.files:
            try:
                files.save(request.files[file])
            except Exception as e:
                print(repr(e))
                msg = "[Error] Failed to upload some or all of the file(s)..."
                return msgHandler.createMessageJSON("danger", msg)

        msg = "[Success] Uploaded file(s)..."
        return msgHandler.createMessageJSON("success", msg)
    else:
        msg = "Can't manage the request type..."
        return msgHandler.createMessageJSON("danger", msg)
Example #3
0
 def test_non_ascii_filename(self):
     uset = UploadSet('files')
     uset._config = Config('/uploads')
     tfs = TestingFileStorage(filename=u'天安门.jpg')
     res = uset.save(tfs)
     assert res == 'jpg'
     res = uset.save(tfs, name='secret.')
     assert res == 'secret.jpg'
Example #4
0
 def test_secured_filename(self):
     uset = UploadSet('files', ALL)
     uset._config = Config('/uploads')
     tfs1 = TestingFileStorage(filename='/etc/passwd')
     tfs2 = TestingFileStorage(filename='../../myapp.wsgi')
     res1 = uset.save(tfs1)
     assert res1 == 'etc_passwd'
     assert tfs1.saved == '/uploads/etc_passwd'
     res2 = uset.save(tfs2)
     assert res2 == 'myapp.wsgi'
     assert tfs2.saved == '/uploads/myapp.wsgi'
    def test_storage_is_not_a_werkzeug_datastructure(self) -> None:
        """UploadSet.save needs a valid FileStorage object.

        When something different is passed in, a TypeError gets raised.
        """
        uset = UploadSet('files', ALL)
        uset._config = Config('/uploads')
        non_storage = 'this is no werkzeug.datastructure.FileStorage'

        with pytest.raises(TypeError):
            uset.save(non_storage)  # type: ignore
Example #6
0
def gallery_do_upload():
    res = JsonResponse()
    res.resMsg = 'Upload start.'
    if 'photo' in request.files:
        try:
            photos = UploadSet('photos', IMAGES)
            configure_uploads(current_app, (photos))
            filename = photos.save(request.files['photo'])
            gflag = GalleryMiddleware().save_one(
                link=photos.url(filename),
                tags=request.form.getlist('tags'),
                caption=request.form['caption']
            )
            if gflag:
                res.resMsg = 'Note: Photo saved successfully.'
            else:
                res.resMsg = 'Note: Failed to save photo.'
            res.data = {
                'link': photos.url(filename),
                'tags': request.form.getlist('tags'),
                'caption': request.form['caption']
            }
        except Exception:
            res.resCode = -1
            res.resMsg = 'Error: Upload failed.\n\n' + \
                'The file size maybe exceeds limited size [' + \
                '{0}'.format(current_app.config['MAX_CONTENT_LENGTH_MB']) + \
                'MB].'
            pass
    else:
        res.resCode = -1
        res.resMsg = 'Error: Cannot find the file field in your upload form.'
    # print(res.outputJsonString()) # Print for test.
    return res.outputJsonString()
Example #7
0
def pdf_upload():
    files = UploadSet('files', ALL)
    task_id_str = request.form.get("task_id")
    if task_id_str:
        task_id = int(task_id_str)
        this_task = Task.query.filter_by(id=task_id).first()
    if request.method == 'POST' and 'file' in request.files:
        filename = files.save(
            request.files['file'])  # get the file from front end request, return the file name(String)
        if this_task.pdf_url:
            pdf_id = this_task.pdf_id
            upload_file = drive.CreateFile({'id': pdf_id})
            upload_file.SetContentFile("./uploads/files/" + filename)
            upload_file['title'] = filename  # set the file name of this file
            upload_file.Upload()  # upload this file
        else:
            upload_file = drive.CreateFile()  # create the google drive file instance
            upload_file.SetContentFile("./uploads/files/" + filename)  # set our file into this instance
            upload_file['title'] = filename  # set the file name of this file
            upload_file.Upload()  # upload this file
            permission = upload_file.InsertPermission({
                'type': 'anyone',
                'value': 'anyone',
                'role': 'reader'})
            google_file_id = upload_file[
                'id']  # can get this file's google drive-id and use it to save the id into database
            google_url = "https://drive.google.com/uc?authuser=0&id=" + google_file_id + "&export=download"
            this_task.pdf_url = google_url
            this_task.pdf_id = google_file_id
            this_task.update()
        os.remove("./uploads/files/" + filename)  # delete this file after uploading it to google drive
    flash("The file has been uploaded successfully.")
    return redirect(url_for('teacher_view', staff_number=current_user.user_number))
Example #8
0
 def test_save_namedext(self):
     uset = UploadSet('files')
     uset._config = Config('/uploads')
     tfs = TestingFileStorage(filename='boat.jpg')
     res = uset.save(tfs, name='photo_123.')
     assert res == 'photo_123.jpg'
     assert tfs.saved == '/uploads/photo_123.jpg'
Example #9
0
 def test_implicit_folder(self):
     uset = UploadSet('files')
     uset._config = Config('/uploads')
     tfs = TestingFileStorage(filename='boat.jpg')
     res = uset.save(tfs, name='someguy/photo_123.')
     assert res == 'someguy/photo_123.jpg'
     assert tfs.saved == '/uploads/someguy/photo_123.jpg'
Example #10
0
def upload_logo():
    """Upload shop logo"""
    form = UploadLogoForm()
    company = Company.query.first()

    if form.validate_on_submit():
        images = UploadSet("images", IMAGES)
        f = form.image.data
        if f is None:
            flash("File required")
        else:
            filename = images.save(f)
            # symlink to active theme static directory
            img_src = "".join(
                [current_app.config["UPLOADED_IMAGES_DEST"], filename])
            link = "".join([current_app.config["STATIC_FOLDER"], filename])
            symlink(img_src, link, overwrite=True)
            src = url_for("static", filename=filename)
            company.logo_src = src
            database.session.commit()
            flash("Logo has been uploaded")

    return render_template("admin/upload_logo.html",
                           form=form,
                           company=company)
 def test_conflict_without_extension(self) -> None:
     uset = UploadSet('files', extensions=(''))
     uset._config = Config('/uploads')
     tfs = TestingFileStorage(filename='foo')
     self.extant('/uploads/foo')
     res = uset.save(tfs)
     assert res == 'foo_1'
Example #12
0
 def test_conflict(self):
     uset = UploadSet('files')
     uset._config = Config('/uploads')
     tfs = TestingFileStorage(filename='foo.txt')
     self.extant('/uploads/foo.txt')
     res = uset.save(tfs)
     assert res == 'foo_1.txt'
Example #13
0
def changeHeadImg():
    if 'loginbean' in session:
        loginbean = session['loginbean']
        try:
            if request.method == 'POST':
                f = request.files['headImg']
                if f and allowed_file(f.filename):  # 判断是否是允许上传的文件类型
                    app.config['UPLOADED_PHOTOS_DEST'] = os.getcwd(
                    ) + '/static/photos/headImg/'  # 文件储存地址
                    photos = UploadSet(
                        'photos',
                        IMAGES)  #创建UploadSet 拿到UploadSet对象 并设置文件类型为image
                    configure_uploads(
                        app, photos)  #使用configure_uploads()方法注册并完成相应的配置

                    filename = photos.save(request.files['headImg'])
                    headImg = '/static/photos/headImg/' + filename  #路径字符串
                h = Users.objects(_id=loginbean['id']).update(
                    set__headImg=headImg)  #更改路径
                loginbean['headImg'] = headImg
                session['loginbean'] = loginbean
            return ('<script>alert("提交成功");location.href="/setting";</script>')
        except Exception as err:
            estr = str(err)
            if estr.find('before') > 0:
                return (
                    '<script>alert("图片不能为空");location.href="/setting";</script>'
                )
    else:
        return ('<script>alert("账号信息过期,请重新登录");location.href="/";</script>')
Example #14
0
def upload_files(file_list, user_name):
    up_list = list()
    if not file_list:
        return up_list
    ac_upload_set = UploadSet(upload_mark, ALL)
    folder = user_name
    destination = current_app.upload_set_config.get(upload_mark).destination
    tar_dir = os.path.join(destination, folder)
    map_path = os.path.join(tar_dir, map_file)

    try:
        with open(map_path, 'r') as f:
            map_dict = json.load(f)
    except Exception as e:
        print(e)
        map_dict = dict()

    for storage in file_list:
        print(storage)
        basename = 'y_' + ac_upload_set.get_basename(storage.filename)
        print(basename)
        upload_name = sign_st_name(basename)
        print(upload_name)
        save_name = ac_upload_set.save(storage,
                                       folder=folder,
                                       name=upload_name)
        print(os.path.basename(save_name))
        map_dict[basename] = os.path.basename(save_name)
        up_list.append(basename)

    with open(map_path, 'w') as f:
        json.dump(map_dict, f)

    return up_list
 def test_folder_namedext(self) -> None:
     uset = UploadSet('files')
     uset._config = Config('/uploads')
     tfs = TestingFileStorage(filename='boat.jpg')
     res = uset.save(tfs, folder='someguy', name='photo_123.')
     assert res == 'someguy/photo_123.jpg'
     assert tfs.saved == '/uploads/someguy/photo_123.jpg'
Example #16
0
 def test_save_named(self):
     uset = UploadSet('files')
     uset._config = Config('/uploads')
     tfs = TestingFileStorage(filename='foo.txt')
     res = uset.save(tfs, name='file_123.txt')
     assert res == 'file_123.txt'
     assert tfs.saved == '/uploads/file_123.txt'
Example #17
0
 def test_save_folders(self):
     uset = UploadSet('files')
     uset._config = Config('/uploads')
     tfs = TestingFileStorage(filename='foo.txt')
     res = uset.save(tfs, folder='someguy')
     assert res == 'someguy/foo.txt'
     assert tfs.saved == '/uploads/someguy/foo.txt'
Example #18
0
 def test_multi_conflict(self):
     uset = UploadSet('files')
     uset._config = Config('/uploads')
     tfs = TestingFileStorage(filename='foo.txt')
     self.extant('/uploads/foo.txt',
                 *('/uploads/foo_%d.txt' % n for n in range(1, 6)))
     res = uset.save(tfs)
     assert res == 'foo_6.txt'
Example #19
0
 def test_conflict_without_extension(self):
     # Test case for issue #7.
     uset = UploadSet('files', extensions=(''))
     uset._config = Config('/uploads')
     tfs = TestingFileStorage(filename='foo')
     self.extant('/uploads/foo')
     res = uset.save(tfs)
     assert res == 'foo_1'
def update(id):
    data = get_data(id)
    con = db.connect()
    cursor = con.cursor(db.getDictCursor())
    cursor.execute("SELECT * FROM promotions")
    promotions = cursor.fetchall()

    form = RewardForm(obj=data, csrf_enabled=False)
    if request.method == 'POST' and form.validate_on_submit():
        promotion_id = request.form['promotion_id'] or 'NULL'
        name = request.form['name'] or 'NULL'
        info = request.form['info'] or 'NULL'
        point = request.form['point'] or 'NULL'
        value = request.form['value'] or 'NULL'
        type = request.form['type'] or 'NULL'
        updated_by = session['user_id'] or 'NULL'
        photo = request.files['photo']

        con = db.connect()
        cursor = con.cursor(db.getDictCursor())
        try:
            if 'photo' not in request.files:
                cursor.execute(
                    "UPDATE rewards SET \
                                promotion_id=%s, name=%s, info=%s, \
                                point=%s, value=%s, updated_by=%s, type=%s \
                                WHERE id=%s", (promotion_id, name, info, point,
                                               value, updated_by, type, id))
            else:
                if photo and allowed_file(photo.filename):
                    photos = UploadSet('photos', IMAGES)
                    configure_uploads(app, photos)
                    filename = photos.save(request.files['photo'])
                    file_url = photos.url(filename)

                cursor.execute(
                    "UPDATE rewards SET \
                                promotion_id=%s, name=%s, info=%s, \
                                point=%s, value=%s, updated_by=%s, type=%s, path=%s \
                                WHERE id=%s",
                    (promotion_id, name, info, point, value, updated_by, type,
                     file_url, id))

            con.commit()
            flash('Operation success')
            return redirect(url_for('reward.update', id=id))
        except cursor.InternalError as e:
            code, message = e.args
            con.rollback()
            return redirect(url_for('reward.update', id=id))
        finally:
            con.close()

    return render_template('back/reward/update.html',
                           form=form,
                           data=data,
                           promotions=promotions)
Example #21
0
def add_data():
    if not current_user.is_authenticated:
        return redirect(url_for('base_blueprint.login'))

    data_form = UploadDataForm()
    docs = UploadSet('documents', ['xls', 'xlsx', 'csv'])

    if data_form.validate_on_submit():
        filename = docs.save(data_form.file.data)
        file_url = docs.url(filename)
        print(docs.path(filename))

        patients = pd.read_excel(docs.path(filename))
        print(patients)
        added = 0

        for index, row in patients.iterrows():
            patient = Patient()
            patient.full_name = row["ФИО"]
            patient.iin = row["ИИН"]
            patient.dob = datetime.strptime(row["Дата рождения"], '%d.%m.%Y')
            patient.citizenship = row["Гражданство"]
            patient.pass_num = row["Номер паспорта"]
            patient.telephone = row["Номер мобильного телефона"]
            patient.arrival_date = datetime.strptime(row["Дата въезда"],
                                                     '%d.%m.%Y')
            patient.flight_code = row["рейс"]
            patient.visited_country = row[
                "Место и сроки пребывания в последние 14 дней до прибытия в Казахстан (укажите страну, область, штат и т.д.)"]
            patient.region = row["регион"]
            patient.home_address = row[
                "Место жительство, либо предпологаемое место проживания"]
            patient.job = row["Место работы"]
            patient.is_found = True if row["Найден (да/нет)"].lower(
            ) == "да" else False
            patient.in_hospital = True if row[
                "Госпитализирован (да/нет)"].lower() == "да" else False
            patient.hospital = row["Место госпитализации"] if not pd.isnull(
                row["Место госпитализации"]) else ""

            query = "{}, {}".format(patient.region, patient.home_address)
            results = geocoder.geocode(query)

            if len(results):
                patient.address_lat = results[0]['geometry']['lat']
                patient.address_lng = results[0]['geometry']['lng']

            db.session.add(patient)
            db.session.commit()
            added += 1

        # # else we can create the user
        return route_template('add_data', form=data_form, added=added)
        # return render_template( 'login/register.html', success='User created please <a href="/login">login</a>', form=patient_form)
    else:
        return route_template('add_data', form=data_form, added=-1)
Example #22
0
def upload_image(username):
    current_app.config['UPLOADED_PHOTOS_DEST'] = IMAGE_ROUTE
    photos = UploadSet('photos', IMAGES)
    configure_uploads(current_app, photos)
    user = User.query.filter_by(username=username).first_or_404()
    if request.method == 'POST' and 'photo' in request.files:
        filename = photos.save(request.files['photo'])
        resize_image(filename, username)
        return redirect(url_for('main.user', username=username))
    return render_template('upload.html', username=username)
Example #23
0
def upload():
	photos = UploadSet('photos')
	configure_uploads(app, photos)
	if request.method == 'POST' and 'file' in request.files:
		filename = photos.save(request.files['file'])
		# rec = Photo(filename=filename, user=g.user.id)
		# rec.store()
		flash("Photo saved.")
		return redirect(url_for('upload'))
	return render_template('photo.html')
Example #24
0
def upload():
    files = UploadSet('files', ALL)
    student_number = current_user.user_number
    user_id = current_user.id
    question_id = request.form.get("question_id")
    user_question = User_question.query.filter_by(question_id=question_id,
                                                  user_id=user_id).first()

    print(user_question)
    if question_id:
        question_id = int(request.form.get("question_id"))  # get the question id from request post
        question_id_str = str(question_id)
        this_question = db.session.query(Question).filter(Question.id == question_id).one()
        task_id = this_question.task_id
        this_task = db.session.query(Task).filter(Task.id == task_id).one()

        user_task = User_task.query.filter_by(task_id=task_id, user_id=user_id).first()
        task_id_str = str(task_id)
        unit_id = db.session.query(Task).filter(Task.id == task_id).one().unit_id
        unit_id_str = str(unit_id)
        print(student_number)
        print(unit_id_str)
        print(task_id_str)
        print(question_id_str)
        name = student_number + '_' + unit_id_str + '_' + task_id_str + '_' + question_id_str + '.mp3'

    if not user_task:
        User_task.add_user_task(user=current_user, task=this_task)  # save user_question to db

    if request.method == 'POST' and 'upfile' in request.files:
        filename = files.save(
            request.files['upfile'])  # get the file from front end request, return the file name(String)
        if user_question:
            record_id = user_question.record_id
            upload_file = drive.CreateFile({'id': record_id})
            upload_file.SetContentFile("./uploads/files/" + filename)
            upload_file['title'] = name  # set the file name of this file
            upload_file.Upload()  # upload this file
        else:
            upload_file = drive.CreateFile()  # create the google drive file instance
            upload_file.SetContentFile("./uploads/files/" + filename)  # set our file into this instance
            upload_file['title'] = name  # set the file name of this file
            upload_file.Upload()  # upload this file
            permission = upload_file.InsertPermission({
                'type': 'anyone',
                'value': 'anyone',
                'role': 'reader'})
            google_file_id = upload_file[
                'id']  # can get this file's google drive-id and use it to save the id into database
            google_url = "https://drive.google.com/uc?authuser=0&id=" + google_file_id + "&export=download"
            User_question.add_user_question(user=current_user, question=this_question, record_url=google_url,
                                            record_id=google_file_id, record_title=name)  # save user_question to db

        os.remove("./uploads/files/" + filename)  # delete this file after uploading it to google drive
    return redirect(url_for('student_view', student_number=current_user.user_number))
Example #25
0
def add_jamla_item():
    form = ItemsForm()
    jamla = get_jamla()
    if form.validate_on_submit():
        draftItem = {}
        draftItem["uuid"] = str(uuid.uuid4())
        draftItem["requirements"] = {}
        draftItem["primary_icon"] = {"src": "", "type": ""}
        draftItem["title"] = form.title.data[0].strip()
        draftItem["requirements"]["subscription"] = bool(
            form.subscription.data[0])
        draftItem["requirements"]["note_to_seller_required"] = bool(
            form.note_to_seller_required.data[0])
        draftItem["requirements"]["note_to_buyer_message"] = str(
            form.note_to_buyer_message.data[0])
        try:
            days_before_first_charge = int(
                form.days_before_first_charge.data[0])
        except ValueError:
            days_before_first_charge = 0

        draftItem["days_before_first_charge"] = days_before_first_charge

        if form.monthly_price.data[0] is None:
            draftItem["monthly_price"] = False
        else:
            draftItem["monthly_price"] = float(
                form.monthly_price.data[0]) * 100
        draftItem["requirements"]["instant_payment"] = bool(
            form.instant_payment.data[0])
        if form.sell_price.data[0] is None:
            draftItem["sell_price"] = False
        else:
            draftItem["sell_price"] = float(form.sell_price.data[0]) * 100
        draftItem["selling_points"] = form.selling_points.data[0]
        # Create SKU
        draftItem["sku"] = form.title.data[0].replace(" ", "").strip()
        # Primary icon image storage
        f = form.image.data[0]
        if f:
            images = UploadSet("images", IMAGES)
            filename = images.save(f)
            # symlink to active theme static directory
            img_src = "".join(
                [current_app.config["UPLOADED_IMAGES_DEST"], filename])
            link = "".join([current_app.config["STATIC_FOLDER"], filename])
            os.symlink(img_src, link)
            src = url_for("static", filename=filename)
            draftItem["primary_icon"] = {"src": src, "type": ""}
        jamla["items"].append(draftItem)
        fp = open(current_app.config["JAMLA_PATH"], "w")
        yaml.safe_dump(jamla, fp, default_flow_style=False)
        flash("Item added.")
        return redirect(url_for("admin.dashboard"))
    return render_template("admin/add_jamla_item.html", jamla=jamla, form=form)
Example #26
0
def set_patch():
    user = User.create_from_db_obj.User(
        mongo.db.users.find_one({"sessionKey": request.form["apiKey"]}))
    photos = UploadSet('photos', IMAGES)
    if request.method == 'POST' and 'pic' in request.files:
        configure_uploads(app, photos)
        filename = photos.save(request.files['pic'])
        user.set_patch(filename)
        return Reply().ok()
    else:
        return Reply("could not save image!").error()
Example #27
0
def upload_file():
    structures = UploadSet(name='structures', extensions=current_app.config['UPLOADED_STRUCTURES_ALLOW'])
    form = SocketForm()
    if form.validate_on_submit():
        if 'structure' not in request.files:
            flash('Please upload a structure file.')
            return redirect(request.url)
        structure = request.files['structure']
        filename = secure_filename(structures.save(structure))
        return redirect(url_for('structure_bp.uploaded_file', filename=filename, scut=form.scut.data, kcut=form.kcut.data))
    return render_template('upload.html', form=form)
Example #28
0
def teacher_recorder():
    files = UploadSet('files', ALL)
    task_id_str = request.form.get("task_id")
    print(task_id_str)
    print(type(task_id_str))
    student_id_str = request.form.get("student_id")
    user_task = User_task.query.filter_by(task_id=task_id_str,
                                          user_id=student_id_str).one()
    print(user_task)
    if task_id_str:
        print(task_id_str)
        print(student_id_str)
        print(user_task)
        print(type(user_task))
        task_id = int(task_id_str)
        student_id = int(student_id_str)
        this_task = db.session.query(Task).filter(Task.id == task_id).one()
        this_student = db.session.query(User).filter(User.id == student_id).one()
        task_name = this_task.task_name
        student_number = this_student.user_number
        name = task_id_str + "_" + task_name + "_" + student_number + ".mp3"
        print(name)
    if request.method == 'POST' and 'upfile' in request.files:
        filename = files.save(
            request.files['upfile'])  # get the file from front end request, return the file name(String)
        if user_task.record_url:
            record_id = user_task.record_id
            print(record_id)
            upload_file = drive.CreateFile({'id': record_id})
            upload_file.SetContentFile("./uploads/files/" + filename)
            upload_file['title'] = name  # set the file name of this file
            upload_file.Upload()  # upload this file
        else:
            upload_file = drive.CreateFile()  # create the google drive file instance
            upload_file.SetContentFile("./uploads/files/" + filename)  # set our file into this instance
            upload_file['title'] = name  # set the file name of this file
            upload_file.Upload()  # upload this file
            permission = upload_file.InsertPermission({
                'type': 'anyone',
                'value': 'anyone',
                'role': 'reader'})
            google_file_id = upload_file[
                'id']  # can get this file's google drive-id and use it to save the id into database
            print(google_file_id)
            google_url = "https://drive.google.com/uc?authuser=0&id=" + google_file_id + "&export=download"
            print(google_url)
            user_task.record_url = google_url
            user_task.record_id = google_file_id
            user_task.record_title = name
            user_task.update()

        os.remove("./uploads/files/" + filename)  # delete this file after uploading it to google drive
    return redirect(url_for('teacher_view', staff_number=current_user.user_number))
Example #29
0
def tfidf():
    form = FileForm()
    text = UploadSet('text', TEXT)
    if form.validate_on_submit():
        filename = text.save(form.text_file.data)
        flash(u'文件上传成功')
        BASE_DIR = os.path.dirname(__file__)
        file_dir = os.path.join(BASE_DIR, 'upload_files/')
        result = tfidf_calc(file_dir, filename)
        return render_template('tfidf.html', form=form, result=result)

    return render_template('tfidf.html', form=form)
Example #30
0
def add_item():
    form = ItemsForm()
    if form.validate_on_submit():
        draftItem = Item()
        database.session.add(draftItem)
        item_requirements = ItemRequirements()
        draftItem.requirements.append(item_requirements)

        draftItem.uuid = str(uuid.uuid4())
        draftItem.title = form.title.data[0].strip()
        item_requirements.subscription = bool(form.subscription.data[0])
        item_requirements.note_to_seller_required = bool(form.note_to_seller_required.data[0])
        item_requirements.note_to_buyer_message = str(form.note_to_buyer_message.data[0])
        try:
            days_before_first_charge = int(form.days_before_first_charge.data[0])
        except ValueError:
            days_before_first_charge = 0

        draftItem.days_before_first_charge = days_before_first_charge

        if form.monthly_price.data[0] is None:
            draftItem.monthly_price = 0
        else:
            draftItem.monthly_price = int(form.monthly_price.data[0]) * 100
        item_requirements.instant_payment = bool(
            form.instant_payment.data[0]
        )
        if form.sell_price.data[0] is None:
            draftItem.sell_price = 0
        else:
            draftItem.sell_price = int(form.sell_price.data[0]) * 100

        points = form.selling_points.data[0]

        for point in points:
            draftItem.selling_points.append(ItemSellingPoints(point=point))

        # Primary icon image storage
        f = form.image.data[0]
        if f:
            images = UploadSet("images", IMAGES)
            filename = images.save(f)
            # symlink to active theme static directory
            img_src = "".join([current_app.config["UPLOADED_IMAGES_DEST"], filename])
            link = "".join([current_app.config["STATIC_FOLDER"], filename])
            os.symlink(img_src, link)
            src = url_for("static", filename=filename)
            draftItem.primary_icon = src
        database.session.commit()
        flash("Item added.")
        return redirect(url_for("admin.dashboard"))
    return render_template("admin/add_item.html", form=form)
Example #31
0
def upload():
    photos = UploadSet('photos', IMAGES)

    app.config['UPLOADED_PHOTOS_DEST'] = 'static/uploads'
    configure_uploads(app, photos)

    if request.method == 'POST' and 'photo' in request.files:
        filename = photos.save(request.files['photo'])
        photo_path = "/static/uploads/" + filename
        caption = request.form.get("caption")
        upload_photo(photo_path, caption)

    return render_template('upload.html')
Example #32
0
File: views.py Project: Zionus/Aqua
def upload():
    '''
    '''
    form = PseudoForm()
    if form.validate_on_submit():
        docs = UploadSet('docs',DOCUMENTS)
        
        #filename = secure_filename(form.pseudo.data.filename)
        filename = docs.save(form.pseudo.data)
        #docs.url(filename)
        flash('You have save file',filename)
    else:
        filename = None
    return render_template('upload.html',form = form,filename= filename)