Пример #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))
Пример #2
0
def update_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_edit(g.user):
        return json.dumps([gettext('Scenario not found')]), 404

    if 'scenario_name' in request.form:
        scenario_name = request.form.get('scenario_name', '')
        if scenario_name == '':
            errors.append(gettext('Scenario name cannot be blank'))
        scenario.name = scenario_name

    if 'is_public' in request.form:
        is_public = request.form.get('is_public', 1)
        if is_public not in (1, 0):
            is_public = 1
        scenario.is_public = is_public

    if 'scenario_description' in request.form:
        description = request.form.get('scenario_description', '')
        scenario.description = description

    if 'addition_information' in request.form:
        addition_information = request.form.get('addition_information', '')
        try:
            json.loads(addition_information)
            scenario.addition_information = addition_information
        except:
            pass
        
    if 'scenario_preview' in request.form:
        scenario_preview = request.form.get('scenario_preview', '')
        if scenario_preview != '':
            try:
                save_image(scenario.id + '.png', 'static/images/scenario_previews', scenario_preview)
                scenario.has_preview = 1
            except:
                pass

    if len(errors) > 0:
        return json.dumps(errors), 400

    db.session.commit()
    return json.dumps({
        'success': True
    }), 200
Пример #3
0
def update_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_edit(g.user):
        return json.dumps([gettext('Scenario not found')]), 404

    if 'scenario_name' in request.form:
        scenario_name = request.form.get('scenario_name', '')
        if scenario_name == '':
            errors.append(gettext('Scenario name cannot be blank'))
        scenario.name = scenario_name

    if 'is_public' in request.form:
        is_public = request.form.get('is_public', 1)
        if is_public not in (1, 0):
            is_public = 1
        scenario.is_public = is_public

    if 'scenario_description' in request.form:
        description = request.form.get('scenario_description', '')
        scenario.description = description

    if 'addition_information' in request.form:
        addition_information = request.form.get('addition_information', '')
        try:
            json.loads(addition_information)
            scenario.addition_information = addition_information
        except:
            pass

    if 'scenario_preview' in request.form:
        scenario_preview = request.form.get('scenario_preview', '')
        if scenario_preview != '':
            try:
                save_image(scenario.id + '.png',
                           'static/images/scenario_previews', scenario_preview)
                scenario.has_preview = 1
            except:
                pass

    if len(errors) > 0:
        return json.dumps(errors), 400

    db.session.commit()
    return json.dumps({'success': True}), 200
Пример #4
0
def intermediate_valid_predictions(xs, gts, preds, pid, it_valid, n_save=10):
    path = pathfinder.METADATA_PATH + '/checkpoints/' + pid
    utils.auto_make_dir(path)
    pred_id = 0
    for batch_x, batch_gt, batch_pred in zip(xs, gts, preds):
        for x, gt, pred in zip(batch_x, batch_gt, batch_pred):
            if pred_id >= n_save:
                break
            # save pred
            pred = 255 * pred
            pred = pred.astype(int)
            app.save_image(pred[0],
                           path + '/' + str(it_valid) + '_' + str(pred_id) +
                           '_pred.jpg',
                           mode='L')

            # save ground truth
            gt = 255 * gt
            gt = gt.astype(int)
            app.save_image(gt,
                           path + '/' + str(it_valid) + '_' + str(pred_id) +
                           '_real.jpg',
                           mode='L')

            # save input
            data_reverse_tf(x)
            app.save_image(x,
                           path + '/' + str(it_valid) + '_' + str(pred_id) +
                           '_input.jpg',
                           mode='RGB')

            pred_id += 1
