예제 #1
0
파일: api.py 프로젝트: basels/ccut-wrapper
def process_spreadsheet_file():
    ''' Page to handle processing excel file (xlsx). Creates json and redirects to editor-UI '''

    global g_active_json, g_active_filename, g_active_xlsx_fname

    form = FileUploadForm()
    if form.validate_on_submit():
        f = form.in_file.data
        filename = secure_filename(f.filename)
        if not exists(STORAGE_FOLDER):
            makedirs(STORAGE_FOLDER)
        g_active_xlsx_fname = STORAGE_FOLDER + filename
        f.save(g_active_xlsx_fname)
        g_active_json, _ = process_file(g_active_xlsx_fname)
        g_active_filename = '.'.join(
            g_active_xlsx_fname.split('.')[:-1]) + '.ccut.json'
        with open(g_active_filename, 'w') as outfile:
            dump(g_active_json, outfile, indent=2)

        # TODO: color original xlsx
        return redirect(url_for('edit_annotation_file'))
    else:
        return render_template('file_upload.html',
                               form=form,
                               title='Process spreadsheet file',
                               file_ext='.xlsx')
예제 #2
0
def uploading():
    form = FileUploadForm()
    if request.method == 'POST':
        if form.validate_on_submit() and 'picFile' in request.files:
            file = request.files['picFile']
            #flash(file.filename)
            if changeFileExtension(file):
                filename = file.filename
                if images.file_allowed(file, filename):
                    #filename = secure_filename(filename)
                    filename = changeFileName(filename)
                    path = 'pict'
                    name_for_save = images.resolve_conflict(path, filename)
                    images.save(file, path, name_for_save)
                    # db
                    db = get_db()
                    db.execute(
                        'INSERT INTO PICTURES ( path, filename, comment, data ) VALUES (?,?,?,?)',
                        [
                            path, name_for_save, request.form['comment'],
                            time.time()
                        ])
                    db.commit()
                    return redirect(url_for('pictures'))
            form.errors['picFile'] = ('file extension is not supported', )
    header = 'Страница загрузки'.decode('utf-8')
    return render_template('upload.html',
                           title=app.config['TITLE'],
                           header=header,
                           form=form)
예제 #3
0
def kaoqin():
    print 'this is index ()'
    form = FileUploadForm()
    filedata = []
    if form.validate_on_submit():
        for upload in form.uploads.entries:
            filedata.append(upload)
    return render_template("download.html", form=form)
예제 #4
0
def index():
    form = FileUploadForm()

    filedata = []

    if form.validate_on_submit():
        print 'form.validate !!!'
        for upload in form.uploads.entries:
            filedata.append(upload)
        print len(filedata)

    for file1 in filedata:
        print file1.data.filename

    return render_template("index.html", form=form, filedata=filedata)
예제 #5
0
def upload():
    import os
    from werkzeug.utils import secure_filename
    form = FileUploadForm()
    if form.validate_on_submit():
            data = request.files[form.filename.name].read()
            filename = secure_filename(form.filename.data.filename)
            file_path = os.path.join('./app/uploads/', filename)
            open(file_path, 'w').write(data)
            parsexlsdata.delay(file_path)
            flash('Data nahrana a budou se zpracovavat',category='info')
    task= json.loads(inspect().data)
    if task['task'][0]['id'] == '':
        busy=True
    else:
        busy=False
        flash('Data jsou zpracovavana pockejte nekolik minut a akci zopakujte pokud potrebujete...',category='info')


    return render_template("fileupload.html", form = form , user = user ,busy=busy)
예제 #6
0
파일: api.py 프로젝트: basels/ccut-wrapper
def load_annotation_file():
    ''' Page to handle uploading annotation file (json). Redirects to editor-UI '''

    global g_active_json, g_active_filename

    form = FileUploadForm()
    if form.validate_on_submit():
        f = form.in_file.data
        filename = secure_filename(f.filename)
        if not exists(STORAGE_FOLDER):
            makedirs(STORAGE_FOLDER)
        g_active_filename = STORAGE_FOLDER + filename
        f.save(g_active_filename)
        with open(g_active_filename, 'r') as read_file_h:
            g_active_json = load(read_file_h)
        return redirect(url_for('edit_annotation_file'))
    else:
        return render_template('file_upload.html',
                               form=form,
                               title='Upload annotation file',
                               file_ext='.json')
