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))
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