예제 #1
0
def import_demo():
    if request.method == 'POST':
        for demo_name in request.form:
            success, msg = Demo.create_from_name(demo_name)
            if success:
                flash(msg, category='success')
                db.session.commit()
            else:
                flash(msg, category='error')

    demos_raw = glob(os.path.join(app.config.get('DEMO_STORAGE_DIR', '.'), "*.dem"))
    demos = []
    for demo in demos_raw:
        if not Demo.demo_exists(os.path.basename(demo)):
            demos.append((os.path.basename(demo), Demo.check_demo_filename(os.path.basename(demo))))
    return render_template('import_demo.html', demos=demos)
예제 #2
0
def _do_upload_demo_file(the_file):
    """
    Returns: Demo Object/False, Message, Message Type (to be passed to flash)
    """
    if not the_file:
        return False, "You must select a demo to upload!", "error"
    if not allowed_file(the_file.filename):
        return False, "DOH! Only .dem files are allowed!", "error"
    demo = None
    filename = secure_filename(the_file.filename)
    file_exists, title, total_path, category = _is_file_on_disk(filename)
    if file_exists:
        # NOTE: total_path here will be the message!
        return False, total_path, category

    success, msg = Demo.create_from_name(filename)
    if success:
        category = 'success'
        the_file.save(total_path)
        db.session.commit()
        demo = Demo.get_from_filename(filename)
    else:
        category = 'error'
    return demo, title, msg, category