Skip to content
Snippets Groups Projects
Commit 79e80804 authored by PavelBegunkov's avatar PavelBegunkov
Browse files

fix of fix :/

parent 80839f5a
No related merge requests found
...@@ -2338,13 +2338,13 @@ BEGIN ...@@ -2338,13 +2338,13 @@ BEGIN
-- delete extra module from -- delete extra module from
DELETE FROM `submodules` DELETE FROM `submodules`
WHERE submodules.ID in WHERE submodules.ID IN
(SELECT submodules.ID (
FROM `modules` SELECT submodules.ID
LEFT JOIN `submodules` ON submodules.ModuleID = modules.ID FROM `modules`
WHERE modules.Type = 4 and modules.DisciplineID = DisciplineID LEFT JOIN `submodules` ON submodules.ModuleID = modules.ID
ORDER BY submodules.OrderNum DESC LIMIT 1); WHERE modules.Type = 4 and modules.DisciplineID = DisciplineID and submodules.OrderNum > 1
);
SET extraMax = 6; SET extraMax = 6;
ELSE ELSE
SET extraMax = 30; SET extraMax = 30;
...@@ -2988,7 +2988,7 @@ CREATE FUNCTION `AddModuleExtra` ( `TeacherID` INT, ...@@ -2988,7 +2988,7 @@ CREATE FUNCTION `AddModuleExtra` ( `TeacherID` INT,
) RETURNS int(11) ) RETURNS int(11)
NO SQL NO SQL
BEGIN BEGIN
DECLARE checker, vModule, vType INT; DECLARE checker, vModule, vType, vGap INT;
IF NOT InternalIsTeacherAuthor(TeacherID,DisciplineID) IF NOT InternalIsTeacherAuthor(TeacherID,DisciplineID)
THEN THEN
RETURN -1; RETURN -1;
...@@ -3023,14 +3023,18 @@ BEGIN ...@@ -3023,14 +3023,18 @@ BEGIN
RETURN -1; RETURN -1;
END IF; END IF;
SET vGap = -1;
IF vType = 1 THEN IF vType = 1 THEN
SET checker = 6; -- exam
ELSE SET vGap = 6;
SET checker = 30; END IF;
SET checker = AddSubmodule(TeacherID, vModule, checker, '', NULL, 'LandmarkControl'); IF vType = 2 THEN
-- credit
SET vGap = 30;
SET checker = AddSubmodule(TeacherID, vModule, vGap, '', NULL, 'LandmarkControl');
END IF; END IF;
SET checker = AddSubmodule(TeacherID, vModule, checker, '', NULL, 'LandmarkControl'); SET checker = AddSubmodule(TeacherID, vModule, vGap, '', NULL, 'LandmarkControl');
RETURN vModule; RETURN vModule;
END // END //
......
DELIMITER // DELIMITER //
ALTER TABLE `modules` CHANGE `Type` `Type` enum('regular','exam', 'bonus', 'extra') NOT NULL DEFAULT 'regular'//
DROP FUNCTION IF EXISTS AddSubmodule// DROP FUNCTION IF EXISTS AddSubmodule//
CREATE FUNCTION `AddSubmodule` ( `TeacherID` INT, CREATE FUNCTION `AddSubmodule` ( `TeacherID` INT,
...@@ -13,19 +14,6 @@ CREATE FUNCTION `AddSubmodule` ( `TeacherID` INT, ...@@ -13,19 +14,6 @@ CREATE FUNCTION `AddSubmodule` ( `TeacherID` INT,
NO SQL NO SQL
BEGIN BEGIN
DECLARE checker INT; DECLARE checker INT;
SET checker = -1;
SELECT disciplines.ID
INTO checker
FROM `modules`
INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID
WHERE TeacherID = disciplines.AuthorID AND
ModuleID = modules.ID
LIMIT 1;
IF checker <= 0
THEN
RETURN -1;
END IF;
SET checker = 0; SET checker = 0;
...@@ -63,18 +51,20 @@ CREATE FUNCTION `AddModuleExtra` ( `TeacherID` INT, ...@@ -63,18 +51,20 @@ CREATE FUNCTION `AddModuleExtra` ( `TeacherID` INT,
) RETURNS int(11) ) RETURNS int(11)
NO SQL NO SQL
BEGIN BEGIN
DECLARE checker, vModule INT; DECLARE checker, vModule, vType, vGap INT;
IF NOT InternalIsTeacherAuthor(TeacherID,DisciplineID) IF NOT InternalIsTeacherAuthor(TeacherID,DisciplineID)
THEN THEN
RETURN -1; RETURN -1;
END IF; END IF;
SET vType = -1;
SET checker = -1; SET checker = -1;
SELECT modules.ID SELECT modules.ID
INTO checker INTO checker
FROM `modules` FROM `modules`
WHERE DisciplineID = modules.DisciplineID AND WHERE DisciplineID = modules.DisciplineID AND
modules.Type = 4; modules.Type = 4
LIMIT 1;
IF checker > 0 THEN IF checker > 0 THEN
RETURN -2; RETURN -2;
END IF; END IF;
...@@ -85,9 +75,10 @@ BEGIN ...@@ -85,9 +75,10 @@ BEGIN
VALUES ( 'Добор баллов' , 2900666 , DisciplineID, 4 ); VALUES ( 'Добор баллов' , 2900666 , DisciplineID, 4 );
SET vModule = -1; SET vModule = -1;
SELECT modules.ID SELECT modules.ID, disciplines.ExamType
INTO vModule INTO vModule, vType
FROM `modules` FROM `modules`
INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID
WHERE DisciplineID = modules.DisciplineID AND WHERE DisciplineID = modules.DisciplineID AND
modules.Type = 4 modules.Type = 4
LIMIT 1; LIMIT 1;
...@@ -95,7 +86,16 @@ BEGIN ...@@ -95,7 +86,16 @@ BEGIN
RETURN -1; RETURN -1;
END IF; END IF;
SET checker = AddSubmodule(TeacherID, vModule, 6, '', NULL, 'LandmarkControl'); SET vGap = -1;
IF vType = 1 THEN
SET vGap = 6;
END IF;
IF vType = 2 THEN
SET vGap = 30;
SET checker = AddSubmodule(TeacherID, vModule, vGap, '', NULL, 'LandmarkControl');
END IF;
SET checker = AddSubmodule(TeacherID, vModule, vGap, '', NULL, 'LandmarkControl');
RETURN vModule; RETURN vModule;
END // END //
...@@ -140,6 +140,9 @@ BEGIN ...@@ -140,6 +140,9 @@ BEGIN
); );
END // END //
ALTER TABLE `modules` CHANGE `Type` `Type` enum('regular','exam', 'bonus', 'extra') NOT NULL DEFAULT 'regular'//
DELETE FROM `rating_table` DELETE FROM `rating_table`
WHERE rating_table.SubmoduleID IN WHERE rating_table.SubmoduleID IN
( (
...@@ -151,28 +154,91 @@ WHERE rating_table.SubmoduleID IN ...@@ -151,28 +154,91 @@ WHERE rating_table.SubmoduleID IN
SELECT AddSubmodule(disciplines.AuthorID, modules.ID, 40, '', NULL, 'LandmarkControl') AS '1', INSERT INTO `page_access` (`ID`, `Pagename`, `Bitmask`) VALUES (NULL, 'teacher:exam', '6')//
AddSubmodule(disciplines.AuthorID, modules.ID, 40, '', NULL, 'LandmarkControl') AS '2'
FROM `modules`
INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID
WHERE modules.Type = 2//
ALTER TABLE `specializations` ADD `Code` varchar(12) NULL//
DELETE FROM `rating_table`
WHERE rating_table.SubmoduleID IN -- SELECT modules.ID, AddSubmodule(disciplines.AuthorID, modules.ID, 40, '', NULL, 'LandmarkControl') AS '1'
( SELECT submodules.ID -- FROM `modules`
FROM `modules` -- INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID
LEFT JOIN `submodules` ON submodules.ModuleID = modules.ID -- WHERE modules.Type = 2 //
WHERE modules.Type = 2
)//
DROP PROCEDURE IF EXISTS fix_modules//
CREATE PROCEDURE fix_modules()
BEGIN
DECLARE checker INT;
DECLARE vid INT;
DECLARE vname INT;
-- this flag will be set to true when cursor reaches end of table
DECLARE exit_loop BOOLEAN;
-- Declare the cursor
DECLARE employee_cursor CURSOR FOR
SELECT modules.ID AS 'ID', disciplines.AuthorID
FROM `modules`
INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID
WHERE modules.Type = 2;
-- set exit_loop flag to true if there are no more rows
DECLARE CONTINUE HANDLER FOR NOT FOUND SET exit_loop = TRUE;
-- open the cursor
OPEN employee_cursor;
-- start looping
employee_loop: LOOP
-- read the name from next row into the variables
FETCH employee_cursor INTO vid, vname;
SET checker = AddSubmodule(vname, vid, 40, '', NULL, 'LandmarkControl');
SET checker = AddSubmodule(vname, vid, 40, '', NULL, 'LandmarkControl');
IF exit_loop THEN
CLOSE employee_cursor;
LEAVE employee_loop;
END IF;
END LOOP employee_loop;
END //
DROP PROCEDURE IF EXISTS fix_modules2//
CREATE PROCEDURE fix_modules2()
BEGIN
DECLARE checker INT;
DECLARE vid INT;
DECLARE vname INT;
-- this flag will be set to true when cursor reaches end of table
DECLARE exit_loop BOOLEAN;
-- Declare the cursor
DECLARE employee_cursor CURSOR FOR
SELECT disciplines.ID AS 'ID', disciplines.AuthorID
FROM `disciplines`;
-- set exit_loop flag to true if there are no more rows
DECLARE CONTINUE HANDLER FOR NOT FOUND SET exit_loop = TRUE;
-- open the cursor
OPEN employee_cursor;
-- start looping
employee_loop: LOOP
-- read the name from next row into the variables
FETCH employee_cursor INTO vid, vname;
SET checker = AddModuleExtra(vname, vid);
IF exit_loop THEN
CLOSE employee_cursor;
LEAVE employee_loop;
END IF;
END LOOP employee_loop;
END //
SELECT AddModuleExtra(disciplines.AuthorID, disciplines.ID) CALL fix_modules()//
FROM `disciplines`// CALL fix_modules2()//
DROP PROCEDURE IF EXISTS fix_modules//
DROP PROCEDURE IF EXISTS fix_modules2//
-- SELECT AddModuleExtra(disciplines.AuthorID, disciplines.ID)
-- FROM `disciplines`//
INSERT INTO `rating`.`page_access` (`ID`, `Pagename`, `Bitmask`) VALUES (NULL, 'teacher:exam', '6');
ALTER TABLE `specializations` ADD `Code` varchar(12) NULL; DELETE FROM submodules WHERE submodules.ModuleID IN (SELECT modules.ID FROM modules WHERE modules.Type = 4)//
DELETE FROM modules WHERE modules.Type = 4//
DELIMITER ; DELIMITER ;
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment