Изменил логику в группах, вместо семестра теперь пишется год начала обучения, чтобы курс и семестр считались на бэке

This commit is contained in:
ProstoDenya01
2026-03-31 16:44:05 +03:00
parent 73995f86f8
commit 3cdb8614cb
14 changed files with 206 additions and 118 deletions

View File

@@ -46,7 +46,7 @@ export async function initDepartment() {
}
});
function renderScheduleBlock(deptName, semester, period, schedule) {
function renderScheduleBlock(deptName, groupSemester, period, schedule) {
const details = document.createElement('details');
details.className = 'table-item';
details.open = true;
@@ -61,7 +61,7 @@ export async function initDepartment() {
<div class="title title-multiline">
<span class="title-main">Данные к составлению расписания</span>
<span class="title-sub">Кафедра: <b>${escapeHtml(deptName)}</b></span>
<span class="title-sub">Семестр: <b>${escapeHtml(semester)}</b></span>
<span class="title-sub">Семестр: <b>${escapeHtml(groupSemester)}</b></span>
<span class="title-sub">Уч. год: <b>${escapeHtml(period)}</b></span>
</div>
<div class="meta">${schedule ? schedule.length : 0} записей</div>
@@ -98,9 +98,9 @@ export async function initDepartment() {
<td>${escapeHtml(r.specialityCode || '-')}</td>
<td>${(() => {
const course = r.groupCourse || '-';
const semester = r.semester || '-';
if (course === '-' && semester === '-') return '-';
return `${course} | ${semester}`;
const groupSemester = r.groupSemester || '-';
if (course === '-' && groupSemester === '-') return '-';
return `${course} | ${groupSemester}`;
})()}</td>
<td>${escapeHtml(r.groupName || '-')}</td>
<td>${escapeHtml(r.subjectName || '-')}</td>
@@ -237,7 +237,7 @@ export async function initDepartment() {
<tr${rowStyle}>
<td>${escapeHtml(periodDisplay)}</td>
<td>${escapeHtml(semLabel)}</td>
<td>${s.semester}</td>
<td>${s.groupSemester}</td>
<td>${escapeHtml(String(groupName))}</td>
<td>${escapeHtml(String(subjectName))}</td>
<td>${escapeHtml(lessonTypeName)}</td>
@@ -283,7 +283,7 @@ export async function initDepartment() {
const depId = csDepartmentIdInput.value;
const period = document.getElementById('cs-period').value;
const semesterType = document.querySelector('input[name="csSemesterType"]:checked')?.value;
const semester = document.getElementById('cs-semester').value;
const groupSemester = document.getElementById('cs-semester').value;
const groupId = csGroupSelect.value;
const subjectId = csSubjectSelect.value;
const lessonTypeId = document.getElementById('cs-lesson-type').value;
@@ -291,14 +291,14 @@ export async function initDepartment() {
const division = document.getElementById('cs-division').checked;
const teacherId = csTeacherSelect.value;
if (!period || !semesterType || !semester || !groupId || !subjectId || !lessonTypeId || !hours || !teacherId) {
if (!period || !semesterType || !groupId || !subjectId || !lessonTypeId || !hours || !teacherId) {
showAlert('create-schedule-alert', 'Заполните все обязательные поля', 'error');
return;
}
const newRecord = {
departmentId: Number(depId),
semester: Number(semester),
groupSemester: Number(groupSemester),
groupId: Number(groupId),
subjectsId: Number(subjectId),
lessonTypeId: Number(lessonTypeId),
@@ -313,7 +313,7 @@ export async function initDepartment() {
const isDuplicate = preparedSchedules.some(s =>
s.period === newRecord.period &&
s.semesterType === newRecord.semesterType &&
s.semester === newRecord.semester &&
s.groupSemester === newRecord.groupSemester &&
s.groupId === newRecord.groupId &&
s.subjectsId === newRecord.subjectsId &&
s.lessonTypeId === newRecord.lessonTypeId &&

View File

@@ -83,13 +83,13 @@ export async function initGroups() {
const groupSize = document.getElementById('new-group-size').value;
const educationFormId = newGroupEfSelect.value;
const departmentId = document.getElementById('new-group-department').value;
const course = document.getElementById('new-group-course').value;
const yearStartStudy = document.getElementById('new-group-yearStartStudy').value;
if (!name) { showAlert('create-group-alert', 'Введите название группы', 'error'); return; }
if (!groupSize) { showAlert('create-group-alert', 'Введите размер группы', 'error'); return; }
if (!educationFormId) { showAlert('create-group-alert', 'Выберите форму обучения', 'error'); return; }
if (!departmentId) { showAlert('create-group-alert', 'Введите ID кафедры', 'error'); return; }
if (!course) { showAlert('create-group-alert', 'Введите курс', 'error'); return; }
if (!yearStartStudy) { showAlert('create-group-alert', 'Введите курс', 'error'); return; }
try {
const data = await api.post('/api/groups', {
@@ -97,7 +97,7 @@ export async function initGroups() {
groupSize: Number(groupSize),
educationFormId: Number(educationFormId),
departmentId: Number(departmentId),
course: Number(course)
yearStartStudy: Number(yearStartStudy)
});
showAlert('create-group-alert', `Группа "${escapeHtml(data.name || name)}" создана`, 'success');
createGroupForm.reset();

View File

@@ -22,8 +22,8 @@
<input type="number" id="new-group-department" placeholder="ID" required>
</div>
<div class="form-group">
<label for="new-group-course">Курс</label>
<input type="number" id="new-group-course" placeholder="1-6" min="1" max="6" required>
<label for="new-group-yearStartStudy">Год начала обучения</label>
<input type="number" id="new-group-yearStartStudy" required pattern="^20\d{2}$" maxlength="3" placeholder="2026">
</div>
<button type="submit" class="btn-primary">Создать</button>
</div>