| 6 | | === Чекори |
| 7 | | 1. Професорот навигира до страната „Студенти“ |
| 8 | | 2. Системот го идентификува професорот врз основа на JWT токенот |
| 9 | | 3. Системот ги презема студентите запишани на предметите што ги предава професорот |
| 10 | | 4. За секој студент се прикажуваат името, индексот, предметот и тековната оценка |
| 11 | | 5. На професорот му се прикажува табела со неговите студенти |
| | 5 | '''Други актери:''' - |
| | 6 | |
| | 7 | Професорот сака да ги види студентите запишани на предметите кои ги предава, |
| | 8 | групирани по предмет, заедно со тековната оценка на секој студент. Целта е |
| | 9 | преглед од кој може да премине кон оценување. |
| | 10 | |
| | 11 | === Сценарио |
| | 12 | |
| | 13 | 1. Професорот се најавува и избира '''Студенти''' од менито. |
| | 14 | |
| | 15 | 2. Системот го чита идентификаторот на професорот од пристапниот токен и ги презема сите студенти на неговите предмети. Студентот се добива преку запишаниот семестар, а оценката е LEFT JOIN бидејќи најголем дел од студентите сè уште немаат оценка. |
| | 16 | {{{#!sql |
| | 17 | SELECT s.id AS subject_id, |
| | 18 | s.code, |
| | 19 | s.name AS subject, |
| | 20 | u.id AS student_id, |
| | 21 | u."index", |
| | 22 | u.name || ' ' || u.surname AS student, |
| | 23 | ps.grade, |
| | 24 | a.year, |
| | 25 | a.type |
| | 26 | FROM project.semesters_subjects ss |
| | 27 | JOIN project.enrolled_semesters es ON es.id = ss.enrolled_semesters_id |
| | 28 | JOIN project.users u ON u.id = es.user_id |
| | 29 | JOIN project.subjects s ON s.id = ss.subjects_id |
| | 30 | JOIN project.active_semesters a ON a.id = es.semester_id |
| | 31 | LEFT JOIN project.passed_subjects ps ON ps.enrolled_id = ss.id |
| | 32 | WHERE ss.professor_id = 4 |
| | 33 | ORDER BY s.name, u.surname; |
| | 34 | }}} |
| | 35 | |
| | 36 | 3. Системот ги групира редовите по предмет и ја прикажува табелата со студент, индекс, предмет, семестар и тековна оценка. Студентите без оценка се прикажани со ознака дека сè уште не се оценети. |
| | 37 | |
| | 38 | 4. Професорот по желба филтрира по предмет или пребарува по индекс на студент. |
| | 39 | |
| | 40 | 5. Професорот избира студент за да внесе или измени оценка, со што се преминува на [wiki:UseCase010 UC010] или [wiki:UseCase011 UC011]. |
| | 41 | |
| | 42 | === Забелешки |
| | 43 | |
| | 44 | * Условот ss.professor_id = 4 е и проверка на овластување: професорот ги добива само студентите на своите предмети, бидејќи филтрирањето се врши во самата база, а не во апликацијата. |
| | 45 | * Во моделот semesters_subjects нема директна врска кон студентот, па студентот се добива преку enrolled_semesters.user_id. |