Пример #5
0
def sell():
    if session:
        if request.method == "POST":
            price = request.form.get("price")
            address = request.form.get("address")
            city = request.form.get("city")
            state = request.form.get("state")
            zipcode = request.form.get("z_code")
            thumbnail = save_image(request.files.get("thumbnail"))
            images = request.files.getlist("files[]")
            image = ""
            for img in images:
                image += img.filename + ","
            for img in images:
                save_image(img)
            cur = mysql.connection.cursor()
            cur.execute(
                """INSERT INTO properties(p_sellername,p_address,p_city,p_state,p_zipcode,p_images,p_cost,p_thumbnail,p_status)  
                                    VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
                (str(session['userid']), address, city, state, zipcode, image,
                 price, thumbnail, 'AVL'))
            mysql.connection.commit()
            cur.close()
    return render_template("selling.html")
Пример #6
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))
Пример #7
0
def update_building_model(building_model_id):
    errors = []
    if building_model_id == '':
        return json.dumps([gettext('Building model not found')]), 404

    building_model = BuildingModel.query.filter_by(id=building_model_id).first()
    if building_model is None:
        return json.dumps([gettext('Building model not found')]), 404

    if 'preview' in request.form:
        preview = request.form.get('preview', '')
        if preview != '':
            try:
                image_saved = save_image(building_model.id + '.png', 'static/images/building_model_previews', preview, override=building_model.can_edit(g.user))
                if image_saved:
                    building_model.has_preview = 1
            except:
                pass

    if not building_model.can_edit(g.user):
        return json.dumps([gettext('Building model not found')]), 404

    #only change name
    if 'building_model_name' in request.form:
        building_model_name = request.form.get('building_model_name', '')
        if building_model_name != '':
            building_model.name = building_model_name
        else:
            return json.dumps([gettext('Model name is required')]), 400

    #change building status to building item
    if g.user.is_admin():
        if 'is_base_item' in request.form:
            if building_model.is_base_item == 0:
                building_model.is_base_item = 1
            else:
                building_model.is_base_item = 0

    #change addition information
    if 'addition_information' in request.form:
        addition_information = request.form.get('addition_information', '')
        if addition_information != '':
            try:
                addition_information = json.loads(addition_information)
                original_addition_information = json.loads(building_model.addition_information)
                for key in addition_information:
                    original_addition_information[key] = addition_information[key]

                building_model.addition_information = json.dumps(original_addition_information)
            except:
                return json.dumps([gettext('Error in saving additional information, please contact an admin for more information')]), 400
    
    
        

    db.session.commit()
    returned_building_model = {}
    if g.user.is_admin():
        returned_building_model = {'id': building_model.id, 'name': building_model.name, 'addition_information': building_model.addition_information, 'is_base_item': building_model.is_base_item}
    else:
        returned_building_model = {'id': building_model.id, 'name': building_model.name, 'addition_information': building_model.addition_information}

    return json.dumps({
        'success': True,
        'building_model': returned_building_model
    }), 200
Пример #8
0
def update_building_model(building_model_id):
    errors = []
    if building_model_id == '':
        return json.dumps([gettext('Building model not found')]), 404

    building_model = BuildingModel.query.filter_by(
        id=building_model_id).first()
    if building_model is None:
        return json.dumps([gettext('Building model not found')]), 404

    if 'preview' in request.form:
        preview = request.form.get('preview', '')
        if preview != '':
            try:
                image_saved = save_image(
                    building_model.id + '.png',
                    'static/images/building_model_previews',
                    preview,
                    override=building_model.can_edit(g.user))
                if image_saved:
                    building_model.has_preview = 1
            except:
                pass

    if not building_model.can_edit(g.user):
        return json.dumps([gettext('Building model not found')]), 404

    #only change name
    if 'building_model_name' in request.form:
        building_model_name = request.form.get('building_model_name', '')
        if building_model_name != '':
            building_model.name = building_model_name
        else:
            return json.dumps([gettext('Model name is required')]), 400

    #change building status to building item
    if g.user.is_admin():
        if 'is_base_item' in request.form:
            if building_model.is_base_item == 0:
                building_model.is_base_item = 1
            else:
                building_model.is_base_item = 0

    #change addition information
    if 'addition_information' in request.form:
        addition_information = request.form.get('addition_information', '')
        if addition_information != '':
            try:
                addition_information = json.loads(addition_information)
                original_addition_information = json.loads(
                    building_model.addition_information)
                for key in addition_information:
                    original_addition_information[key] = addition_information[
                        key]

                building_model.addition_information = json.dumps(
                    original_addition_information)
            except:
                return json.dumps([
                    gettext(
                        'Error in saving additional information, please contact an admin for more information'
                    )
                ]), 400

    db.session.commit()
    returned_building_model = {}
    if g.user.is_admin():
        returned_building_model = {
            'id': building_model.id,
            'name': building_model.name,
            'addition_information': building_model.addition_information,
            'is_base_item': building_model.is_base_item
        }
    else:
        returned_building_model = {
            'id': building_model.id,
            'name': building_model.name,
            'addition_information': building_model.addition_information
        }

    return json.dumps({
        'success': True,
        'building_model': returned_building_model
    }), 200