From 7ad1117cae21d51f54bce3a296cea5bb100aab81 Mon Sep 17 00:00:00 2001 From: Bilal Catic Date: Fri, 17 May 2019 11:06:32 +0200 Subject: [PATCH] add size screen --- app/controllers/municipalities.js | 7 ++-- app/controllers/sizes.js | 30 +++++++++++++++++ ...7072957-add-size-to-real-estate-request.js | 21 ++++++++++++ app/models/realestaterequest.js | 4 +++ app/views/size.ejs | 32 +++++++++++++++++++ index.js | 4 +++ 6 files changed, 95 insertions(+), 3 deletions(-) create mode 100644 app/controllers/sizes.js create mode 100644 app/migrations/20190517072957-add-size-to-real-estate-request.js create mode 100644 app/views/size.ejs diff --git a/app/controllers/municipalities.js b/app/controllers/municipalities.js index 46fb233..e471cfa 100644 --- a/app/controllers/municipalities.js +++ b/app/controllers/municipalities.js @@ -1,4 +1,4 @@ -const { currentRERequest } = require('../helpers/url'); +const { currentRERequest } = require('../helpers/url'); const { getMunicipalitiesForRegion } = require('../helpers/codes'); const getMunicipality = async (req,res) => { @@ -12,10 +12,11 @@ const getMunicipality = async (req,res) => { }; const postMunicipality = async (req, res) => { - let request = await currentRERequest(req); + const request = await currentRERequest(req); + const nextStep = req.query.nextStep || `/povrsina/${request.uniqueId}`; request.municipality = req.body.municipality; await request.save(); - res.send("Result is " + JSON.stringify(request)); + res.redirect(nextStep); }; module.exports = { diff --git a/app/controllers/sizes.js b/app/controllers/sizes.js new file mode 100644 index 0000000..812c887 --- /dev/null +++ b/app/controllers/sizes.js @@ -0,0 +1,30 @@ +const { currentRERequest } = require('../helpers/url'); + +const sizes = [ + { name: "do 50 m2", id: "50m2" }, + { name: "do 75 m2", id: "70m2" }, + { name: "do 100 m2", id: "100m2" }, + { name: "do 150 m2", id: "150m2" }, + { name: "do 200 m2", id: "200m2" }, + { name: "preko 200 m2", id: "moreThan200m2" } +]; + +const getSize = (req,res) => { + const nextStep = req.query.nextStep; + res.render('size', { + nextStep, + sizes + }); +}; + +const postSize = async (req, res) => { + const request = await currentRERequest(req); + request.size = req.body.size; + await request.save(); + res.send("Result is " + JSON.stringify(request)); +}; + +module.exports = { + getSize, + postSize +}; diff --git a/app/migrations/20190517072957-add-size-to-real-estate-request.js b/app/migrations/20190517072957-add-size-to-real-estate-request.js new file mode 100644 index 0000000..695879a --- /dev/null +++ b/app/migrations/20190517072957-add-size-to-real-estate-request.js @@ -0,0 +1,21 @@ +'use strict'; + +module.exports = { + up: (queryInterface, Sequelize) => { + return queryInterface.addColumn( + 'RealEstateRequests', + 'size', + { + type: Sequelize.ENUM, + values: ['50m2', '70m2', '100m2', '150m2', '200m2', 'moreThan200m2'] + } + ); + }, + + down: (queryInterface, Sequelize) => { + return queryInterface.removeColumn( + 'RealEstateRequests', + 'size' + ); + } +}; diff --git a/app/models/realestaterequest.js b/app/models/realestaterequest.js index 7162aee..2b1b584 100644 --- a/app/models/realestaterequest.js +++ b/app/models/realestaterequest.js @@ -13,6 +13,10 @@ module.exports = (sequelize, DataTypes) => { email: DataTypes.STRING, region: DataTypes.STRING, municipality: DataTypes.STRING, + size: { + type: DataTypes.ENUM, + values: ['50m2', '70m2', '100m2', '150m2', '200m2', 'moreThan200m2'] + } }, {}); RealEstateRequest.associate = function(models) { // associations can be defined here diff --git a/app/views/size.ejs b/app/views/size.ejs new file mode 100644 index 0000000..3b6c4fc --- /dev/null +++ b/app/views/size.ejs @@ -0,0 +1,32 @@ + +
+

Do koliko kvadrata tražite nekretninu ?

+
+ +
+
+
    + <% for(const size of sizes) { %> +
  • +
    <%= size.name %> + + send + +
    +
  • + <% } %> +
+ +
+
+ + + diff --git a/index.js b/index.js index e81c68b..3c92929 100644 --- a/index.js +++ b/index.js @@ -2,6 +2,7 @@ const welcome = require('./app/controllers/welcome').getWelcome; const { getRealEstateTypes, postRealEstateTypes} = require('./app/controllers/realEstateTypes'); const { getRegion, postRegion } = require('./app/controllers/regions'); const { getMunicipality, postMunicipality } = require('./app/controllers/municipalities'); +const { getSize, postSize } = require('./app/controllers/sizes'); let express = require("express"); const path = require("path"); @@ -121,6 +122,9 @@ app.post('/grad/:request_id', postRegion); app.get('/mjesto/:request_id', getMunicipality); app.post('/mjesto/:request_id', postMunicipality); +app.get('/povrsina/:request_id', getSize); +app.post('/povrsina/:request_id', postSize); + app.use('/assets', express.static('./app/public'));