Esempio n. 1
0
def add_investment():
    form = InvestmentForm()
    url = blobstore.create_upload_url(
        url_for('investment.admin.add'))
    if request.method == 'POST':
        upload_files = get_uploads(request, 'attach_file')
        file_ = None
        if len(upload_files):
            blob_info = upload_files[0]
        else:
            blob_info = None

        if form.validate_on_submit():
            if blob_info:
                blob_info = blobstore.BlobInfo.get(blob_info.key())
                if blob_info.size:
                    file_ = File.create(
                        blob_key=blob_info.key(),
                        title=form.name.data,
                        description=form.description.data,
                        is_public=form.is_public.data,
                        filename=os.path.basename(blob_info.filename.replace('\\', '/')),
                        size=blob_info.size,
                        content_type=blob_info.content_type)
                    file_.put()
                else:
                    blob_info.delete()

            investment = Investment()
            form.populate_obj(investment)
            if file_:
                investment.file = file_.key
            investment.put()
            return redirect(url_for('investment.admin.index'))
    return render_template(
        'investment/admin/add.html',
        form=form,
        url=url
    )