From 808b5dc6375532dbf8bab7d3d2ed634598465074 Mon Sep 17 00:00:00 2001 From: vkr96 Date: Sat, 22 Apr 2017 21:05:37 -0400 Subject: [PATCH 1/9] Added button and creator attribute --- client/app/courses/view/courseview.controller.js | 9 +++++++++ client/app/courses/view/courseview.html | 1 + client/components/courseform/courseform.controller.js | 7 ++++++- server/api/course/course.controller.js | 11 +++++++++++ server/api/course/course.model.js | 9 +++++++++ server/api/course/index.js | 1 + 6 files changed, 37 insertions(+), 1 deletion(-) diff --git a/client/app/courses/view/courseview.controller.js b/client/app/courses/view/courseview.controller.js index 4b3a38f3..25a76c27 100644 --- a/client/app/courses/view/courseview.controller.js +++ b/client/app/courses/view/courseview.controller.js @@ -5,6 +5,9 @@ export default class CourseViewCtrl { constructor($scope, $location, $http, $routeParams, Auth, User, Course, Section) { $scope.isStudent = false; $scope.isInstructor = false; + $scope.same_creator = false; + $scope.once = 1; + var creator; Auth.getCurrentUser((user) => { $scope.user = user; if (user.hasOwnProperty('role')){ @@ -27,6 +30,9 @@ export default class CourseViewCtrl { $scope.editCourse = function(){ return "/courses/"+ $routeParams.id + "/edit"; }; + $scope.deleteCourse = function(){ + return "/courses/"+$routeParams.id +"/delete" + }; $scope.editSection = function(section){ return "/courses/"+ $routeParams.id + "/sections/" + section._id + "/edit" @@ -55,6 +61,9 @@ export default class CourseViewCtrl { }, course => { $scope.course = course; $scope.coursesLoaded = true; + if($scope.course.creator == $scope.user._id){ + $scope.same_creator = true; + } }, () =>{ $location.path('/courses') }); diff --git a/client/app/courses/view/courseview.html b/client/app/courses/view/courseview.html index e42d4ad7..b0c4112a 100644 --- a/client/app/courses/view/courseview.html +++ b/client/app/courses/view/courseview.html @@ -31,6 +31,7 @@

Course Control

Edit Course + Delete Course

diff --git a/client/components/courseform/courseform.controller.js b/client/components/courseform/courseform.controller.js index 4b781fd6..e7e3c56f 100644 --- a/client/components/courseform/courseform.controller.js +++ b/client/components/courseform/courseform.controller.js @@ -1,5 +1,5 @@ 'use strict'; -export function CourseFormCtrl ($scope, Course, Upload){ +export function CourseFormCtrl ($scope, Course, Upload, Auth, $routeParams){ "ngInject"; $scope.courseCreated = false; $scope.submitForm = (form)=>{ @@ -21,6 +21,10 @@ export function CourseFormCtrl ($scope, Course, Upload){ }else{ // promise = Course.create($scope.course).$promise; $scope.course.files = [$scope.file]; + Auth.getCurrentUser().then((user)=>{ + $scope.course.creator = user._id; + }); + promise = Upload.upload({ url: '/api/courses/', data: $scope.course, @@ -47,4 +51,5 @@ export function CourseFormCtrl ($scope, Course, Upload){ }); } }; + }; diff --git a/server/api/course/course.controller.js b/server/api/course/course.controller.js index a6496a50..5f601a32 100644 --- a/server/api/course/course.controller.js +++ b/server/api/course/course.controller.js @@ -137,6 +137,7 @@ export function create(req: $ExtRequest, res: $Response) { else{ course.semester = "Fall" + (date.getFullYear() - 100).toString(); } + course.creator = req.user._id; Course.createAsync(course) .then(responseWithResult(res, 201)) .catch(handleError(res)); @@ -199,3 +200,13 @@ export function imageSize(req: $Request, res: $Response){ req.query.size = req.params.size; return exports.image(req, res); }; +export function check(req: $Request, res: $Response){ + Course.findByIdAsync(req.params.courseid,'creator') + .then((course)=>{ + var is_creator = course.checkCreator(req.params.studentid); + return + }) + .catch(function(err){ + handleEntityNotFound(res); + }) +}; diff --git a/server/api/course/course.model.js b/server/api/course/course.model.js index 14ee4d1c..2ea640ce 100644 --- a/server/api/course/course.model.js +++ b/server/api/course/course.model.js @@ -5,11 +5,13 @@ var Schema = mongoose.Schema; import Section from '../section/section.model'; import async from 'async'; +import User from '../user/user.model'; var CourseSchema = new Schema({ name: String, department: String, courseNumber: Number, + creator: {type:Schema.Types.ObjectId, ref: 'User'}, description: String, semester: String, active: Boolean, @@ -21,6 +23,13 @@ var CourseSchema = new Schema({ */ CourseSchema.methods = { + checkCreator(userId){ + if(userId == this.creator._id){ + return true; + } + return false; + }, + getRelatedUsers(){ return Section.findAsync({course:this._id}) .then(sections =>{ diff --git a/server/api/course/index.js b/server/api/course/index.js index c51a7d17..090a977e 100644 --- a/server/api/course/index.js +++ b/server/api/course/index.js @@ -15,6 +15,7 @@ router.get('/', controller.index); router.get('/image/:name', controller.image); router.get('/image/:size/:name', controller.imageSize); router.get('/:id', controller.show); +router.get('/:courseId/checkcreator/:creatorID', auth.isInstructor(),controller.check); router.post('/', auth.isInstructor(), upload.array('files[0]'), controller.create); router.put('/:id', auth.isInstructor(), upload.array('files[0]'), controller.update); router.patch('/:id', auth.isInstructor(), upload.array('files[0]'), controller.update); From d2e9f51672ee9872b5d867d0d873fa05330a3b53 Mon Sep 17 00:00:00 2001 From: vkr96 Date: Tue, 25 Apr 2017 23:53:57 -0400 Subject: [PATCH 2/9] Added sweetalert dependency, simple, untested delete functionality works for a single course --- client/app/app.js | 7 +++--- client/app/app.less | 1 + client/app/courses/index.js | 2 +- .../app/courses/view/courseview.controller.js | 24 +++++++++++++++++-- client/app/courses/view/courseview.html | 2 +- client/app/courses/view/index.js | 1 + package.json | 3 +++ server/api/course/course.controller.js | 2 ++ webpack.make.js | 1 + 9 files changed, 36 insertions(+), 7 deletions(-) diff --git a/client/app/app.js b/client/app/app.js index bd2e938a..846fee5c 100644 --- a/client/app/app.js +++ b/client/app/app.js @@ -5,6 +5,7 @@ import ngAnimate from 'angular-animate'; import ngCookies from 'angular-cookies'; import ngResource from 'angular-resource'; import ngSanitize from 'angular-sanitize'; +import ngSweetAlert from 'angular-sweetalert'; import 'angular-socket-io'; const ngRoute = require('angular-route'); @@ -65,7 +66,6 @@ import courseform from '../components/courseform/courseform.directive'; import pictureBanner from '../components/pictureBanner/pictureBanner.directive'; import eventForm from '../components/eventform/eventform.module' - import './app.less'; angular.module('venueApp', [ @@ -73,13 +73,14 @@ angular.module('venueApp', [ ngResource, ngSanitize, 'btford.socket-io', ngRoute, uiBootstrap, ngAnimate, ngMessages, ngValidationMatch, - ngFileUpload, ngCsv, + ngFileUpload,ngCsv, // 'geolocation', 'dibari.angular-ellipsis', 'ui.bootstrap.datetimepicker', 'uiGmapgoogle-maps', - + 'oitozero.ngSweetAlert', + _CourseFactory, _SectionEventFactory, _EventInfoFactory, diff --git a/client/app/app.less b/client/app/app.less index 8a243600..92bbc005 100644 --- a/client/app/app.less +++ b/client/app/app.less @@ -1,6 +1,7 @@ @import '~bootstrap/less/bootstrap.less'; @import '~bootstrap-social/bootstrap-social.less'; @import '~font-awesome/less/font-awesome.less'; +@import '../../node_modules/sweetalert/dist/sweetalert.css'; @colorPurple: #911BC4; @colorBlue: #1DAEEB; diff --git a/client/app/courses/index.js b/client/app/courses/index.js index ebb34138..268aa4d6 100644 --- a/client/app/courses/index.js +++ b/client/app/courses/index.js @@ -7,6 +7,6 @@ import search from './search'; import sections from './sections'; import view from './view'; -export default angular.module('venueApp.courses', ['venueApp.auth', 'venueApp.CourseFactory', ngRoute, edit, search, sections, view ]) +export default angular.module('venueApp.courses', ['venueApp.auth', 'venueApp.CourseFactory', ngRoute, edit, search, sections, view , 'oitozero.ngSweetAlert']) .config(routing) .name; diff --git a/client/app/courses/view/courseview.controller.js b/client/app/courses/view/courseview.controller.js index 25a76c27..a98c3ba6 100644 --- a/client/app/courses/view/courseview.controller.js +++ b/client/app/courses/view/courseview.controller.js @@ -2,7 +2,7 @@ export default class CourseViewCtrl { /*@ngInject*/ - constructor($scope, $location, $http, $routeParams, Auth, User, Course, Section) { + constructor($scope, $location, $http, $routeParams, Auth, User, Course, Section,SweetAlert){ $scope.isStudent = false; $scope.isInstructor = false; $scope.same_creator = false; @@ -31,7 +31,27 @@ export default class CourseViewCtrl { return "/courses/"+ $routeParams.id + "/edit"; }; $scope.deleteCourse = function(){ - return "/courses/"+$routeParams.id +"/delete" + + var courseid = $routeParams.id; + SweetAlert.swal({ + title: "Are you sure?", + text: "Your will not be able to recover this course!", + type: "warning", + showCancelButton: true, + confirmButtonColor: "#DD6B55",confirmButtonText: "Yes, delete the course!", + cancelButtonText: "Cancel", + closeOnConfirm: false, + closeOnCancel: false }, + function(isConfirm){ + if (isConfirm) { + SweetAlert.swal("Deleted!", "Your course has been deleted.", "success"); + Course.delete({id: courseid}, (res) => { + $location.path("/instructor/dashboard"); + }) + } else { + SweetAlert.swal("Cancelled", "Course is not deleted.", "error"); + } + }); }; $scope.editSection = function(section){ diff --git a/client/app/courses/view/courseview.html b/client/app/courses/view/courseview.html index b0c4112a..8fa7ee19 100644 --- a/client/app/courses/view/courseview.html +++ b/client/app/courses/view/courseview.html @@ -31,7 +31,7 @@

Course Control


diff --git a/client/app/courses/view/index.js b/client/app/courses/view/index.js index 53d1a79e..2c4f2b9c 100644 --- a/client/app/courses/view/index.js +++ b/client/app/courses/view/index.js @@ -1,6 +1,7 @@ 'use strict'; import CourseViewCtrl from './courseview.controller'; +import ngSweetAlert from 'angular-sweetalert'; export default angular.module('venueApp.courseview', ['venueApp.auth', 'venueApp.CourseFactory','venueApp.SectionFactory', 'directives.courseTitleBanner']) .controller('CourseViewCtrl', CourseViewCtrl) diff --git a/package.json b/package.json index 44fa3968..c70ecbbf 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,8 @@ "angular-sanitize": "~1.5.5", "angular-simple-logger": "^0.1.7", "angular-socket-io": "~0.7.0", + "angular-sweet-alert": "^1.1.3", + "angular-sweetalert": "^1.1.2", "angular-ui-bootstrap": "^2.0.1", "angular-validation-match": "^1.9.0", "angularjs-geolocation": "^0.1.3", @@ -65,6 +67,7 @@ "ng-annotate": "^1.2.1", "ng-csv": "^0.3.6", "ng-file-upload": "^12.0.4", + "ng-sweet-alert": "^1.0.11", "node-uuid": "^1.4.7", "node-zopfli": "^2.0.1", "nodemailer": "^2.5.0", diff --git a/server/api/course/course.controller.js b/server/api/course/course.controller.js index 5f601a32..af37ea14 100644 --- a/server/api/course/course.controller.js +++ b/server/api/course/course.controller.js @@ -12,6 +12,7 @@ import _ from 'lodash'; import Course from './course.model'; +import Section from '../section/section.model.js'; import fs from 'fs'; import mkdirp from 'mkdirp'; import config from '../../config/environment'; @@ -45,6 +46,7 @@ function handleEntityNotFound(res: $Response) { res.status(404).json({}); return null; } + console.log("ERROR"); return entity; }; } diff --git a/webpack.make.js b/webpack.make.js index 68eeb72c..be268874 100644 --- a/webpack.make.js +++ b/webpack.make.js @@ -54,6 +54,7 @@ module.exports = function makeWebpackConfig(options) { 'angular-simple-logger', 'angular-socket-io', 'angular-validation-match', + 'angular-sweetalert', // 'webpack-bootstrap', 'bootstrap-social', 'bootstrap-ui-datetime-picker', From 5685a903392fdab47883eec40165dff9796764a9 Mon Sep 17 00:00:00 2001 From: vkr96 Date: Wed, 26 Apr 2017 22:51:58 -0400 Subject: [PATCH 3/9] Delete function removes all sections before deleting course --- server/api/course/course.controller.js | 21 ++++++++++++++++----- server/config/seed.js | 6 ++++++ 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/server/api/course/course.controller.js b/server/api/course/course.controller.js index af37ea14..e62edaee 100644 --- a/server/api/course/course.controller.js +++ b/server/api/course/course.controller.js @@ -46,7 +46,6 @@ function handleEntityNotFound(res: $Response) { res.status(404).json({}); return null; } - console.log("ERROR"); return entity; }; } @@ -176,10 +175,22 @@ export function update(req: $Request, res: $Response) { // Deletes a Course from the DB export function destroy(req: $Request, res: $Response) { Course.findByIdAsync(req.params.id) - .then(handleEntityNotFound(res)) - .then(removeEntity(res)) - .catch(handleError(res)); -}; + .then((course)=>{ + Section.findAsync({course: course._id}) + .then(handleEntityNotFound(res)) + .then((sections)=>{ + sections.forEach(section=>{ + section.remove(function(err,section){ + if(err) handleError(res); + }) + }) + return null; + }).catch(handleError(res)) + return course; + }).then(handleEntityNotFound(res)) + .then(removeEntity(res)) + .catch(handleError(res)); + }; export function image(req: $Request, res: $Response){ // Prevents requesting arbitary files from the server diff --git a/server/config/seed.js b/server/config/seed.js index 61baf657..e8f1c262 100644 --- a/server/config/seed.js +++ b/server/config/seed.js @@ -142,6 +142,7 @@ export function allCourses(){return { semester: "Fall15", active: false, _id: mongoose.Types.ObjectId('000000000000000000000010'), + creator: allUsers().bob._id, }, openSource:{ name: "Introduction to Open Source", @@ -152,6 +153,7 @@ export function allCourses(){return { semester: "Spring15", active: true, _id: mongoose.Types.ObjectId('000000000000000000000011'), + creator:allUsers().bob._id, }, robotics:{ name: "Mestizo Robotics", @@ -162,6 +164,7 @@ export function allCourses(){return { semester: "Spring15", active: true, _id: mongoose.Types.ObjectId('000000000000000000000012'), + creator: allUsers().bob._id, }, art:{ name: "Art, Community and Technology", @@ -172,6 +175,7 @@ export function allCourses(){return { semester: "Spring15", active: true, _id: mongoose.Types.ObjectId('000000000000000000000013'), + creator:allUsers().bob._id, }, imaging:{ name: "Media Studio: Imaging", @@ -182,6 +186,7 @@ export function allCourses(){return { semester: "Spring15", active: true, _id: mongoose.Types.ObjectId('000000000000000000000014'), + }, materials:{ name: "Materials and Design", @@ -212,6 +217,7 @@ export function allCourses(){return { semester: "Spring15", active: true, _id: mongoose.Types.ObjectId('000000000000000000000017'), + creator: allUsers().travis._id, }, venue:{ _id : mongoose.Types.ObjectId("222222222222222222222220"), From a5139e3b9b7940836075989567b03d116b7fcdf1 Mon Sep 17 00:00:00 2001 From: vkr96 Date: Fri, 28 Apr 2017 10:52:28 -0400 Subject: [PATCH 4/9] Deleted package that was not being used --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index c70ecbbf..cdb9f8de 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,6 @@ "angular-sanitize": "~1.5.5", "angular-simple-logger": "^0.1.7", "angular-socket-io": "~0.7.0", - "angular-sweet-alert": "^1.1.3", "angular-sweetalert": "^1.1.2", "angular-ui-bootstrap": "^2.0.1", "angular-validation-match": "^1.9.0", From fc517c1fe37a73a2442b266c92b4630d9db24c7d Mon Sep 17 00:00:00 2001 From: vkr96 Date: Fri, 28 Apr 2017 11:06:25 -0400 Subject: [PATCH 5/9] fixed seed error --- server/config/seed.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/config/seed.js b/server/config/seed.js index e8063460..8e58d7b3 100644 --- a/server/config/seed.js +++ b/server/config/seed.js @@ -239,9 +239,9 @@ export function allCourses(){return { active : true, semester : "Spring16", } - } - }; -} + }; + } + export function allSections(){ return { netArt12: { From 78e434cca16b01e9ae96e52d2880458389a3b718 Mon Sep 17 00:00:00 2001 From: vkr96 Date: Fri, 28 Apr 2017 11:33:36 -0400 Subject: [PATCH 6/9] Changed location of handleEntitynotFound --- server/api/course/course.controller.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/api/course/course.controller.js b/server/api/course/course.controller.js index e62edaee..23e3d106 100644 --- a/server/api/course/course.controller.js +++ b/server/api/course/course.controller.js @@ -175,6 +175,7 @@ export function update(req: $Request, res: $Response) { // Deletes a Course from the DB export function destroy(req: $Request, res: $Response) { Course.findByIdAsync(req.params.id) + .then(handleEntityNotFound(res)) .then((course)=>{ Section.findAsync({course: course._id}) .then(handleEntityNotFound(res)) @@ -187,8 +188,7 @@ export function destroy(req: $Request, res: $Response) { return null; }).catch(handleError(res)) return course; - }).then(handleEntityNotFound(res)) - .then(removeEntity(res)) + }).then(removeEntity(res)) .catch(handleError(res)); }; From 3c5ae513ea5bf4f844bef3af71135c6a46d74021 Mon Sep 17 00:00:00 2001 From: vkr96 Date: Fri, 12 May 2017 22:36:47 -0400 Subject: [PATCH 7/9] Deletion now gets rid of each courses section,events,submissions, and then deletes the course-need to change from permanent deletion to simply marking as deleted later --- server/api/course/course.controller.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/server/api/course/course.controller.js b/server/api/course/course.controller.js index 23e3d106..92befe14 100644 --- a/server/api/course/course.controller.js +++ b/server/api/course/course.controller.js @@ -180,7 +180,24 @@ export function destroy(req: $Request, res: $Response) { Section.findAsync({course: course._id}) .then(handleEntityNotFound(res)) .then((sections)=>{ + var events; sections.forEach(section=>{ + section.getSectionEventsAsync() + .then((received_events)=>{ + received_events.forEach(secEvent=>{ + Submission.findAsync({setionEvent: secEvent}) + .then((submissions)=>{ + submissions.forEach(submission=>{ + submission.remove(function(err,section){ + if(err) handleError(res); + }) + }) + }) + }) + received_events.remove(function(err,section){ + if(err) handleError(res); + }) + }).catch(handleError) section.remove(function(err,section){ if(err) handleError(res); }) From ad1cb2ddafdbd5142b1dd8ce4dccac1b4702c032 Mon Sep 17 00:00:00 2001 From: vkr96 Date: Wed, 17 May 2017 16:07:40 -0700 Subject: [PATCH 8/9] Took out front-end functionality; simplfied back-end destroy function; added delete attributes --- client/app/courses/view/courseview.html | 1 - server/api/course/course.controller.js | 10 +--------- server/api/course/course.model.js | 3 ++- server/api/section/section.model.js | 1 + server/api/sectionevent/sectionevent.controller.js | 2 +- server/api/sectionevent/sectionevent.model.js | 3 ++- server/api/submission/submission.controller.js | 3 ++- server/api/submission/submission.model.js | 1 + 8 files changed, 10 insertions(+), 14 deletions(-) diff --git a/client/app/courses/view/courseview.html b/client/app/courses/view/courseview.html index 8fa7ee19..e42d4ad7 100644 --- a/client/app/courses/view/courseview.html +++ b/client/app/courses/view/courseview.html @@ -31,7 +31,6 @@

Course Control


diff --git a/server/api/course/course.controller.js b/server/api/course/course.controller.js index 92befe14..25b8257c 100644 --- a/server/api/course/course.controller.js +++ b/server/api/course/course.controller.js @@ -175,7 +175,6 @@ export function update(req: $Request, res: $Response) { // Deletes a Course from the DB export function destroy(req: $Request, res: $Response) { Course.findByIdAsync(req.params.id) - .then(handleEntityNotFound(res)) .then((course)=>{ Section.findAsync({course: course._id}) .then(handleEntityNotFound(res)) @@ -185,14 +184,7 @@ export function destroy(req: $Request, res: $Response) { section.getSectionEventsAsync() .then((received_events)=>{ received_events.forEach(secEvent=>{ - Submission.findAsync({setionEvent: secEvent}) - .then((submissions)=>{ - submissions.forEach(submission=>{ - submission.remove(function(err,section){ - if(err) handleError(res); - }) - }) - }) + secEvent.fullRemove(); }) received_events.remove(function(err,section){ if(err) handleError(res); diff --git a/server/api/course/course.model.js b/server/api/course/course.model.js index 2ea640ce..4310b451 100644 --- a/server/api/course/course.model.js +++ b/server/api/course/course.model.js @@ -15,7 +15,8 @@ var CourseSchema = new Schema({ description: String, semester: String, active: Boolean, - imageURLs: [String] + imageURLs: [String], + deleted: Boolean }); /** diff --git a/server/api/section/section.model.js b/server/api/section/section.model.js index 01605b5d..e6cc66cf 100644 --- a/server/api/section/section.model.js +++ b/server/api/section/section.model.js @@ -13,6 +13,7 @@ var SectionSchema = new Schema({ pendingStudents: [{type : Schema.Types.ObjectId, ref: 'User'}], sectionNumbers: [Number], enrollmentPolicy: {type: String, enum: ['open', 'closed', 'approvalRequired']}, + deleted: Boolean }); /** diff --git a/server/api/sectionevent/sectionevent.controller.js b/server/api/sectionevent/sectionevent.controller.js index edc68702..b55e2439 100644 --- a/server/api/sectionevent/sectionevent.controller.js +++ b/server/api/sectionevent/sectionevent.controller.js @@ -75,7 +75,7 @@ function notifySectionCreation(sectionEvent){ .execAsync() .then(section => { section.students.forEach(student => { - scheduler.now("create sectionEvent", {user:student.toObject(), sectionId: section._id.toString(), eventInfo: eventInfo.toObject()}); + scheduler.now("create sectionEvent", {user:student.toObject(), sectionId: section._id.toString(), eventInfo: eventInfo.toObject(), deleted: false}); }); return sectionEvent.updateUserNotifications(); }).then(()=> {return sectionEvent}); diff --git a/server/api/sectionevent/sectionevent.model.js b/server/api/sectionevent/sectionevent.model.js index 5723d193..80938ef1 100644 --- a/server/api/sectionevent/sectionevent.model.js +++ b/server/api/sectionevent/sectionevent.model.js @@ -10,7 +10,8 @@ var SectionEventSchema = new Schema({ info: {type: Schema.Types.ObjectId, ref: 'EventInfo'}, author: {type: Schema.Types.ObjectId, ref: 'User'}, submissionInstructions: String, - creationDate: Date + creationDate: Date, + deleted: Boolean }); diff --git a/server/api/submission/submission.controller.js b/server/api/submission/submission.controller.js index 730ba606..59241d15 100644 --- a/server/api/submission/submission.controller.js +++ b/server/api/submission/submission.controller.js @@ -301,7 +301,8 @@ exports.create = function(req, res) { verified: false, locationMatch: false, time: Date.now(), - content: req.body.content + content: req.body.content, + deleted: false }; Submission.create(submit, (err, submission) => { diff --git a/server/api/submission/submission.model.js b/server/api/submission/submission.model.js index 55783489..aaaaf2a5 100644 --- a/server/api/submission/submission.model.js +++ b/server/api/submission/submission.model.js @@ -19,6 +19,7 @@ var SubmissionSchema = new Schema({ comments: String }, instructorVerification: { type: String, enum: ["verified", "rejected", "none"] }, + deleted: Boolean, verified: Boolean, locationMatch: Boolean, location: { From 7302a9bcb4df9ac819a2b5860b37278184dc4097 Mon Sep 17 00:00:00 2001 From: vkr96 Date: Fri, 19 May 2017 15:14:53 -0700 Subject: [PATCH 9/9] Re-added entity not found clause --- server/api/course/course.controller.js | 1 + 1 file changed, 1 insertion(+) diff --git a/server/api/course/course.controller.js b/server/api/course/course.controller.js index 25b8257c..ebb7569f 100644 --- a/server/api/course/course.controller.js +++ b/server/api/course/course.controller.js @@ -175,6 +175,7 @@ export function update(req: $Request, res: $Response) { // Deletes a Course from the DB export function destroy(req: $Request, res: $Response) { Course.findByIdAsync(req.params.id) + .then(handleEntityNotFound(res)) .then((course)=>{ Section.findAsync({course: course._id}) .then(handleEntityNotFound(res))