== Mark Deduction For Late Evaluation Submission == Refer to ticket #364 == Requirements == An admin/instructor: * Should be able to set mark penalty scale for late evaluation submissions. The students: * Should be notified about the mark penalties for late evaluation submissions. == DB Changes == * Two new tables have been added : Penalty, and User_grade_penalty. * Run the attached SQL queries to update your current database. {{{ #!sql CREATE TABLE `penalties` ( `id` int(11) NOT NULL AUTO_INCREMENT, `event_id` int(11) DEFAULT NULL, `days_late` int(11) NOT NULL, `percent_penalty` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `fk_events` (`event_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; ALTER TABLE `penalties` ADD CONSTRAINT `fk_events` FOREIGN KEY (`event_id`) REFERENCES `events` (`id`) ON DELETE CASCADE; CREATE TABLE `user_grade_penalties` ( `id` int(11) NOT NULL AUTO_INCREMENT, `penalty_id` int(11) DEFAULT NULL, `grp_event_id` int(11) NOT NULL, `user_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `fk_penalties` (`penalty_id`), KEY `fk_users` (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; ALTER TABLE `user_grade_penalties` ADD CONSTRAINT `fk_penalties` FOREIGN KEY (`penalty_id`) REFERENCES `penalties` (`id`) ON DELETE CASCADE, ADD CONSTRAINT `fk_users` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE; }}} == Implementation == * An instructor or admin can choose to apply ONE late penalty scale to an event. * For now, the late penalty applies to all of the groups that are assigned to an evaluation event. * By default, the penalty scale will have increments of one day. * The penalty scale can still be modified after the initial setting.