From d44c0f376978b643171268db73d5e499669ea156 Mon Sep 17 00:00:00 2001 From: Paolo Arena Date: Thu, 25 Apr 2019 00:30:19 +0200 Subject: [PATCH] - Projects: Shared / Personal --- server/models/project.js | 38 ++++++++++++++++++++++++++++++++------ server/models/todo.js | 26 +++++++++++++++++--------- 2 files changed, 49 insertions(+), 15 deletions(-) diff --git a/server/models/project.js b/server/models/project.js index a70c2a2..a26c99f 100644 --- a/server/models/project.js +++ b/server/models/project.js @@ -221,19 +221,45 @@ ProjectSchema.statics.getIdParentByIdProj = function (idProj) { }; +ProjectSchema.statics.creaProjMain = async function () { + + const projmain = { + descr: process.env.PROJECT_DESCR_MAIN, + longdescr: process.env.PROJECT_DESCR_MAIN, + typeproj: 1, + id_main_project: null, + id_parent: null, + privacyread: server_constants.Privacy.all + }; + + return await new Project(projmain).save() + .then(ris => { + console.log('ris', ris); + if (!!ris) + return ris._doc; + else + return null; + }); + +}; + ProjectSchema.statics.getAllProjects = async function (userId) { var Project = this; // console.log('getAllProjects'); let obj = []; - const projbase = await Project.findById(process.env.PROJECT_ID_MAIN) + const projbase = await Project.findOne( { descr: process.env.PROJECT_DESCR_MAIN }) .then(ris => { - // console.log('ris', ris); - if (!!ris._doc) - return ris._doc; - else - return null; + if (!!ris) { + // console.log('ris', ris); + if (!!ris._doc) + return ris._doc; + else + return null; + }else { + return Project.creaProjMain(); + } }); obj.arrproj = await Project.findAllProjByUserId(userId); diff --git a/server/models/todo.js b/server/models/todo.js index 17c44dc..9ca5352 100644 --- a/server/models/todo.js +++ b/server/models/todo.js @@ -245,7 +245,7 @@ function logtodo(myarr) { function getarrlog(myarr) { let mystr = ""; - for (const indcat in myarr){ + for (const indcat in myarr) { mystr += indcat + ': \n'; for (const indelem in myarr[indcat]) { mystr += ' [' + indelem + '] ' + getelem(myarr[indcat][indelem]) + '\n'; @@ -274,7 +274,7 @@ class CalcTodo { addDataProj(datain) { if (!!datain) { if (datain.actualphase === this.mydata.phase) { - CalcTodo.addFields(this.mydata, datain); + CalcTodo.addFields(this.mydata, datain, true); } } } @@ -282,19 +282,20 @@ class CalcTodo { addDataTodo(datain) { if (!!datain) { if (datain.phase === this.mydata.phase) { - CalcTodo.addFields(this.mydata, datain); + CalcTodo.addFields(this.mydata, datain, false); } } } - static addFields(recout, recin) { + static addFields(recout, recin, isproj) { // console.log('addFields', recin); recout.hoursworked += recin.hoursworked; recout.hoursplanned += recin.hoursplanned; - if (!!recin.progressCalc) + if (recin.progress === undefined) { recout.progressCalc += recin.progressCalc; - else + } else { recout.progressCalc += recin.progress; + } recout.numitem++; } @@ -302,10 +303,15 @@ class CalcTodo { static copyFields(recout, recin) { recout.hoursworked = recin.hoursworked; recout.hoursplanned = recin.hoursplanned; - if (!!recin.progressCalc) + if (recin.progress === undefined) recout.progressCalc = recin.progressCalc; - else - recout.progressCalc = 0; + else { + if (!!recin.progressCalc) + recout.progressCalc = recin.progressCalc; + else + recout.progressCalc = 0; + } + } setValuesToRecord(objout) { @@ -316,6 +322,7 @@ class CalcTodo { if (this.mydata.numitem > 0) { this.mydata.progressCalc = Math.round(this.mydata.progressCalc / this.mydata.numitem); } + console.log('this.mydata.progressCalc', this.mydata.progressCalc) } getData() { @@ -420,6 +427,7 @@ TodoSchema.statics.calculateTodoHoursAndProgress = async function (userId, idpro objdata.endDataCalc(); + return objdata.getData(); }) .catch(e => {