Add numberOfSessions to class form and fix attendance navigation.
Editable session count on the class edit page and corrected redirects back to the attendance list route.
This commit is contained in:
@@ -45,6 +45,11 @@
|
||||
<InputNumber v-model="form.freeSpots" :min="0" class="w-full text-sm" placeholder="دستی" />
|
||||
</div>
|
||||
|
||||
<div class="col-12 md:col-3 flex flex-column gap-2">
|
||||
<label class="font-semibold text-sm">تعداد جلسات</label>
|
||||
<InputNumber v-model="form.numberOfSessions" :min="1" class="w-full text-sm" placeholder="مثلا ۱۲" />
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<div class="flex flex-column gap-2 p-3 border-1 border-color border-round">
|
||||
<div class="flex align-items-center gap-2">
|
||||
@@ -303,6 +308,7 @@ const form = reactive({
|
||||
days: [],
|
||||
startTime: '',
|
||||
endTime: '',
|
||||
numberOfSessions: null,
|
||||
isActive: true,
|
||||
adminNotes: []
|
||||
});
|
||||
@@ -359,6 +365,9 @@ const applyCourseDefaults = (course) => {
|
||||
}
|
||||
if (course.capacity) form.capacity = course.capacity;
|
||||
if (course.price != null) form.tuitionFee = course.price;
|
||||
if (form.numberOfSessions == null && course.sectionCount) {
|
||||
form.numberOfSessions = course.sectionCount;
|
||||
}
|
||||
if (course.sectionCount) defaultSessionCount.value = course.sectionCount;
|
||||
};
|
||||
|
||||
@@ -400,11 +409,16 @@ const fetchData = async () => {
|
||||
days: Array.isArray(data.days) ? data.days.map(Number).filter((day) => day >= 0 && day <= 6) : [],
|
||||
startTime: data.startTime || '',
|
||||
endTime: data.endTime || '',
|
||||
numberOfSessions: data.numberOfSessions ?? null,
|
||||
isActive: data.isActive !== false,
|
||||
adminNotes: Array.isArray(data.adminNotes) ? [...data.adminNotes] : []
|
||||
});
|
||||
students.value = data.students || [];
|
||||
if (data.course?.sectionCount) defaultSessionCount.value = data.course.sectionCount;
|
||||
if (data.numberOfSessions) {
|
||||
defaultSessionCount.value = data.numberOfSessions;
|
||||
} else if (data.course?.sectionCount) {
|
||||
defaultSessionCount.value = data.course.sectionCount;
|
||||
}
|
||||
} else if (queryCourseId) {
|
||||
const linked = courses.value.find((c) => String(c._id) === String(queryCourseId));
|
||||
if (linked) {
|
||||
@@ -443,6 +457,7 @@ const handleSubmit = async () => {
|
||||
days: form.days || [],
|
||||
startTime: form.startTime || '',
|
||||
endTime: form.endTime || '',
|
||||
numberOfSessions: form.numberOfSessions,
|
||||
isActive: form.isActive,
|
||||
adminNotes: (form.adminNotes || []).map((n) => String(n).trim()).filter(Boolean)
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user