From f7488e4f4ea2b8a8bc40bfd33ba0e9317427c33c Mon Sep 17 00:00:00 2001 From: c22063583 <WHITEf6@cardiff.ac.uk> Date: Fri, 21 Apr 2023 10:17:15 +0100 Subject: [PATCH] viewbadges --- createdb.sql | 70 ++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 49 insertions(+), 21 deletions(-) diff --git a/createdb.sql b/createdb.sql index be136cf..f87eae7 100644 --- a/createdb.sql +++ b/createdb.sql @@ -21,7 +21,7 @@ fname varchar(35), lname varchar(35), -- The UK Government Data Standards Catalogue reccomends 35 characters for each the first name and last name bday date, -dayjoined date , +dayjoined date DEFAULT now(), parentsID varchar(40), groupID varchar(40), FOREIGN KEY (parentsID) REFERENCES Parents(parentID) @@ -82,13 +82,17 @@ CREATE TABLE `Badge`( DROP TABLE IF EXISTS `BadgeAwarded`; CREATE TABLE `BadgeAwarded`( + awardedto varchar(40), evidence varchar(1000), awardedby varchar(40), Badgeawarded varchar(40), dateAwarded date, - isAwarded boolean, + isAwarded int(3), -- isAwarded is to review applications + -- 2 means not reviewed + -- 1 means successful applications + -- 0 means fail FOREIGN KEY (awardedto) REFERENCES Students(studentID), FOREIGN KEY (awardedby) REFERENCES Volunteers(VolunteerID), FOREIGN KEY (Badgeawarded) REFERENCES Badge(BadgeID) @@ -356,7 +360,7 @@ CREATE PROCEDURE addToGroup( BEGIN DECLARE toad INT DEFAULT 0; - DECLARE a INT Default 0; + DECLARE x INT Default 0; select count(distinct volunteerID) *(SELECT ageGroup from Sessions where groupID=grapeID limit 1) into @maxstu from volunteerattendance as v0 where grapeID in (select groupID from Sessions as s0 @@ -368,25 +372,25 @@ select count(distinct volunteerID) *(SELECT ageGroup from Sessions where groupID (select groupID from sessions as s2 where stu0.studentID in (select studentID from StudentAttendance as att0 where stu0.studentID=att0.StudentID)); set toad = @maxstu - @currentStu; + -- toad reprisents how many students the program should add off the WaitList + -- the next loop adds a student to the group from the waitlist equal + -- to the amount of if toad is not null and toad >0 then - simple_loop : LOOP - SET a=a+1; - select studentID - from waitlist + adding_loop : LOOP + SET x=x+1; + select studentID + from waitlist where (dateRemoved is null) order by dateJoined asc limit 1 into @theChosenOnes; UPDATE WaitList as wl0,students as stu2 SET stu2.groupID=grapeID,wl0.dateRemoved=CURDATE() where wl0.studentID = @theChosenOnes; - - IF a=toad THEN - LEAVE simple_loop; + -- test + + IF x=toad THEN + LEAVE adding_loop; END IF; - END LOOP simple_loop; + END LOOP adding_loop; end if; - - -- UPDATE WaitList as wl0,students as stu2 - -- SET stu2.groupID=grapeID,wl0.dateRemoved=CURDATE() where stu2.studentID in (@theChosenOnes); - END$$ DELIMITER ; @@ -402,6 +406,27 @@ BEGIN END$$ DELIMITER ; +drop procedure if exists viewBadges; +delimiter $$ +CREATE PROCEDURE viewBadges( + IN StudentvID varchar(40)) +BEGIN + + SELECT if(ba.isAwarded=2,'Pending',(if (isAwarded = 1,'Complete','unsuccessful'))) as status, + (select badgeName from badge where BadgeID=ba.badgeawarded limit 1) as 'name', + (select badgeDesc from badge where BadgeID=ba.badgeawarded limit 1) as 'name', + ba.dateAwarded, + concat((select fname from volunteers where volunteerID=ba.awardedby limit 1), ' ',(select lname from volunteers where volunteerID=ba.awardedby limit 1) ) as 'Awarded by', + ba.evidence + -- group by status + from badgeawarded as ba where awardedto=studentvID group by status; + +END$$ +DELIMITER ; + + + + drop procedure if exists updateSG; delimiter $$ CREATE PROCEDURE updateSG( @@ -443,7 +468,7 @@ CREATE PROCEDURE StudentBadgeApply( BEGIN - INSERT INTO BadgeAwarded(awardedto,BadgeAwarded,evidence,isAwarded) values (studentID,BadgeID,badgeEvidence,0); + INSERT INTO BadgeAwarded(awardedto,BadgeAwarded,evidence,isAwarded) values( studentID,BadgeID,badgeEvidence,0); END$$ DELIMITER ; @@ -467,18 +492,21 @@ call applytogroup('b6e14bcdd6a79c8f8cd9fcef3be5f00b', '41'); call applytogroup('031f0ba110c9683bf4cf5d2836b32a95',41); call updateSG('419fd9859978a9bf79df4ff16c99c5f9',"2020-04-09"); call updateDBS('419fd9859978a9bf79df4ff16c99c5f9',"2021-09-09"); -call addSession("computer lab",3,'419fd9859978a9bf79df4ff16c99c5f9','2023-02-03',3,'41'); +call addSession("computer lab",3,'419fd9859978a9bf79df4ff16c99c5f9','2023-02-03',2,'41'); call ReviewSession(md5('2023-02-03'),"it was ok","idk"); -call addSession("computer lab",3,'419fd9859978a9bf79df4ff16c99c5f9','2023-01-03',3,'41'); +call addSession("computer lab",3,'419fd9859978a9bf79df4ff16c99c5f9','2023-01-03',2,'41'); call ReviewSession(md5('2023-01-03'),"it was ok","idk"); -call addSession("computer lab",3,'419fd9859978a9bf79df4ff16c99c5f9','2022-11-03',3,'41'); -call addSession("computer lab",3,'419fd9859978a9bf79df4ff16c99c5f9','2023-04-16',3,'41'); +call addSession("computer lab",3,'419fd9859978a9bf79df4ff16c99c5f9','2022-11-03',2,'41'); +call addSession("computer lab",3,'419fd9859978a9bf79df4ff16c99c5f9','2023-04-16',2,'41'); CALL STUDENTATTENDS('562fe5b6c65003a11148594678c42b90','94b21f931d888fefd4da7a07c01dff4a'); call studentattends('313b6d9a06c3a0618f72ec75c082b6a4','94b21f931d888fefd4da7a07c01dff4a'); call viewVolunteer(''); select * from sessions; -select * from waitlist; call viewCheckExpiries(); call addToGroup('41'); +select * from waitlist; +select * from students; +INSERT INTO BadgeAwarded(awardedto,BadgeAwarded,evidence,isAwarded) values( '562fe5b6c65003a11148594678c42b90','fb635b87d668b2bbcc6a0b0a2f6adc32','I did it',2); +call viewBadges('562fe5b6c65003a11148594678c42b90') -- GitLab