From c652a306db8add6dfd7b6999dcd2920fb81b5601 Mon Sep 17 00:00:00 2001 From: Bilal Catic Date: Fri, 17 May 2019 11:32:41 +0200 Subject: [PATCH] add price screen --- app/controllers/gardenSizes.js | 3 +- app/controllers/prices.js | 30 +++++++++++++++++ ...092716-add-price-to-real-estate-request.js | 21 ++++++++++++ app/models/realestaterequest.js | 4 +++ app/views/price.ejs | 32 +++++++++++++++++++ index.js | 4 +++ 6 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 app/controllers/prices.js create mode 100644 app/migrations/20190517092716-add-price-to-real-estate-request.js create mode 100644 app/views/price.ejs diff --git a/app/controllers/gardenSizes.js b/app/controllers/gardenSizes.js index d7477f9..ef98bfc 100644 --- a/app/controllers/gardenSizes.js +++ b/app/controllers/gardenSizes.js @@ -19,9 +19,10 @@ const getGardenSize = (req,res) => { const postGardenSize = async (req, res) => { const request = await currentRERequest(req); + const nextStep = req.query.nextStep || `/cijena/${request.uniqueId}`; request.gardenSize = req.body.gardensize; await request.save(); - res.send("Result is " + JSON.stringify(request)); + res.redirect(nextStep); }; module.exports = { diff --git a/app/controllers/prices.js b/app/controllers/prices.js new file mode 100644 index 0000000..640f8f8 --- /dev/null +++ b/app/controllers/prices.js @@ -0,0 +1,30 @@ +const { currentRERequest } = require('../helpers/url'); + +const prices = [ + { name: "do 50 000 KM", id: "50kKM" }, + { name: "do 100 000 KM", id: "100kKM" }, + { name: "do 150 000 KM", id: "150kKM" }, + { name: "do 200 000 KM", id: "200kKM" }, + { name: "do 250 000 KM", id: "250kKM" }, + { name: "preko 250 000 KM", id: "moreThan250kKM" } +]; + +const getPrice = (req,res) => { + const nextStep = req.query.nextStep; + res.render('price', { + nextStep, + prices + }); +}; + +const postPrice = async (req, res) => { + const request = await currentRERequest(req); + request.price = req.body.price; + await request.save(); + res.send("Result is " + JSON.stringify(request)); +}; + +module.exports = { + getPrice, + postPrice +}; diff --git a/app/migrations/20190517092716-add-price-to-real-estate-request.js b/app/migrations/20190517092716-add-price-to-real-estate-request.js new file mode 100644 index 0000000..87b2d18 --- /dev/null +++ b/app/migrations/20190517092716-add-price-to-real-estate-request.js @@ -0,0 +1,21 @@ +'use strict'; + +module.exports = { + up: (queryInterface, Sequelize) => { + return queryInterface.addColumn( + 'RealEstateRequests', + 'price', + { + type: Sequelize.ENUM, + values: ['50kKM', '100kKM', '150kKM', '200kKM', '250kKM', 'moreThan250kKM'] + } + ); + }, + + down: (queryInterface, Sequelize) => { + return queryInterface.removeColumn( + 'RealEstateRequests', + 'price' + ); + } +}; diff --git a/app/models/realestaterequest.js b/app/models/realestaterequest.js index 0ecf69f..3cfa511 100644 --- a/app/models/realestaterequest.js +++ b/app/models/realestaterequest.js @@ -20,6 +20,10 @@ module.exports = (sequelize, DataTypes) => { gardenSize: { type: DataTypes.ENUM, values: ['100m2', '500m2', '1000m2', '2000m2', '3000m2', 'moreThan3000m2'] + }, + price: { + type: DataTypes.ENUM, + values: ['50kKM', '100kKM', '150kKM', '200kKM', '250kKM', 'moreThan250kKM'] } }, {}); RealEstateRequest.associate = function(models) { diff --git a/app/views/price.ejs b/app/views/price.ejs new file mode 100644 index 0000000..e65e343 --- /dev/null +++ b/app/views/price.ejs @@ -0,0 +1,32 @@ + +
+

Koja Vam okvirna cijena odgovara ?

+
+ +
+
+
    + <% for(const price of prices) { %> +
  • +
    <%= price.name %> + + send + +
    +
  • + <% } %> +
+ +
+
+ + + diff --git a/index.js b/index.js index d3aead6..bbeb5e4 100644 --- a/index.js +++ b/index.js @@ -4,6 +4,7 @@ const { getRegion, postRegion } = require('./app/controllers/regions'); const { getMunicipality, postMunicipality } = require('./app/controllers/municipalities'); const { getSize, postSize } = require('./app/controllers/sizes'); const { getGardenSize, postGardenSize } = require('./app/controllers/gardenSizes'); +const { getPrice, postPrice } = require('./app/controllers/prices'); let express = require("express"); const path = require("path"); @@ -129,6 +130,9 @@ app.post('/povrsina/:request_id', postSize); app.get('/okucnica/:request_id', getGardenSize); app.post('/okucnica/:request_id', postGardenSize); +app.get('/cijena/:request_id', getPrice); +app.post('/cijena/:request_id', postPrice); + app.use('/assets', express.static('./app/public'));