UC013 - Отворање на активен семестар
Иницијален актер: Администратор
Други актери: -
Администраторот отвора нов активен семестар, со што на студентите им се овозможува да се запишат во него преку UC007.
Сценарио
- Администраторот избира Семестри и потоа Нов семестар.
- Системот ги прикажува веќе отворените семестри, за да се избегне дупликат.
SELECT id, year, type FROM project.active_semesters ORDER BY year DESC, (type = 'summer') DESC;
- Администраторот внесува година и тип на семестар (зимски или летен) и потврдува.
- Системот го отвора семестарот. Ограничувањето UNIQUE (year, type) спречува ист семестар да се отвори двапати.
INSERT INTO project.active_semesters (year, type) VALUES (2027, 'summer') RETURNING id, year, type;
- Системот проверува дали секој предмет има професор во новиот семестар, бидејќи без тоа студентите не можат да го запишат предметот.
SELECT s.id, s.code, s.name FROM project.subjects s WHERE NOT EXISTS ( SELECT 1 FROM project.professour_subjects ps WHERE ps.subject_id = s.id AND ps.active_semester_id = (SELECT id FROM project.active_semesters WHERE year = 2027 AND type = 'summer') ) ORDER BY s.code;
- Ако листата не е празна, администраторот преминува на UC014 за да ги распореди професорите.
Алтернативни текови
- 4а. Семестарот веќе е отворен - ограничувањето UNIQUE (year, type) го одбива записот.
Забелешки
- Типот на семестар е набројувачки тип semester_type со вредности 'summer' и 'winter'.
Last modified
13 days ago
Last modified on 09/15/26 11:40:51
Note:
See TracWiki
for help on using the wiki.
