Admin: Add visibility to course import/export/update through CSV/XML - refs BT#21415

pull/5234/head
Yannick Warnier 2 years ago
parent bef68ffe05
commit 503d9d0ee8
  1. 3
      main/admin/course_export.php
  2. 11
      main/admin/course_import.php
  3. 24
      main/admin/course_update_import.php

@ -63,6 +63,7 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
'CourseCategoryName', 'CourseCategoryName',
'Teacher', 'Teacher',
'Language', 'Language',
'Visibility',
]; ];
if ($includeUsers) { if ($includeUsers) {
$listToExport[0][] = 'Users'; $listToExport[0][] = 'Users';
@ -88,6 +89,8 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
} }
$dataToExport['tutor_name'] = str_replace(';', ',', $course['tutor_name']); $dataToExport['tutor_name'] = str_replace(';', ',', $course['tutor_name']);
$dataToExport['course_language'] = str_replace(';', ',', $course['course_language']); $dataToExport['course_language'] = str_replace(';', ',', $course['course_language']);
$dataToExport['visibility'] = str_replace(';', ',', $course['visibility']);
if ($includeUsers) { if ($includeUsers) {
$dataToExport['students'] = ''; $dataToExport['students'] = '';
$dataToExport['teachers'] = ''; $dataToExport['teachers'] = '';

@ -126,6 +126,9 @@ function save_courses_data($courses)
$params['user_id'] = $creatorId; $params['user_id'] = $creatorId;
$addMeAsTeacher = isset($_POST['add_me_as_teacher']) ? $_POST['add_me_as_teacher'] : false; $addMeAsTeacher = isset($_POST['add_me_as_teacher']) ? $_POST['add_me_as_teacher'] : false;
$params['add_user_as_teacher'] = $addMeAsTeacher; $params['add_user_as_teacher'] = $addMeAsTeacher;
if (isset($course['Visibility'])) {
$params['visibility'] = $course['Visibility'];
}
// Check if there is a course template stated for this course. In that case, we check if that code exists in DB: // Check if there is a course template stated for this course. In that case, we check if that code exists in DB:
if (array_key_exists('CourseTemplate', $course) && $course['CourseTemplate'] != '') { if (array_key_exists('CourseTemplate', $course) && $course['CourseTemplate'] != '') {
@ -267,10 +270,10 @@ $form->display();
<blockquote> <blockquote>
<pre> <pre>
<strong>Code</strong>;<strong>Title</strong>;<strong>CourseCategory</strong>;<strong>CourseCategoryName</strong>;Teacher;Language;CourseTemplate;CloneHomepageTools <strong>Code</strong>;<strong>Title</strong>;<strong>CourseCategory</strong>;<strong>CourseCategoryName</strong>;Teacher;Language;Visibility;CourseTemplate;CloneHomepageTools
BIO0015;Biology;BIO;Science;teacher1;english;TEMPLATE1;true BIO0015;Biology;BIO;Science;teacher1;english;1;TEMPLATE1;true
BIO0016;Maths;MATH;Engineerng;teacher2|teacher3;english;; BIO0016;Maths;MATH;Engineerng;teacher2|teacher3;english;1;;
BIO0017;Language;LANG;;;english;; BIO0017;Language;LANG;;;english;1;;
</pre> </pre>
</blockquote> </blockquote>

@ -11,9 +11,9 @@ api_protect_admin_script();
*/ */
function generateCsvModel(array $fields): string function generateCsvModel(array $fields): string
{ {
$headerCsv = "<strong>Code</strong>;Title;CourseCategory;Language;"; $headerCsv = "<strong>Code</strong>;Title;CourseCategory;Language;Visibility;";
$exampleCsv = "<b>COURSE001</b>;Introduction to Biology;BIO;english;"; $exampleCsv = "<b>COURSE001</b>;Introduction to Biology;BIO;english;1;";
foreach ($fields as $field) { foreach ($fields as $field) {
$fieldType = (int) $field['field_type']; $fieldType = (int) $field['field_type'];
@ -50,6 +50,7 @@ function generateXmlModel(array $fields): string
$modelXml .= " &lt;Title&gt;Introduction to Biology&lt;/Title&gt;\n"; $modelXml .= " &lt;Title&gt;Introduction to Biology&lt;/Title&gt;\n";
$modelXml .= " &lt;CourseCategory&gt;BIO&lt;/CourseCategory&gt;\n"; $modelXml .= " &lt;CourseCategory&gt;BIO&lt;/CourseCategory&gt;\n";
$modelXml .= " &lt;Language&gt;english&lt;/Language&gt;\n"; $modelXml .= " &lt;Language&gt;english&lt;/Language&gt;\n";
$modelXml .= " &lt;Visibility&gt;1&lt;/Visibility&gt;\n";
foreach ($fields as $field) { foreach ($fields as $field) {
switch ($field['field_type']) { switch ($field['field_type']) {
case ExtraField::FIELD_TYPE_CHECKBOX: case ExtraField::FIELD_TYPE_CHECKBOX:
@ -102,12 +103,19 @@ function validateCourseData(array $courses): array
function updateCourse(array $courseData, int $courseId): void function updateCourse(array $courseData, int $courseId): void
{ {
$courseTable = Database::get_main_table(TABLE_MAIN_COURSE); $courseTable = Database::get_main_table(TABLE_MAIN_COURSE);
$params = [ $params = [];
'title' => $courseData['Title'], if (isset($courseData['Title'])) {
'course_language' => $courseData['Language'], $params['title'] = $courseData['Title'];
'category_code' => $courseData['CourseCategory'], }
'visual_code' => $courseData['Code'], if (isset($courseData['Language'])) {
]; $params['course_language'] = $courseData['Language'];
}
if (isset($courseData['CourseCategory'])) {
$params['category_code'] = $courseData['CourseCategory'];
}
if (isset($courseData['Visibility'])) {
$params['visibility'] = $courseData['Visibility'];
}
Database::update($courseTable, $params, ['id = ?' => $courseId]); Database::update($courseTable, $params, ['id = ?' => $courseId]);
$courseData['code'] = $courseData['Code']; $courseData['code'] = $courseData['Code'];
$courseData['item_id'] = $courseId; $courseData['item_id'] = $courseId;

Loading…
Cancel
Save