예제 #7
0
def datasets():
	if not current_user.is_authenticated:
		return redirect(url_for('no_access'))

	datasets = Dataset.query.filter(Dataset.user_id == current_user.id).all()

	for ds in datasets:
		ds.distinctive_name = ds.distinctive_name or ds.filename
		if ds.distinctive_name == ds.filename:
			ds.display_filename = ''
		else: 
			ds.display_filename = ds.filename
			
	model = {
		'title': 'Datasets',
		'datasets': datasets
	}
	form = FileUploadForm()
	if form.validate_on_submit():

		dsFile = form.fileName.data

		separator = form.separator.data
		distinctive_name = form.distinctive_name.data

		filename = secure_filename(dsFile.filename)
		guid = str(uuid.uuid4())
		
		dsFile.seek(0)
		dt = dsFile.read()
		
		dbDs = Dataset(filename, guid, g.user, datetime.datetime.utcnow(), separator, distinctive_name, dt)
		
		db.session.add(dbDs)
		db.session.commit()
		return redirect(url_for('datasets'))
	
	model['form'] = form

	return render_template('datasets.html', model = model)
예제 #8
0
def upload():
    dates = ImportantDate.query.order_by(ImportantDate.date_time)
    if not current_user.is_admin:
        #throw a 403 error. we could do a custom error page later.
        abort(403)
    formUpload = FileUploadForm()
    if formUpload.validate_on_submit():
        if 'file' not in request.files:
            flash('No File')
            return redirect(request.url)
        file = request.files['file']
        try:
            num_rows_deleted = db.session.query(Checksheet).delete()
            db.session.commit()
            flash('Checksheet database successfully dumped', 'success')
        except:
            db.session.rollback()
            flash('There was an error dumping the Checksheet database',
                  'danger')

        try:
            parse_dates = [
                'Initial essay', 'Date 1', 'Date 2', 'Date 3', 'Date 4',
                'Date 5', 'Date 6', 'Date 7', 'Date 8'
            ]
            checksheet = pd.read_csv(file, parse_dates=parse_dates)
            checksheet.dropna(axis=0, how='all', inplace=True)
            checksheet.columns = [
                'lastName', 'firstName', 'honors_id', 'email', 'admitted',
                'dupontCode', 'status', 'comments', 'term', 'major', 'advisor',
                'initialEssayDate', 'coCur1', 'coCurDate1', 'coCur2',
                'coCurDate2', 'coCur3', 'coCurDate3', 'coCur4', 'coCurDate4',
                'coCur5', 'coCurDate5', 'coCur6', 'coCurDate6', 'coCur7',
                'coCurDate7', 'coCur8', 'coCurDate8', 'fsemHN', 'fsemHNDate',
                'hnCourse1', 'hnCourse1Date', 'hnCourse2', 'hnCourse2Date',
                'hnCourse3', 'hnCourse3Date', 'hnCourse4', 'hnCourse4Date',
                'hnCourse5', 'hnCourse5Date', 'researchCourse',
                'researchCourseDate', 'capstoneCourse', 'capstoneCourseDate',
                'hon201', 'hon201Date', 'leadership', 'mentoring',
                'portfolio4', 'portfolio1', 'portfolio2', 'portfolio3', 'exit'
            ]
            checksheet.to_sql('checksheets',
                              con=db.engine,
                              if_exists='append',
                              index=False)
            flash('Upload Successful!')
            print checksheet['coCurDate1']

            # drop old users from database
            try:
                students = User.query.filter_by(is_admin=0).all()
                if students is not None:
                    for student in students:
                        print("student=%s" % student.username)
                        try:
                            found = Checksheet.query.filter_by(
                                honors_id=student.honors_id).first()
                            print(found)
                            if found is None:
                                try:
                                    user = User.query.get_or_404(student.id)
                                    db.session.delete(user)
                                    db.session.commit()
                                except:
                                    db.session.rollback()
                                    flash('User not deleted', 'danger')
                        except:
                            flash('Error when searching Checksheet table',
                                  'danger')
                else:
                    flash('There are currently no student accounts.',
                          'warning')
            except:
                flash('Error searching Users table', 'danger')
        except:
            flash(
                'The file you uploaded has an error. Please check the format and try again.'
            )

        return redirect(url_for('admin.upload'))

    return render_template('admin/upload.html',
                           title="Upload",
                           formUpload=formUpload,
                           dates=dates)
예제 #9
0
def upload_file():
    form = FileUploadForm()
    if form.validate_on_submit():
        filename = form.excel_file.data.filename
        print filename