diff --git a/.gitignore b/.gitignore index 7ed8676eab71e65fe5ce0e0e999775a0e6f84f38..01d21e8155174215e9bf63a4447279ccfb755ae6 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ db/disciplines activity.sql ~dev_rating/static/* !~dev_rating/static/img/ !~dev_rating/static/other/ -*/node_modules +node_modules/ *.*~ *.DS_STORE diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..1cf5c979dd6cf51bd03d8f032d41ec2e75ae631e --- /dev/null +++ b/Makefile @@ -0,0 +1,23 @@ +default: deploy + @ + + +install: DB_install Tasker_install Tasker_run + @ + +deploy: DB_deploy Tasker_deploy Tasker_run + @ + + + +Tasker_install: Tasker_deploy + npm install -g gulp + +Tasker_deploy: + npm install + +Tasker_run: + gulp + +DB_%: + @$(MAKE) $* -C ./db diff --git a/db/Makefile b/db/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..c3dec2ace328d6759b482bdffa1ba0e98b5c3f0d --- /dev/null +++ b/db/Makefile @@ -0,0 +1,25 @@ +define GET_NAMES +$(subst .sql, , $(wildcard $1/*.sql)) +endef + + +USER := $(shell bash -c 'read -p "Username: " pwd; echo $$username') +PASS := $(shell bash -c 'read -s -p "Password: " pwd; echo $$pwd') +DB := mmcs_rating + + + +install: $(call GET_NAMES, structure) \ +$(call GET_NAMES, data) \ +$(call GET_NAMES, constraints) \ +deploy + @ + +deploy: $(call GET_NAMES, stored) + @ + + +%: + mysql -u $(USER) $(PASS) $(DB) < $@.sql + + diff --git a/db/constraints/base.sql b/db/constraints/base.sql new file mode 100644 index 0000000000000000000000000000000000000000..db873450c4b027c1934315bafb0ba1a48a08449a --- /dev/null +++ b/db/constraints/base.sql @@ -0,0 +1,129 @@ +-- +-- Ограничения внешнего ключа сохраненных таблиц +-- + +-- +-- Ограничения внешнего ключа таблицы `accounts` +-- +ALTER TABLE `accounts` + ADD CONSTRAINT `accounts_ibfk_1` FOREIGN KEY (`UserRoleID`) REFERENCES `user_roles` (`ID`); + +-- +-- Ограничения внешнего ключа таблицы `departments` +-- +ALTER TABLE `departments` + ADD CONSTRAINT `departments_ibfk_1` FOREIGN KEY (`FacultyID`) REFERENCES `faculties` (`ID`); + +-- +-- Ограничения внешнего ключа таблицы `disciplines` +-- +ALTER TABLE `disciplines` + ADD CONSTRAINT `disciplines_ibfk_1` FOREIGN KEY (`SubjectID`) REFERENCES `subjects` (`ID`), + ADD CONSTRAINT `disciplines_ibfk_2` FOREIGN KEY (`SemesterID`) REFERENCES `semesters` (`ID`), + ADD CONSTRAINT `disciplines_ibfk_3` FOREIGN KEY (`AuthorID`) REFERENCES `teachers` (`ID`), + ADD CONSTRAINT `disciplines_ibfk_4` FOREIGN KEY (`FacultyID`) REFERENCES `faculties` (`ID`), + ADD CONSTRAINT `disciplines_ibfk_5` FOREIGN KEY (`GradeID`) REFERENCES `grades` (`ID`); + +-- +-- Ограничения внешнего ключа таблицы `disciplines_groups` +-- +ALTER TABLE `disciplines_groups` + ADD CONSTRAINT `disciplines_groups_ibfk_1` FOREIGN KEY (`DisciplineID`) REFERENCES `disciplines` (`ID`), + ADD CONSTRAINT `disciplines_groups_ibfk_2` FOREIGN KEY (`GroupID`) REFERENCES `study_groups` (`ID`); + +-- +-- Ограничения внешнего ключа таблицы `disciplines_students` +-- +ALTER TABLE `disciplines_students` + ADD CONSTRAINT `disciplines_students_ibfk_1` FOREIGN KEY (`DisciplineID`) REFERENCES `disciplines` (`ID`), + ADD CONSTRAINT `disciplines_students_ibfk_2` FOREIGN KEY (`StudentID`) REFERENCES `students` (`ID`); + +-- +-- Ограничения внешнего ключа таблицы `disciplines_teachers` +-- +ALTER TABLE `disciplines_teachers` + ADD CONSTRAINT `disciplines_teachers_ibfk_1` FOREIGN KEY (`DisciplineID`) REFERENCES `disciplines` (`ID`), + ADD CONSTRAINT `disciplines_teachers_ibfk_2` FOREIGN KEY (`TeacherID`) REFERENCES `teachers` (`ID`); + + +-- +-- Ограничения внешнего ключа таблицы `recovery_tokens` +-- +ALTER TABLE `recovery_tokens` + ADD CONSTRAINT `recovery_tokens_ibfk_1` FOREIGN KEY (`AccountID`) REFERENCES `accounts` (`ID`); + + + +-- +-- Ограничения внешнего ключа таблицы `modules` +-- +ALTER TABLE `modules` + ADD CONSTRAINT `modules_ibfk_1` FOREIGN KEY (`DisciplineID`) REFERENCES `disciplines` (`ID`); + +-- +-- Ограничения внешнего ключа таблицы `rating_table` +-- +ALTER TABLE `rating_table` + ADD CONSTRAINT `rating_table_ibfk_1` FOREIGN KEY (`StudentID`) REFERENCES `students` (`ID`), + ADD CONSTRAINT `rating_table_ibfk_2` FOREIGN KEY (`SubmoduleID`) REFERENCES `submodules` (`ID`), + ADD CONSTRAINT `rating_table_ibfk_3` FOREIGN KEY (`TeacherID`) REFERENCES `teachers` (`ID`); + + +-- +-- Ограничения внешнего ключа таблицы `specializations` +-- +ALTER TABLE `specializations` + ADD CONSTRAINT `specializations_ibfk_1` FOREIGN KEY (`FacultyID`) REFERENCES `faculties` (`ID`); + +-- +-- Ограничения внешнего ключа таблицы `students` +-- +ALTER TABLE `students` + ADD CONSTRAINT `students_ibfk_2` FOREIGN KEY (`AccountID`) REFERENCES `accounts` (`ID`); + +-- +-- Ограничения внешнего ключа таблицы `study_groups` +-- +ALTER TABLE `study_groups` + ADD CONSTRAINT `study_groups_ibfk_1` FOREIGN KEY (`SpecializationID`) REFERENCES `specializations` (`ID`), + ADD CONSTRAINT `study_groups_ibfk_2` FOREIGN KEY (`GradeID`) REFERENCES `grades` (`ID`); + +-- +-- Ограничения внешнего ключа таблицы `submodules` +-- +ALTER TABLE `submodules` + ADD CONSTRAINT `submodules_ibfk_1` FOREIGN KEY (`ModuleID`) REFERENCES `modules` (`ID`); + +-- +-- Ограничения внешнего ключа таблицы `teachers` +-- +ALTER TABLE `teachers` + ADD CONSTRAINT `teachers_ibfk_1` FOREIGN KEY (`AccountID`) REFERENCES `accounts` (`ID`), + ADD CONSTRAINT `teachers_ibfk_2` FOREIGN KEY (`DepartmentID`) REFERENCES `departments` (`ID`), + ADD CONSTRAINT `teachers_ibfk_3` FOREIGN KEY (`JobPositionID`) REFERENCES `job_positions` (`ID`); + + +-- +-- Ограничения внешнего ключа таблицы `subjects_faculties` +-- +ALTER TABLE `subjects_faculties` + ADD CONSTRAINT `subjects_faculties_ibfk_1` FOREIGN KEY (`FacultyID`) REFERENCES `faculties` (`ID`), + ADD CONSTRAINT `subjects_faculties_ibfk_2` FOREIGN KEY (`SubjectID`) REFERENCES `subjects` (`ID`); + + +-- +-- Ограничения внешнего ключа таблицы `students_groups` +-- +ALTER TABLE `students_groups` + ADD CONSTRAINT `students_groups_ibfk_1` FOREIGN KEY (`StudentID`) REFERENCES `students` (`ID`), + ADD CONSTRAINT `students_groups_ibfk_2` FOREIGN KEY (`GroupID`) REFERENCES `study_groups` (`ID`), + ADD CONSTRAINT `students_groups_ibfk_3` FOREIGN KEY (`SemesterID`) REFERENCES `semesters` (`ID`); + + +-- +-- Ограничения внешнего ключа таблицы `exam_period_options` +-- +ALTER TABLE `exam_period_options` + ADD CONSTRAINT `exam_period_options_ibfk_2` FOREIGN KEY (`StudentID`) REFERENCES `students` (`ID`), + ADD CONSTRAINT `exam_period_options_ibfk_1` FOREIGN KEY (`SubmoduleID`) REFERENCES `submodules` (`ID`); + diff --git a/db/constraints/logs.sql b/db/constraints/logs.sql new file mode 100644 index 0000000000000000000000000000000000000000..35daa0a12b12ea39c098bc057cdd52612538e635 --- /dev/null +++ b/db/constraints/logs.sql @@ -0,0 +1,31 @@ +-- +-- Ограничения внешнего ключа таблицы `logs_rating` +-- +ALTER TABLE `logs_rating` + ADD CONSTRAINT `logs_rating_ibfk_1` FOREIGN KEY (`StudentID`) REFERENCES `students` (`ID`), + ADD CONSTRAINT `logs_rating_ibfk_2` FOREIGN KEY (`SubmoduleID`) REFERENCES `submodules` (`ID`), + ADD CONSTRAINT `logs_rating_ibfk_3` FOREIGN KEY (`TeacherID`) REFERENCES `teachers` (`ID`); + +-- +-- Ограничения внешнего ключа таблицы `logs_signin` +-- +ALTER TABLE `logs_signin` + ADD CONSTRAINT `logs_signin_ibfk_1` FOREIGN KEY (`AccountID`) REFERENCES `accounts` (`ID`); + + +-- +-- Ограничения внешнего ключа таблицы `logs_binds_students` +-- +ALTER TABLE `logs_binds_students` + ADD CONSTRAINT `logs_binds_students_ibfk_3` FOREIGN KEY (`StudentID`) REFERENCES `students` (`ID`), + ADD CONSTRAINT `logs_binds_students_ibfk_1` FOREIGN KEY (`DisciplineID`) REFERENCES `disciplines` (`ID`), + ADD CONSTRAINT `logs_binds_students_ibfk_2` FOREIGN KEY (`TeacherID`) REFERENCES `teachers` (`ID`); + + +-- +-- Ограничения внешнего ключа таблицы `logs_binds_groups` +-- +ALTER TABLE `logs_binds_groups` + ADD CONSTRAINT `logs_binds_groups_ibfk_3` FOREIGN KEY (`GroupID`) REFERENCES `study_groups` (`ID`), + ADD CONSTRAINT `logs_binds_groups_ibfk_1` FOREIGN KEY (`DisciplineID`) REFERENCES `disciplines` (`ID`), + ADD CONSTRAINT `logs_binds_groups_ibfk_2` FOREIGN KEY (`TeacherID`) REFERENCES `teachers` (`ID`); diff --git a/db/data/userRoles.sql b/db/data/userRoles.sql new file mode 100644 index 0000000000000000000000000000000000000000..bb0bdf359b77d95994380b6f4dbc9977d0f95048 --- /dev/null +++ b/db/data/userRoles.sql @@ -0,0 +1,14 @@ +-- +-- Дамп данных таблицы `user_roles` +-- + +-- 1 - common +-- 2 - student +-- 4 - teacher +-- 8 - admin +-- 16 - deans +INSERT INTO `user_roles` (`ID`, `Type`, `RoleName`, `Mark`) VALUES +(1, 'student', 'Студент', 3), +(2, 'teacher', 'Преподаватель', 5), +(3, 'teacher', 'Преподаватель-Администратор', 31), +(4, 'teacher', 'Работник деканата', 21); diff --git a/db/duplicate.sql b/db/extra/duplicate.sql similarity index 100% rename from db/duplicate.sql rename to db/extra/duplicate.sql diff --git a/db/extra/grants.sql b/db/extra/grants.sql new file mode 100644 index 0000000000000000000000000000000000000000..880479944052fcef6a6575aa563f81761222d281 --- /dev/null +++ b/db/extra/grants.sql @@ -0,0 +1,41 @@ +REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'mmcs_rating_view'@'localhost'; +GRANT USAGE ON `mmcs_rating` . * TO 'mmcs_rating_view'@'localhost'; + +GRANT SELECT ( +`ID` , `Login` , `EMail` , `UserRoleID` , `isEnabled` , `UserAgent` +) ON `mmcs_rating`.`accounts` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`departments` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`disciplines` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`disciplines_groups` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`disciplines_teachers` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`disciplines_students` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`teachers` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`rating_table` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`faculties` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`general_settings` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`grades` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`job_positions` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`logs_rating` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`logs_signin` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`modules` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`page_access` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`requests` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`semesters` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`specializations` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`students` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`study_groups` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`subjects` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`subjects_faculties` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`submodules` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`disciplines_teachers` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`user_roles` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`students_groups` TO 'mmcs_rating_view'@'localhost'; + +GRANT SELECT ON `mmcs_rating`.`view_disciplines` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`view_disciplines_students` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`view_disciplines_teachers` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`view_groups` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`view_rating_result` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`view_roadmap` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`view_students` TO 'mmcs_rating_view'@'localhost'; +GRANT SELECT ON `mmcs_rating`.`view_teachers` TO 'mmcs_rating_view'@'localhost'; diff --git a/deploy/init_data/law faculty/students.csv b/db/extra/init_data/law faculty/students.csv similarity index 100% rename from deploy/init_data/law faculty/students.csv rename to db/extra/init_data/law faculty/students.csv diff --git a/deploy/init_data/law faculty/subjects.csv b/db/extra/init_data/law faculty/subjects.csv similarity index 100% rename from deploy/init_data/law faculty/subjects.csv rename to db/extra/init_data/law faculty/subjects.csv diff --git a/deploy/init_data/law faculty/teachers.csv b/db/extra/init_data/law faculty/teachers.csv similarity index 100% rename from deploy/init_data/law faculty/teachers.csv rename to db/extra/init_data/law faculty/teachers.csv diff --git a/deploy/init_data/mmcs faculty/english teachers.csv b/db/extra/init_data/mmcs faculty/english teachers.csv similarity index 100% rename from deploy/init_data/mmcs faculty/english teachers.csv rename to db/extra/init_data/mmcs faculty/english teachers.csv diff --git a/deploy/init_data/mmcs faculty/ped and masters students.csv b/db/extra/init_data/mmcs faculty/ped and masters students.csv similarity index 100% rename from deploy/init_data/mmcs faculty/ped and masters students.csv rename to db/extra/init_data/mmcs faculty/ped and masters students.csv diff --git a/deploy/init_data/mmcs faculty/ped subjects.csv b/db/extra/init_data/mmcs faculty/ped subjects.csv similarity index 100% rename from deploy/init_data/mmcs faculty/ped subjects.csv rename to db/extra/init_data/mmcs faculty/ped subjects.csv diff --git a/deploy/init_data/mmcs faculty/pedagogic teachers.csv b/db/extra/init_data/mmcs faculty/pedagogic teachers.csv similarity index 100% rename from deploy/init_data/mmcs faculty/pedagogic teachers.csv rename to db/extra/init_data/mmcs faculty/pedagogic teachers.csv diff --git a/deploy/init_data/mmcs faculty/reports/chessWithIds.jasper b/db/extra/init_data/mmcs faculty/reports/chessWithIds.jasper similarity index 100% rename from deploy/init_data/mmcs faculty/reports/chessWithIds.jasper rename to db/extra/init_data/mmcs faculty/reports/chessWithIds.jasper diff --git a/deploy/init_data/mmcs faculty/reports/chessWithWords.jasper b/db/extra/init_data/mmcs faculty/reports/chessWithWords.jasper similarity index 100% rename from deploy/init_data/mmcs faculty/reports/chessWithWords.jasper rename to db/extra/init_data/mmcs faculty/reports/chessWithWords.jasper diff --git a/deploy/init_data/mmcs faculty/reports/groupList.jasper b/db/extra/init_data/mmcs faculty/reports/groupList.jasper similarity index 100% rename from deploy/init_data/mmcs faculty/reports/groupList.jasper rename to db/extra/init_data/mmcs faculty/reports/groupList.jasper diff --git a/deploy/init_data/mmcs faculty/reports/sheet.jasper b/db/extra/init_data/mmcs faculty/reports/sheet.jasper similarity index 100% rename from deploy/init_data/mmcs faculty/reports/sheet.jasper rename to db/extra/init_data/mmcs faculty/reports/sheet.jasper diff --git a/deploy/init_data/mmcs faculty/students.csv b/db/extra/init_data/mmcs faculty/students.csv similarity index 100% rename from deploy/init_data/mmcs faculty/students.csv rename to db/extra/init_data/mmcs faculty/students.csv diff --git a/deploy/init_data/mmcs faculty/subjects.csv b/db/extra/init_data/mmcs faculty/subjects.csv similarity index 100% rename from deploy/init_data/mmcs faculty/subjects.csv rename to db/extra/init_data/mmcs faculty/subjects.csv diff --git a/deploy/init_data/mmcs faculty/teachers other.csv b/db/extra/init_data/mmcs faculty/teachers other.csv similarity index 100% rename from deploy/init_data/mmcs faculty/teachers other.csv rename to db/extra/init_data/mmcs faculty/teachers other.csv diff --git a/deploy/init_data/mmcs faculty/teachers.csv b/db/extra/init_data/mmcs faculty/teachers.csv similarity index 100% rename from deploy/init_data/mmcs faculty/teachers.csv rename to db/extra/init_data/mmcs faculty/teachers.csv diff --git a/db/release_gen_mmcs_sg.sql b/db/extra/init_data/release_gen_mmcs_sg.sql similarity index 100% rename from db/release_gen_mmcs_sg.sql rename to db/extra/init_data/release_gen_mmcs_sg.sql diff --git a/db/fixes/28_07_15.sql b/db/fixes/28_07_15.sql new file mode 100644 index 0000000000000000000000000000000000000000..b6dcf99fba8f13bfd6c1580220f51a3c16ed4b6a --- /dev/null +++ b/db/fixes/28_07_15.sql @@ -0,0 +1,48 @@ +CREATE TABLE IF NOT EXISTS `logs_binds_students` ( + `ID` int(11) NOT NULL AUTO_INCREMENT, + `DisciplineID` int(11) NOT NULL, + `TeacherID` int(11) NOT NULL, + `StudentID` int(11) NOT NULL, + `Date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `Type` enum('attach','detach') NOT NULL, + PRIMARY KEY (`ID`), + KEY `TeacherID` (`TeacherID`), + KEY `DisciplineID` (`DisciplineID`), + KEY `StudentID` (`StudentID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + + +-- +-- Структура таблицы `logs_binds_groups` +-- +CREATE TABLE IF NOT EXISTS `logs_binds_groups` ( + `ID` int(11) NOT NULL AUTO_INCREMENT, + `DisciplineID` int(11) NOT NULL, + `TeacherID` int(11) NOT NULL, + `GroupID` int(11) NOT NULL, + `Date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `Type` enum('attach','detach') NOT NULL, + PRIMARY KEY (`ID`), + KEY `TeacherID` (`TeacherID`), + KEY `DisciplineID` (`DisciplineID`), + KEY `GroupID` (`GroupID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + + + +-- +-- Ограничения внешнего ключа таблицы `logs_binds_students` +-- +ALTER TABLE `logs_binds_students` + ADD CONSTRAINT `logs_binds_students_ibfk_3` FOREIGN KEY (`StudentID`) REFERENCES `students` (`ID`), + ADD CONSTRAINT `logs_binds_students_ibfk_1` FOREIGN KEY (`DisciplineID`) REFERENCES `disciplines` (`ID`), + ADD CONSTRAINT `logs_binds_students_ibfk_2` FOREIGN KEY (`TeacherID`) REFERENCES `teachers` (`ID`); + + +-- +-- Ограничения внешнего ключа таблицы `logs_binds_groups` +-- +ALTER TABLE `logs_binds_groups` + ADD CONSTRAINT `logs_binds_groups_ibfk_3` FOREIGN KEY (`GroupID`) REFERENCES `study_groups` (`ID`), + ADD CONSTRAINT `logs_binds_groups_ibfk_1` FOREIGN KEY (`DisciplineID`) REFERENCES `disciplines` (`ID`), + ADD CONSTRAINT `logs_binds_groups_ibfk_2` FOREIGN KEY (`TeacherID`) REFERENCES `teachers` (`ID`); diff --git a/db/StoredFunctions.sql b/db/stored/functions.sql similarity index 100% rename from db/StoredFunctions.sql rename to db/stored/functions.sql diff --git a/db/StoredProcedures.sql b/db/stored/procedures.sql similarity index 99% rename from db/StoredProcedures.sql rename to db/stored/procedures.sql index d128a636264a4a8388d95366a27dc49aa9ece2c3..074bd2665a709e62de0e1817a7719c7263d06c6d 100644 --- a/db/StoredProcedures.sql +++ b/db/stored/procedures.sql @@ -684,6 +684,7 @@ BEGIN # TODO: reuse # general + attached + detached + DROP TABLE IF EXISTS tDiscStudents; CREATE TEMPORARY TABLE tDiscStudents AS ( SELECT st.StudentID, COALESCE(st.Type) AS 'Type' diff --git a/db/Views.sql b/db/stored/views.sql similarity index 100% rename from db/Views.sql rename to db/stored/views.sql diff --git a/db/Structure.sql b/db/structure/base.sql similarity index 51% rename from db/Structure.sql rename to db/structure/base.sql index c536148aa7d348c585409a93c7808601a01e6ef2..a7d93f0bde63e32e5b0a09a38a231157626f483a 100644 --- a/db/Structure.sql +++ b/db/structure/base.sql @@ -1,33 +1,13 @@ -п»ї-- phpMyAdmin SQL Dump --- version 4.0.10 --- http://www.phpmyadmin.net --- --- РҐРѕСЃС‚: 127.0.0.1:3306 --- Время создания: РђРІРі 22 2014 Рі., 14:07 --- Версия сервера: 5.5.37-log --- Версия PHP: 5.3.28 - -SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +п»їSET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; - --- --- База данных: `Sample2` --- - -- -------------------------------------------------------- -- -- Структура таблицы `accounts` -- --- CHANGE: - CREATE TABLE IF NOT EXISTS `accounts` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `Login` varchar(50) CHARACTER SET utf8 DEFAULT NULL, @@ -48,7 +28,7 @@ CREATE TABLE IF NOT EXISTS `accounts` ( -- -------------------------------------------------------- -- --- Структура таблицы `accounts` +-- Структура таблицы `job_positions` -- CREATE TABLE IF NOT EXISTS `job_positions` ( @@ -93,7 +73,6 @@ CREATE TABLE IF NOT EXISTS `disciplines` ( -- IsLocked (for editing structure) `IsLocked` tinyint(1) NOT NULL DEFAULT '0', -- Milestone semester time (or is session time) - `Milestone` INT(1) NOT NULL DEFAULT '0', `MilestoneDate` DATE NULL DEFAULT NULL, `Subtype` enum('scientific_coursework', 'disciplinary_coursework' ) NULL DEFAULT NULL, @@ -168,79 +147,6 @@ CREATE TABLE IF NOT EXISTS `faculties` ( UNIQUE KEY `Name` (`Name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Структура таблицы `logs_binds_students` --- -CREATE TABLE IF NOT EXISTS `logs_binds_students` ( - `ID` int(11) NOT NULL AUTO_INCREMENT, - `DisciplineID` int(11) NOT NULL, - `TeacherID` int(11) NOT NULL, - `StudentID` int(11) NOT NULL, - `Date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `Type` enum('attach','detach') NOT NULL, - PRIMARY KEY (`ID`), - KEY `TeacherID` (`TeacherID`), - KEY `DisciplineID` (`DisciplineID`), - KEY `StudentID` (`StudentID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - - --- --- Структура таблицы `logs_binds_groups` --- -CREATE TABLE IF NOT EXISTS `logs_binds_groups` ( - `ID` int(11) NOT NULL AUTO_INCREMENT, - `DisciplineID` int(11) NOT NULL, - `TeacherID` int(11) NOT NULL, - `GroupID` int(11) NOT NULL, - `Date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `Type` enum('attach','detach') NOT NULL, - PRIMARY KEY (`ID`), - KEY `TeacherID` (`TeacherID`), - KEY `DisciplineID` (`DisciplineID`), - KEY `GroupID` (`GroupID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - - - --- -------------------------------------------------------- - --- --- Структура таблицы `logs_rating` --- - -CREATE TABLE IF NOT EXISTS `logs_rating` ( - `ID` int(11) NOT NULL AUTO_INCREMENT, - `StudentID` int(11) NOT NULL, - `SubmoduleID` int(11) NOT NULL, - `TeacherID` int(11) NOT NULL, - `Rate` int(11) NOT NULL, - `Date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - `Action` enum('add','change','delete') NOT NULL, - PRIMARY KEY (`ID`), - KEY `StudentID` (`StudentID`), - KEY `SubmoduleID` (`SubmoduleID`), - KEY `TeacherID` (`TeacherID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - --- -------------------------------------------------------- - --- --- Структура таблицы `logs_signin` --- - -CREATE TABLE IF NOT EXISTS `logs_signin` ( - `ID` int(11) NOT NULL AUTO_INCREMENT, - `AccountID` int(11) NOT NULL, - `Date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (`ID`), - KEY `AccountID` (`AccountID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - @@ -302,42 +208,6 @@ CREATE TABLE IF NOT EXISTS `requests` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- -- --- -- Структура таблицы `requests` --- -- - --- CREATE TABLE IF NOT EXISTS `requests` ( --- `ID` int(11) NOT NULL AUTO_INCREMENT, --- `To` int(11) NOT NULL, --- `From` int(11) NOT NULL, --- `Field1` int(11) NOT NULL DEFAULT '0', --- `Field2` int(11) NOT NULL DEFAULT '0', --- `Field3` int(11) NOT NULL DEFAULT '0', --- `Data` text NULL DEFAULT NULL, --- `DataExt` text NULL DEFAULT NULL, --- `Date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, --- `Type` enum('delegate_discipline','delete_discipline','clear_discipline','report') NOT NULL, --- `Status` enum('opened','processed','closed') NOT NULL DEFAULT 'opened', --- PRIMARY KEY (`ID`) --- ) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- CREATE TABLE IF NOT EXISTS `requests_old` ( --- `ID` int(11) NOT NULL AUTO_INCREMENT, --- `To` int(11) NOT NULL, --- `From` int(11) NOT NULL, --- `Field1` int(11) NULL DEFAULT NULL, --- `Field2` int(11) NULL DEFAULT NULL, --- `Field3` int(11) NULL DEFAULT NULL, --- `Data` text NULL DEFAULT NULL, --- `DataExt` text NULL DEFAULT NULL, --- `Date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, --- `Type` enum('delegate_discipline','delete_discipline','clear_discipline','report') NOT NULL, --- `Status` enum('opened','processed','closed') NOT NULL DEFAULT 'opened', --- PRIMARY KEY (`ID`) --- ) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -- -------------------------------------------------------- -- @@ -566,196 +436,3 @@ CREATE TABLE IF NOT EXISTS `exam_period_options` ( KEY `StudentID_3` (`StudentID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; - - --- --- Дамп данных таблицы `user_roles` --- - --- 1 - common --- 2 - student --- 4 - teacher --- 8 - admin --- 16 - deans -INSERT INTO `user_roles` (`ID`, `Type`, `RoleName`, `Mark`) VALUES -(1, 'student', 'Студент', 3), -(2, 'teacher', 'Преподаватель', 5), -(3, 'teacher', 'Преподаватель-Администратор', 31), -(4, 'teacher', 'Работник деканата', 21); - - - --- --- Ограничения внешнего ключа сохраненных таблиц --- - --- --- Ограничения внешнего ключа таблицы `accounts` --- -ALTER TABLE `accounts` - ADD CONSTRAINT `accounts_ibfk_1` FOREIGN KEY (`UserRoleID`) REFERENCES `user_roles` (`ID`); - --- --- Ограничения внешнего ключа таблицы `departments` --- -ALTER TABLE `departments` - ADD CONSTRAINT `departments_ibfk_1` FOREIGN KEY (`FacultyID`) REFERENCES `faculties` (`ID`); - --- --- Ограничения внешнего ключа таблицы `disciplines` --- -ALTER TABLE `disciplines` - ADD CONSTRAINT `disciplines_ibfk_1` FOREIGN KEY (`SubjectID`) REFERENCES `subjects` (`ID`), - ADD CONSTRAINT `disciplines_ibfk_2` FOREIGN KEY (`SemesterID`) REFERENCES `semesters` (`ID`), - ADD CONSTRAINT `disciplines_ibfk_3` FOREIGN KEY (`AuthorID`) REFERENCES `teachers` (`ID`), - ADD CONSTRAINT `disciplines_ibfk_4` FOREIGN KEY (`FacultyID`) REFERENCES `faculties` (`ID`), - ADD CONSTRAINT `disciplines_ibfk_5` FOREIGN KEY (`GradeID`) REFERENCES `grades` (`ID`); - --- --- Ограничения внешнего ключа таблицы `disciplines_groups` --- -ALTER TABLE `disciplines_groups` - ADD CONSTRAINT `disciplines_groups_ibfk_1` FOREIGN KEY (`DisciplineID`) REFERENCES `disciplines` (`ID`), - ADD CONSTRAINT `disciplines_groups_ibfk_2` FOREIGN KEY (`GroupID`) REFERENCES `study_groups` (`ID`); - --- --- Ограничения внешнего ключа таблицы `disciplines_students` --- -ALTER TABLE `disciplines_students` - ADD CONSTRAINT `disciplines_students_ibfk_1` FOREIGN KEY (`DisciplineID`) REFERENCES `disciplines` (`ID`), - ADD CONSTRAINT `disciplines_students_ibfk_2` FOREIGN KEY (`StudentID`) REFERENCES `students` (`ID`); - --- --- Ограничения внешнего ключа таблицы `disciplines_teachers` --- -ALTER TABLE `disciplines_teachers` - ADD CONSTRAINT `disciplines_teachers_ibfk_1` FOREIGN KEY (`DisciplineID`) REFERENCES `disciplines` (`ID`), - ADD CONSTRAINT `disciplines_teachers_ibfk_2` FOREIGN KEY (`TeacherID`) REFERENCES `teachers` (`ID`); - --- --- Ограничения внешнего ключа таблицы `logs_rating` --- -ALTER TABLE `logs_rating` - ADD CONSTRAINT `logs_rating_ibfk_1` FOREIGN KEY (`StudentID`) REFERENCES `students` (`ID`), - ADD CONSTRAINT `logs_rating_ibfk_2` FOREIGN KEY (`SubmoduleID`) REFERENCES `submodules` (`ID`), - ADD CONSTRAINT `logs_rating_ibfk_3` FOREIGN KEY (`TeacherID`) REFERENCES `teachers` (`ID`); - --- --- Ограничения внешнего ключа таблицы `logs_signin` --- -ALTER TABLE `logs_signin` - ADD CONSTRAINT `logs_signin_ibfk_1` FOREIGN KEY (`AccountID`) REFERENCES `accounts` (`ID`); - - --- --- Ограничения внешнего ключа таблицы `recovery_tokens` --- -ALTER TABLE `recovery_tokens` - ADD CONSTRAINT `recovery_tokens_ibfk_1` FOREIGN KEY (`AccountID`) REFERENCES `accounts` (`ID`); - - - --- --- Ограничения внешнего ключа таблицы `modules` --- -ALTER TABLE `modules` - ADD CONSTRAINT `modules_ibfk_1` FOREIGN KEY (`DisciplineID`) REFERENCES `disciplines` (`ID`); - --- --- Ограничения внешнего ключа таблицы `rating_table` --- -ALTER TABLE `rating_table` - ADD CONSTRAINT `rating_table_ibfk_1` FOREIGN KEY (`StudentID`) REFERENCES `students` (`ID`), - ADD CONSTRAINT `rating_table_ibfk_2` FOREIGN KEY (`SubmoduleID`) REFERENCES `submodules` (`ID`), - ADD CONSTRAINT `rating_table_ibfk_3` FOREIGN KEY (`TeacherID`) REFERENCES `teachers` (`ID`); - - --- CHANGE: --- -- --- -- Ограничения внешнего ключа таблицы `requests` --- -- - --- ALTER TABLE `requests` --- ADD CONSTRAINT `requests_ibfk_1` FOREIGN KEY (`AccountID`) REFERENCES `accounts` (`ID`) ON DELETE SET NULL ON UPDATE SET NULL; - --- --- Ограничения внешнего ключа таблицы `specializations` --- -ALTER TABLE `specializations` - ADD CONSTRAINT `specializations_ibfk_1` FOREIGN KEY (`FacultyID`) REFERENCES `faculties` (`ID`); - --- --- Ограничения внешнего ключа таблицы `students` --- -ALTER TABLE `students` - ADD CONSTRAINT `students_ibfk_2` FOREIGN KEY (`AccountID`) REFERENCES `accounts` (`ID`); - --- --- Ограничения внешнего ключа таблицы `study_groups` --- -ALTER TABLE `study_groups` - ADD CONSTRAINT `study_groups_ibfk_1` FOREIGN KEY (`SpecializationID`) REFERENCES `specializations` (`ID`), - ADD CONSTRAINT `study_groups_ibfk_2` FOREIGN KEY (`GradeID`) REFERENCES `grades` (`ID`); - --- --- Ограничения внешнего ключа таблицы `submodules` --- -ALTER TABLE `submodules` - ADD CONSTRAINT `submodules_ibfk_1` FOREIGN KEY (`ModuleID`) REFERENCES `modules` (`ID`); - --- --- Ограничения внешнего ключа таблицы `teachers` --- -ALTER TABLE `teachers` - ADD CONSTRAINT `teachers_ibfk_1` FOREIGN KEY (`AccountID`) REFERENCES `accounts` (`ID`), - ADD CONSTRAINT `teachers_ibfk_2` FOREIGN KEY (`DepartmentID`) REFERENCES `departments` (`ID`), - ADD CONSTRAINT `teachers_ibfk_3` FOREIGN KEY (`JobPositionID`) REFERENCES `job_positions` (`ID`); - - --- --- Ограничения внешнего ключа таблицы `subjects_faculties` --- -ALTER TABLE `subjects_faculties` - ADD CONSTRAINT `subjects_faculties_ibfk_1` FOREIGN KEY (`FacultyID`) REFERENCES `faculties` (`ID`), - ADD CONSTRAINT `subjects_faculties_ibfk_2` FOREIGN KEY (`SubjectID`) REFERENCES `subjects` (`ID`); - - --- --- Ограничения внешнего ключа таблицы `students_groups` --- -ALTER TABLE `students_groups` - ADD CONSTRAINT `students_groups_ibfk_1` FOREIGN KEY (`StudentID`) REFERENCES `students` (`ID`), - ADD CONSTRAINT `students_groups_ibfk_2` FOREIGN KEY (`GroupID`) REFERENCES `study_groups` (`ID`), - ADD CONSTRAINT `students_groups_ibfk_3` FOREIGN KEY (`SemesterID`) REFERENCES `semesters` (`ID`); - - --- --- Ограничения внешнего ключа таблицы `exam_period_options` --- -ALTER TABLE `exam_period_options` - ADD CONSTRAINT `exam_period_options_ibfk_2` FOREIGN KEY (`StudentID`) REFERENCES `students` (`ID`), - ADD CONSTRAINT `exam_period_options_ibfk_1` FOREIGN KEY (`SubmoduleID`) REFERENCES `submodules` (`ID`); - - --- --- Ограничения внешнего ключа таблицы `logs_binds_students` --- -ALTER TABLE `logs_binds_students` - ADD CONSTRAINT `logs_binds_students_ibfk_3` FOREIGN KEY (`StudentID`) REFERENCES `students` (`ID`), - ADD CONSTRAINT `logs_binds_students_ibfk_1` FOREIGN KEY (`DisciplineID`) REFERENCES `disciplines` (`ID`), - ADD CONSTRAINT `logs_binds_students_ibfk_2` FOREIGN KEY (`TeacherID`) REFERENCES `teachers` (`ID`); - - --- --- Ограничения внешнего ключа таблицы `logs_binds_groups` --- -ALTER TABLE `logs_binds_groups` - ADD CONSTRAINT `logs_binds_groups_ibfk_3` FOREIGN KEY (`GroupID`) REFERENCES `study_groups` (`ID`), - ADD CONSTRAINT `logs_binds_groups_ibfk_1` FOREIGN KEY (`DisciplineID`) REFERENCES `disciplines` (`ID`), - ADD CONSTRAINT `logs_binds_groups_ibfk_2` FOREIGN KEY (`TeacherID`) REFERENCES `teachers` (`ID`); - -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; - - diff --git a/db/structure/logs.sql b/db/structure/logs.sql new file mode 100644 index 0000000000000000000000000000000000000000..865aa00283294f42c31b7034d0297105e991c718 --- /dev/null +++ b/db/structure/logs.sql @@ -0,0 +1,87 @@ +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET time_zone = "+00:00"; + + + +-- -------------------------------------------------------- + +-- +-- Структура таблицы `logs_signin` +-- + +CREATE TABLE IF NOT EXISTS `logs_signin` ( + `ID` int(11) NOT NULL AUTO_INCREMENT, + `AccountID` int(11) NOT NULL, + `Date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`ID`), + KEY `AccountID` (`AccountID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + + +-- -------------------------------------------------------- + +-- +-- Структура таблицы `logs_binds_students` +-- +CREATE TABLE IF NOT EXISTS `logs_binds_students` ( + `ID` int(11) NOT NULL AUTO_INCREMENT, + `DisciplineID` int(11) NOT NULL, + `TeacherID` int(11) NOT NULL, + `StudentID` int(11) NOT NULL, + `Date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `Type` enum('attach','detach') NOT NULL, + PRIMARY KEY (`ID`), + KEY `TeacherID` (`TeacherID`), + KEY `DisciplineID` (`DisciplineID`), + KEY `StudentID` (`StudentID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + + +-- -------------------------------------------------------- + +-- +-- Структура таблицы `logs_binds_groups` +-- +CREATE TABLE IF NOT EXISTS `logs_binds_groups` ( + `ID` int(11) NOT NULL AUTO_INCREMENT, + `DisciplineID` int(11) NOT NULL, + `TeacherID` int(11) NOT NULL, + `GroupID` int(11) NOT NULL, + `Date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `Type` enum('attach','detach') NOT NULL, + PRIMARY KEY (`ID`), + KEY `TeacherID` (`TeacherID`), + KEY `DisciplineID` (`DisciplineID`), + KEY `GroupID` (`GroupID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + + + +-- -------------------------------------------------------- + +-- +-- Структура таблицы `logs_rating` +-- + +CREATE TABLE IF NOT EXISTS `logs_rating` ( + `ID` int(11) NOT NULL AUTO_INCREMENT, + `StudentID` int(11) NOT NULL, + `SubmoduleID` int(11) NOT NULL, + `TeacherID` int(11) NOT NULL, + `Rate` int(11) NOT NULL, + `Date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + `Action` enum('add','change','delete') NOT NULL, + PRIMARY KEY (`ID`), + KEY `StudentID` (`StudentID`), + KEY `SubmoduleID` (`SubmoduleID`), + KEY `TeacherID` (`TeacherID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + + + + + + + diff --git a/db/tables_MMCSRatingReports.sql b/db/structure/tables_MMCSRatingReports.sql1 similarity index 100% rename from db/tables_MMCSRatingReports.sql rename to db/structure/tables_MMCSRatingReports.sql1 diff --git a/deploy/gulpfile.js b/gulpfile.js similarity index 99% rename from deploy/gulpfile.js rename to gulpfile.js index 9deaa7df1e711d4c256cb9efd96f944eb09cac62..791550e456cbcfd0ef082c4185d071eb2c309de1 100644 --- a/deploy/gulpfile.js +++ b/gulpfile.js @@ -42,7 +42,7 @@ var prettify = options.beauty ? require('gulp-jsbeautifier') : empty; var paths = new (function () { var self = this; - self.root = '..'; + self.root = '.'; var app = self.root + '/~dev_rating'; var media = self.root + '/media'; diff --git a/deploy/package.json b/package.json similarity index 100% rename from deploy/package.json rename to package.json diff --git a/~dev_rating/application/classes/Model/Rating.php b/~dev_rating/application/classes/Model/Rating.php index 75a914d83ebbb7874120d24a49275eb38a2cb4e0..693c49950e06caef87d3eb6a91ea17979a4fbff6 100644 --- a/~dev_rating/application/classes/Model/Rating.php +++ b/~dev_rating/application/classes/Model/Rating.php @@ -71,7 +71,7 @@ class Model_Rating extends Model $table = []; foreach ($result as $row) { $student = $row['StudentID']; - $submodule = $row['Submodule']; + $submodule = $row['SubmoduleID']; $table[$student][$submodule] = $row['Rate']; } diff --git a/~dev_rating/application/views/office/students/upload.twig b/~dev_rating/application/views/office/students/upload.twig index 74e171496278b1cc14bc8654a41024f9b825fcdb..6e6694f18baea47993287deeb390b5e0e5d55925 100644 --- a/~dev_rating/application/views/office/students/upload.twig +++ b/~dev_rating/application/views/office/students/upload.twig @@ -19,7 +19,7 @@ <p>Рнструмент пакетной загрузки студентов предоставляет возможность регистрировать РІ системе множество студентов.</p> <p>Файл СЃРѕ СЃРїРёСЃРєРѕРј студентов представляет СЃРѕР±РѕР№ .csv-файл, который должен иметь следующий формат:</p> - <p><pre>Р¤РРћ;РљСѓСЂСЃ;Группа;[Бакалавриат, Специалитет, Магистратура];Специальность</pre></p> + <p><pre>Р¤РРћ;РљСѓСЂСЃ;Группа;[Бакалавр, Специалист, Магистр];Специальность</pre></p> <form enctype="multipart/form-data" action="" method="POST"> <div class="goodClearFix defaultForm marginBetween"> <select id="facultySelect" name="facultyID" class="defaultForm"> diff --git a/~dev_rating/application/views/teacher/discipline/rating/rate.twig b/~dev_rating/application/views/teacher/discipline/rating/rate.twig index b2c97385a4273a19031c0f69304f07a796949670..2353f8f9e7b29348bc46e58cee9fbaa9344d52cd 100644 --- a/~dev_rating/application/views/teacher/discipline/rating/rate.twig +++ b/~dev_rating/application/views/teacher/discipline/rating/rate.twig @@ -152,7 +152,7 @@ {% for Submodule in Submodules %} {% set Module = Modules[Submodule.ModuleID] %} - {% set rate = Rates[Student.ID][Submodule.ID] %} + {% set rate = Rates[student.ID][Submodule.ID] %} {% set sumRate = sumRate + rate %} {% set j = j + 1 %}