0 ? get_application($applicationId) : null; $isApprovedSchool = $application && (string) $application['status'] === 'approved'; $values = assessment_defaults(); $errors = []; $cycleContext = ['cycles' => [], 'selected' => null, 'active' => null, 'read_only' => false]; $selectedCycle = null; $selectedCycleId = 0; $isCycleReadOnly = false; $cycleLabel = 'لا توجد دورة بعد'; $available_subjects = []; if ($application) { $center_subjects_ids = is_string($application['subjects']) ? json_decode($application['subjects'], true) : []; if (!is_array($center_subjects_ids)) $center_subjects_ids = []; $center_subjects_ids = array_map('strval', $center_subjects_ids); $all_subjects = get_enabled_subjects(); $available_subjects = array_filter($all_subjects, function($s) use ($center_subjects_ids) { return in_array((string)$s["id"], $center_subjects_ids, true); }); } if ($application && $isApprovedSchool) { $cycleContext = resolve_school_cycle_context((int) $application['id'], $application, $requestedCycleId); $selectedCycle = $cycleContext['selected']; $selectedCycleId = $selectedCycle ? (int) ($selectedCycle['id'] ?? 0) : 0; $isCycleReadOnly = (bool) $cycleContext['read_only']; $cycleLabel = $selectedCycle ? (string) $selectedCycle['cycle_name'] : $cycleLabel; } if ($_SERVER['REQUEST_METHOD'] === 'POST' && $application) { $action = $_POST['action'] ?? 'add'; $assessmentId = filter_input(INPUT_POST, 'assessment_id', FILTER_VALIDATE_INT) ?: 0; [$values, $errors] = validate_assessment_input($_POST); if (!$isApprovedSchool) { $errors['form'] = 'لا يمكن إعداد التقييمات قبل اعتماد المركز.'; } elseif ($selectedCycleId <= 0) { $errors['form'] = 'يرجى إنشاء دورة موسمية أولاً من صفحة المركز.'; } elseif ($isCycleReadOnly) { $errors['form'] = 'هذه الدورة مؤرشفة للقراءة فقط. افتح دورة جديدة أو اختر دورة نشطة لإضافة تقييمات جديدة.'; } if ($errors === []) { try { if ($action === 'edit' && $assessmentId > 0) { update_assessment_type_in_cycle((int) $application['id'], $selectedCycleId, $assessmentId, $values); set_flash('success', 'تم تحديث التقييم بنجاح.'); } else { create_assessment_type_in_cycle((int) $application['id'], $selectedCycleId, $values); set_flash('success', 'تم حفظ التقييم داخل الدورة الموسمية المحددة.'); } header('Location: ' . school_page_url('assessments.php', (int) $application['id'], $selectedCycleId) . '&' . http_build_query(array_intersect_key($_GET, array_flip(['search', 'category', 'subject_id', 'page'])))); exit; } catch (Throwable $exception) { $errors['form'] = 'تعذر حفظ التقييم حالياً. يرجى المحاولة مرة أخرى.'; } } } $filters = [ 'search' => clean_text($_GET['search'] ?? '', 255), 'category' => clean_text($_GET['category'] ?? '', 80), 'subject_id' => clean_text($_GET['subject_id'] ?? '', 20) ]; $page = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT) ?: 1; $limit = 20; $offset = ($page - 1) * $limit; $assessments = $isApprovedSchool && $selectedCycleId > 0 ? list_school_assessments_by_cycle((int) $application['id'], $selectedCycleId, $filters, $limit, $offset) : []; $totalAssessments = $isApprovedSchool && $selectedCycleId > 0 ? count_school_assessments_by_cycle((int) $application['id'], $selectedCycleId, $filters) : 0; $metrics = $isApprovedSchool && $selectedCycleId > 0 ? school_assessment_metrics_by_cycle((int) $application['id'], $selectedCycleId) : [ 'total' => 0, 'active' => 0, 'inactive' => 0, 'total_weight' => 0.0, 'active_weight' => 0.0, 'average_max_score' => 0.0, 'percentage' => 0, 'points' => 0, 'rubric' => 0, ]; $activeWeight = round((float) $metrics['active_weight'], 2); $weightGap = round(100 - $activeWeight, 2); $pageTitle = $application ? 'التقييمات والأوزان: ' . (string) $application['center_name'] . ($selectedCycle ? ' — ' . $cycleLabel : '') : 'التقييمات والأوزان'; $pageDescription = 'صفحة مستقلة لتعريف أنواع التقييم، المقاييس، والأوزان لكل مدرسة معتمدة داخل دورة موسمية محددة.'; $approvedSchoolUrl = $application ? school_page_url('approved_school.php', (int) $application['id'], $selectedCycleId) : 'approved_school.php'; $assessmentScoresUrl = $application ? school_page_url('assessment_scores.php', (int) $application['id'], $selectedCycleId) : 'assessment_scores.php'; $assessmentScoreSheetBaseUrl = $application ? school_page_url('assessment_score_sheet.php', (int) $application['id'], $selectedCycleId) : 'assessment_score_sheet.php'; $criteriaBaseUrl = $application ? school_page_url('assessment_criteria.php', (int) $application['id'], $selectedCycleId) : 'assessment_criteria.php'; if (!$application) { http_response_code(404); } render_page_start($pageTitle, 'approved', $pageDescription, (string) ($application['favicon'] ?? '')); render_flash($flash); ?>
المدرسة غير موجودة

تحقق من رابط المدرسة أو ارجع إلى قائمة المراكز المعتمدة.

المراكز المعتمدة
التقييمات تبدأ بعد الاعتماد

يجب اعتماد المركز أولاً.

صفحة المركز

التقييمات:

إدارة أنواع التقييم وتوزيع الدرجات ضمن الخطة الأكاديمية للدورة .

إدخال الدرجات
هذه الدورة مؤرشفة. التقييمات معروضة للقراءة فقط.
إجمالي الأنواع نوع
المفعّل الآن نوع
الأوزان المفعلة%
لا توجد تقييمات

لم يتم العثور على أنواع تقييم تطابق خياراتك.

التقييم المادة الفئة المقياس الدرجة الوزن البنود الحالة الإجراء
% 0): ?>
بنود
المجموع بدون بنود