From b587b5e0a7c880e1b83ca017e5fa30a1bcabf909 Mon Sep 17 00:00:00 2001 From: paoloar77 Date: Fri, 31 Dec 2021 01:44:28 +0100 Subject: [PATCH] - select specializz. --- src/server/models/myskill.js | 5 ++ src/server/models/subskill.js | 81 +++++++++++++++++++++++++++++++ src/server/router/index_router.js | 12 +++-- src/server/tools/general.js | 3 ++ src/server/tools/shared_nodejs.js | 2 +- 5 files changed, 99 insertions(+), 4 deletions(-) create mode 100755 src/server/models/subskill.js diff --git a/src/server/models/myskill.js b/src/server/models/myskill.js index 261b89c..1a53e1b 100755 --- a/src/server/models/myskill.js +++ b/src/server/models/myskill.js @@ -26,6 +26,11 @@ const MySkillSchema = new Schema({ type: Number, default: 0, }, + idSubSkill: [ + { + type: Number, + default: 0, + }], idStatusSkill: [ { type: Number, diff --git a/src/server/models/subskill.js b/src/server/models/subskill.js new file mode 100755 index 0000000..2d378cc --- /dev/null +++ b/src/server/models/subskill.js @@ -0,0 +1,81 @@ +const mongoose = require('mongoose').set('debug', false) +const Schema = mongoose.Schema; + +mongoose.Promise = global.Promise; +mongoose.level = "F"; + +const tools = require('../tools/general'); + +const { ObjectID } = require('mongodb'); + +// Resolving error Unknown modifier: $pushAll +mongoose.plugin(schema => { + schema.options.usePushEach = true +}); + +const SubSkillSchema = new Schema({ + _id: { + type: Number, + }, + idSkill: { + type: Number, + }, + descr: { + type: String, + }, + icon: { + type: String, + }, + img: { + type: String, + }, +}); + +SubSkillSchema.statics.findAllIdApp = async function (idapp) { + const SubSkill = this; + + const query = [ + { $sort: { descr: 1 } } + ]; + + return SubSkill + .aggregate(query) + .then((arrrec) => { + return arrrec + }) + +}; + +SubSkillSchema.pre('save', async function (next) { + if (this.isNew) { + const myrec = await SubSkill.findOne().limit(1).sort({_id:-1}); + if (!!myrec) { + if (myrec._doc._id === 0) + this._id = 1; + else + this._id = myrec._doc._id + 1; + + } else { + this._id = 1; + } + } + + next(); +}); + + + +SubSkillSchema.statics.getFieldsForSearch = function () { + return [{ field: 'label', type: tools.FieldType.string }, + { field: 'descr', type: tools.FieldType.string }] +}; + +SubSkillSchema.statics.executeQueryTable = function (idapp, params) { + params.fieldsearch = this.getFieldsForSearch(); + return tools.executeQueryTable(this, 0, params); +}; + + +const SubSkill = mongoose.model('SubSkill', SubSkillSchema); + +module.exports = { SubSkill }; diff --git a/src/server/router/index_router.js b/src/server/router/index_router.js index 90f3e0e..5748e3d 100755 --- a/src/server/router/index_router.js +++ b/src/server/router/index_router.js @@ -44,6 +44,7 @@ const {Contribtype} = require('../models/contribtype'); const {PaymentType} = require('../models/paymenttype'); const {Discipline} = require('../models/discipline'); const {Skill} = require('../models/skill'); +const {SubSkill} = require('../models/subskill'); const {MySkill} = require('../models/myskill'); const {StatusSkill} = require('../models/statusSkill'); const {City} = require('../models/city'); @@ -304,6 +305,8 @@ function getTableByTableName(tablename) { mytable = Graduatoria; else if (tablename === 'skills') mytable = Skill; + else if (tablename === 'subskills') + mytable = SubSkill; else if (tablename === 'myskills') mytable = MySkill; else if (tablename === 'statusSkills') @@ -1300,6 +1303,7 @@ function load(req, res, version) { // SKILLS: let levels = Level.findAllIdApp(idapp); let skills = Skill.findAllIdApp(idapp); + let subSkills = SubSkill.findAllIdApp(idapp); let statusSkills = StatusSkill.findAllIdApp(idapp); let sectors = Sector.findAllIdApp(idapp); let cities = City.findAllIdApp(idapp); @@ -1348,6 +1352,7 @@ function load(req, res, version) { internalpages, levels, skills, + subSkills, sectors, statusSkills, cities]).then((arrdata) => { @@ -1412,9 +1417,10 @@ function load(req, res, version) { internalpages: arrdata[23], levels: arrdata[24], skills: arrdata[25], - sectors: arrdata[26], - statusSkills: arrdata[27], - cities: arrdata[28], + subSkills: arrdata[26], + sectors: arrdata[27], + statusSkills: arrdata[28], + cities: arrdata[29], }); } diff --git a/src/server/tools/general.js b/src/server/tools/general.js index 0b2a6d5..5ad8da1 100755 --- a/src/server/tools/general.js +++ b/src/server/tools/general.js @@ -1261,6 +1261,9 @@ module.exports = { const q3 = this.getLookup(params.lookup3, 3, proj); if (q3) query = [...query, ...q3]; + const q4 = this.getLookup(params.lookup4, 4, proj); + if (q4) query = [...query, ...q4]; + if (params.filtersearch2.length > 0) { query.push({$match: {$and: params.filtersearch2}}); } diff --git a/src/server/tools/shared_nodejs.js b/src/server/tools/shared_nodejs.js index 0c7cc68..57a7f13 100755 --- a/src/server/tools/shared_nodejs.js +++ b/src/server/tools/shared_nodejs.js @@ -51,7 +51,7 @@ module.exports = { 'In Contanti alla CNM' ], - TABLES_ID_NUMBER: ['permissions', 'levels', 'statusSkills', 'sectors', 'skills', 'cities', 'myskills'], + TABLES_ID_NUMBER: ['permissions', 'levels', 'statusSkills', 'sectors', 'skills', 'subskills', 'cities', 'myskills'], TABLES_USER_ID: ['myskills'], TABLES_UPDATE_LASTMODIFIED: ['myskills', 'mybots'],