Skip to content

Commit

Permalink
fix bug
Browse files Browse the repository at this point in the history
  • Loading branch information
bazzil29 committed Dec 27, 2018
1 parent 8c4caf2 commit 1ca3dfa
Show file tree
Hide file tree
Showing 4 changed files with 114 additions and 32 deletions.
33 changes: 32 additions & 1 deletion controller/admin.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,11 @@ const Teacher = require('../models/teacher.model');
const StudentSurvey = require('../models/studentSurvey.model');
const ClassSurvey = require('../models/classSurvey.model');
const SurveyTemplate = require('../models/surveyTemplate.model');

const fileHandler = require('../common/xlsxHandler');
const response = require('../common/response');
const surveyChecker = require('../common/validateSurvey');



const uuidv4 = require('uuid');
Expand Down Expand Up @@ -344,13 +347,35 @@ module.exports = {
const { classId } = req.params;
const classTmp = await Class.findById(classId);
const classSurvey = await ClassSurvey.findById(classId);
const studentSurveys = await StudentSurvey.find({ class: classId });
const comments = [];

let count = 0;

studentSurveys.forEach(e => {
if (surveyChecker.verify(e)) {
count++;
}
})


if (studentSurveys) {
studentSurveys.forEach(e => {
if (!!e.comment) {
comments.push(e.comment);
}
})
}

const classSurveyTmp = {
name: classTmp.name,
group_fields: classSurvey.group_fields,
last_modify: classSurvey.last_modify,
deadline: classSurvey.deadline,
create_at: classSurvey.create_at,
_id: classSurvey._id
_id: classSurvey._id,
comments: comments,
count_of_students: count
};
response.success(res, classSurveyTmp)
}
Expand All @@ -366,6 +391,12 @@ module.exports = {
await ClassSurvey.findByIdAndDelete(classId);
const students = await User.find({ role_id: 3 });
const teachers = await User.find({ role_id: 2 });
for (let i = 0; i < students.length; i++) {
for (let j = 0; i < students[i].class.length; j++) {
await StudentSurvey.findByIdAndDelete(students[i].class[j].survey_student);
}
}

students.forEach(e => {
for (let i = 0; i < e.class.length; i++) {
if (e.class[i].id === classId) {
Expand Down
80 changes: 55 additions & 25 deletions controller/common/survey.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ const StudentSurvey = require('../../models/studentSurvey.model');
const SurveyTemplate = require('../../models/surveyTemplate.model');
const Survey = require('../../models/classSurvey.model');

const surveyChecker = require('../../common/validateSurvey');
const uuidv4 = require('uuid');

const renderValue = (field) => {
Expand Down Expand Up @@ -201,23 +202,37 @@ module.exports = {
const studentSurveys = await StudentSurvey.find({ class: { $regex: regex } });
const result = [];

let count = 0;

studentSurveys.forEach(e => {
if (surveyChecker.verify(e)) {
count++;
}
})

count = count === 0 ? 1 : count;


for (let j = 0; j < studentSurveys[0].group_fields.length; j++) {
result[j] = [];
for (let k = 0; k < studentSurveys[0].group_fields[j].fields.length; k++) {
result[j][k] = {
total: 0,
total_s: 0,
count: studentSurveys.length,
count: count,
M: 0,
STD: 0
STD: 0,
count_x: studentSurveys.length
}
}
}

for (let i = 0; i < studentSurveys.length; i++) {
for (let j = 0; j < studentSurveys[i].group_fields.length; j++) {
for (let k = 0; k < studentSurveys[i].group_fields[j].fields.length; k++) {
result[j][k].total += studentSurveys[i].group_fields[j].fields[k].value;
if (surveyChecker.verify(studentSurveys[i])) {
for (let j = 0; j < studentSurveys[i].group_fields.length; j++) {
for (let k = 0; k < studentSurveys[i].group_fields[j].fields.length; k++) {
result[j][k].total += studentSurveys[i].group_fields[j].fields[k].value;
}
}
}
}
Expand All @@ -233,13 +248,15 @@ module.exports = {


for (let i = 0; i < studentSurveys.length; i++) {
for (let j = 0; j < studentSurveys[i].group_fields.length; j++) {
for (let k = 0; k < studentSurveys[i].group_fields[j].fields.length; k++) {
if (studentSurveys[i].group_fields[j].fields[k].value >= result[j][k].M) {
result[j][k].total_s += Math.pow(Math.abs(studentSurveys[i].group_fields[j].fields[k].value - result[j][k].M), 2);

} else {
result[j][k].total_s += Math.pow(result[j][k].M - studentSurveys[i].group_fields[j].fields[k].value, 2);
if (surveyChecker.verify(studentSurveys[i])) {
for (let j = 0; j < studentSurveys[i].group_fields.length; j++) {
for (let k = 0; k < studentSurveys[i].group_fields[j].fields.length; k++) {
if (studentSurveys[i].group_fields[j].fields[k].value >= result[j][k].M) {
result[j][k].total_s += Math.pow(Math.abs(studentSurveys[i].group_fields[j].fields[k].value - result[j][k].M), 2);

} else {
result[j][k].total_s += Math.pow(result[j][k].M - studentSurveys[i].group_fields[j].fields[k].value, 2);
}
}
}
}
Expand All @@ -263,24 +280,35 @@ module.exports = {
studentSurveys.push(...studentSurveysTmp);
}
const result = [];
console.log(studentSurveys);
let count = 0;

studentSurveys.forEach(e => {
if (surveyChecker.verify(e)) {
count++;
}
})

count = count === 0 ? 1 : count;

for (let j = 0; j < studentSurveys[0].group_fields.length; j++) {
result[j] = [];
for (let k = 0; k < studentSurveys[0].group_fields[j].fields.length; k++) {
result[j][k] = {
total: 0,
total_s: 0,
count: studentSurveys.length,
count: count,
M: 0,
STD: 0
STD: 0,
}
}
}

for (let i = 0; i < studentSurveys.length; i++) {
for (let j = 0; j < studentSurveys[i].group_fields.length; j++) {
for (let k = 0; k < studentSurveys[i].group_fields[j].fields.length; k++) {
result[j][k].total += studentSurveys[i].group_fields[j].fields[k].value;
if (surveyChecker.verify(studentSurveys[i])) {
for (let j = 0; j < studentSurveys[i].group_fields.length; j++) {
for (let k = 0; k < studentSurveys[i].group_fields[j].fields.length; k++) {
result[j][k].total += studentSurveys[i].group_fields[j].fields[k].value;
}
}
}
}
Expand All @@ -296,13 +324,15 @@ module.exports = {


for (let i = 0; i < studentSurveys.length; i++) {
for (let j = 0; j < studentSurveys[i].group_fields.length; j++) {
for (let k = 0; k < studentSurveys[i].group_fields[j].fields.length; k++) {
if (studentSurveys[i].group_fields[j].fields[k].value >= result[j][k].M) {
result[j][k].total_s += Math.pow(Math.abs(studentSurveys[i].group_fields[j].fields[k].value - result[j][k].M), 2);

} else {
result[j][k].total_s += Math.pow(result[j][k].M - studentSurveys[i].group_fields[j].fields[k].value, 2);
if (surveyChecker.verify(studentSurveys[i])) {
for (let j = 0; j < studentSurveys[i].group_fields.length; j++) {
for (let k = 0; k < studentSurveys[i].group_fields[j].fields.length; k++) {
if (studentSurveys[i].group_fields[j].fields[k].value >= result[j][k].M) {
result[j][k].total_s += Math.pow(Math.abs(studentSurveys[i].group_fields[j].fields[k].value - result[j][k].M), 2);

} else {
result[j][k].total_s += Math.pow(result[j][k].M - studentSurveys[i].group_fields[j].fields[k].value, 2);
}
}
}
}
Expand Down
8 changes: 3 additions & 5 deletions controller/student.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ module.exports = {
updateSurvey: async (req, res) => {
try {
const { userId, classId } = req.params;
const { survey: surveyReq } = req.body;
const { survey: surveyReq, comment } = req.body;
const classSameType = classId.split(' ')[0];
const student = await User.findById(userId);
const classTmp = student.class.find(e => e.id === classId);
Expand All @@ -59,11 +59,11 @@ module.exports = {
const d = new Date();
surveyStudent.set({
group_fields: surveyReq,
modify_at: d.getTime()
modify_at: d.getTime(),
comment: comment
})

if (surveyChecker.verify(surveyStudent)) {

surveyStudent.save(async err => {
const class_temp = await Class.findById(classId);
const teacher = await User.findById(class_temp.teacher);
Expand Down Expand Up @@ -94,8 +94,6 @@ module.exports = {
// console.log(classSurvey.group_fields[0].fields[0])
response.success(res);
})


}

} catch (err) {
Expand Down
25 changes: 24 additions & 1 deletion controller/teacher.controller.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
const User = require('../models/users.models');
const ClassSurvey = require('../models/classSurvey.model');
const Class = require('../models/class.model');
const StudentSurvey = require('../models/studentSurvey.model');

const response = require('../common/response');

module.exports = {
Expand Down Expand Up @@ -37,10 +39,31 @@ module.exports = {
const teacher = await User.findById(userId);
const teacherClasses = teacher.class;
const isHaveClass = teacherClasses.find(e => e.id === classId);
const studentSurveys = await StudentSurvey.find({ class: classId });
const comments = [];

if (studentSurveys) {
studentSurveys.forEach(e => {
if (!!e.comment) {
comments.push(e.comment);
}
})
}

if (isHaveClass) {
const classSurvey = await ClassSurvey.findById(classId);
console.log(classSurvey);
response.success(res, classSurvey);
const classSurveyTmp = {
_id: classSurvey._id,
group_fields: classSurvey.group_fields,
class: classSurvey.class,
create_at: classSurvey.create_at,
last_modify: classSurvey.last_modify,
deadline: classSurvey.deadline,
comments: comments,
count_of_students: studentSurveys.length
}
response.success(res, classSurveyTmp);
}
}
catch (err) {
Expand Down

0 comments on commit 1ca3dfa

Please sign in to comment.