Esempio n. 1
0
def add_scenario():
    errors = []
    building_models = g.user.get_available_building_models(return_dict=True)
    if request.method == 'GET':
        return render_template("users/add_scenario.html",
                               errors=errors,
                               building_models=building_models)
    else:
        name = request.form.get('name', '')
        is_public = request.form.get('is_public', 0)
        addition_information = request.form.get('addition_information', '')
        scenario_preview = request.form.get('scenario_preview', '')
        if name.strip() == '':
            errors.append('Scenario name is required')
            return render_template("users/add_scenario.html",
                                   errors=errors,
                                   building_models=building_models), 400

        scenario = Scenario(name,
                            g.user,
                            addition_information=addition_information,
                            is_public=is_public)
        scenario.description = request.form.get('description', '')

        # save preview to dir
        save_image(scenario.id + '.png', 'static/images/scenario_previews',
                   scenario_preview)
        scenario.has_preview = 1

        db.session.add(scenario)
        db.session.commit()
        return redirect(url_for('sketchup.view_scenario', id=scenario.id))
Esempio n. 2
0
def clone_scenario(scenario_id):
    errors = []
    if scenario_id == '':
        return json.dumps([gettext('Scenario not found')]), 404

    scenario = Scenario.query.filter_by(id=scenario_id).first()
    if scenario is None:
        return json.dumps([gettext('Scenario not found')]), 404

    if not scenario.can_access(g.user):
        return json.dumps([gettext('Scenario not found')]), 404

    new_scenario = Scenario(gettext('Cloned of %(scenario_name)s', scenario_name=scenario.name), g.user, addition_information=scenario.addition_information, is_public=1)

    db.session.add(new_scenario)
    db.session.commit()

    return json.dumps(new_scenario.to_dict(include_owner=True)), 200
Esempio n. 3
0
def clone_scenario(scenario_id):
    errors = []
    if scenario_id == '':
        return json.dumps([gettext('Scenario not found')]), 404

    scenario = Scenario.query.filter_by(id=scenario_id).first()
    if scenario is None:
        return json.dumps([gettext('Scenario not found')]), 404

    if not scenario.can_access(g.user):
        return json.dumps([gettext('Scenario not found')]), 404

    new_scenario = Scenario(gettext('Cloned of %(scenario_name)s',
                                    scenario_name=scenario.name),
                            g.user,
                            addition_information=scenario.addition_information,
                            is_public=1)

    db.session.add(new_scenario)
    db.session.commit()

    return json.dumps(new_scenario.to_dict(include_owner=True)), 200
Esempio n. 4
0
def add_scenario():
    errors = []
    building_models = g.user.get_available_building_models(return_dict=True)
    if request.method == 'GET':
        return render_template("users/add_scenario.html", errors=errors, building_models=building_models)
    else:
        name = request.form.get('name', '')
        is_public = request.form.get('is_public', 0)
        addition_information = request.form.get('addition_information', '')
        scenario_preview = request.form.get('scenario_preview', '')
        if name.strip() == '':
            errors.append('Scenario name is required')
            return render_template("users/add_scenario.html", errors=errors, building_models=building_models), 400

        scenario = Scenario(name, g.user, addition_information=addition_information, is_public=is_public)
        scenario.description = request.form.get('description', '')
        
        # save preview to dir
        save_image(scenario.id + '.png', 'static/images/scenario_previews', scenario_preview)
        scenario.has_preview = 1
        
        db.session.add(scenario)
        db.session.commit()
        return redirect(url_for('sketchup.view_scenario', id=scenario.id))