You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
4.4 KiB
145 lines
4.4 KiB
<?php
|
|
|
|
/* For licensing terms, see /license.txt */
|
|
|
|
require_once __DIR__.'/../inc/global.inc.php';
|
|
|
|
api_protect_course_script(true);
|
|
|
|
$lib_path = api_get_path(LIBRARY_PATH);
|
|
|
|
/* Libraries */
|
|
require_once 'work.lib.php';
|
|
|
|
// Section (for the tabs)
|
|
$this_section = SECTION_COURSES;
|
|
|
|
if (!api_is_allowed_to_edit()) {
|
|
api_not_allowed(true);
|
|
}
|
|
|
|
$blockEdition = api_get_configuration_value('block_student_publication_edition');
|
|
|
|
if ($blockEdition && !api_is_platform_admin()) {
|
|
api_not_allowed(true);
|
|
}
|
|
|
|
$courseInfo = api_get_course_info();
|
|
$sessionId = api_get_session_id();
|
|
$groupId = api_get_group_id();
|
|
$workId = isset($_GET['id']) ? (int) ($_GET['id']) : null;
|
|
$workData = get_work_data_by_id($workId);
|
|
$homework = get_work_assignment_by_id($workId);
|
|
$locked = api_resource_is_locked_by_gradebook($workId, LINK_STUDENTPUBLICATION);
|
|
|
|
if (false == api_is_platform_admin() && true == $locked) {
|
|
api_not_allowed(true);
|
|
}
|
|
|
|
$htmlHeadXtra[] = to_javascript_work();
|
|
$interbreadcrumb[] = [
|
|
'url' => api_get_path(WEB_CODE_PATH).'work/work.php?'.api_get_cidreq(),
|
|
'name' => get_lang('Assignments'),
|
|
];
|
|
$interbreadcrumb[] = ['url' => '#', 'name' => get_lang('Edit')];
|
|
|
|
$form = new FormValidator(
|
|
'edit_dir',
|
|
'post',
|
|
api_get_path(WEB_CODE_PATH).'work/edit_work.php?id='.$workId.'&'.api_get_cidreq()
|
|
);
|
|
$form->addElement('header', get_lang('Edit'));
|
|
|
|
$title = !empty($workData['title']) ? $workData['title'] : basename($workData['url']);
|
|
|
|
$defaults = $workData;
|
|
$defaults['new_dir'] = Security::remove_XSS($title);
|
|
|
|
$there_is_a_end_date = false;
|
|
|
|
if (Gradebook::is_active()) {
|
|
$link_info = GradebookUtils::isResourceInCourseGradebook(
|
|
api_get_course_id(),
|
|
LINK_STUDENTPUBLICATION,
|
|
$workId
|
|
);
|
|
if (!empty($link_info)) {
|
|
$defaults['weight'] = $link_info['weight'];
|
|
$defaults['category_id'] = $link_info['category_id'];
|
|
$defaults['make_calification'] = 1;
|
|
}
|
|
} else {
|
|
$defaults['category_id'] = '';
|
|
}
|
|
if (!empty($homework['expires_on'])) {
|
|
$homework['expires_on'] = api_get_local_time($homework['expires_on']);
|
|
$defaults['enableExpiryDate'] = true;
|
|
$defaults['expires_on'] = $homework['expires_on'];
|
|
} else {
|
|
$homework['expires_on'] = null;
|
|
}
|
|
|
|
if (!empty($homework['ends_on'])) {
|
|
$homework['ends_on'] = api_get_local_time($homework['ends_on']);
|
|
$defaults['ends_on'] = $homework['ends_on'];
|
|
$defaults['enableEndDate'] = true;
|
|
} else {
|
|
$homework['ends_on'] = null;
|
|
$defaults['enableEndDate'] = false;
|
|
$defaults['ends_on'] = null;
|
|
}
|
|
|
|
$defaults['add_to_calendar'] = isset($homework['add_to_calendar']) ? $homework['add_to_calendar'] : null;
|
|
$form = getFormWork($form, $defaults, $workId);
|
|
$form->addElement('hidden', 'work_id', $workId);
|
|
$form->addButtonUpdate(get_lang('Validate'));
|
|
|
|
$currentUrl = api_get_path(WEB_CODE_PATH).'work/edit_work.php?id='.$workId.'&'.api_get_cidreq();
|
|
if ($form->validate()) {
|
|
$params = $form->getSubmitValues();
|
|
$params['enableEndDate'] = isset($params['enableEndDate']) ? true : false;
|
|
$params['enableExpiryDate'] = isset($params['enableExpiryDate']) ? true : false;
|
|
|
|
if ($params['enableExpiryDate'] &&
|
|
$params['enableEndDate']
|
|
) {
|
|
if ($params['expires_on'] > $params['ends_on']) {
|
|
Display::addFlash(
|
|
Display::return_message(
|
|
get_lang('The date of effective blocking of sending the work can not be before the displayed posting deadline.'),
|
|
'warning'
|
|
)
|
|
);
|
|
header('Location: '.$currentUrl);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
$workId = $params['work_id'];
|
|
$editCheck = false;
|
|
$workData = get_work_data_by_id($workId);
|
|
|
|
if (!empty($workData)) {
|
|
$editCheck = true;
|
|
} else {
|
|
$editCheck = true;
|
|
}
|
|
|
|
if ($editCheck) {
|
|
updateWork($workData['iid'], $params, $courseInfo, $sessionId);
|
|
updatePublicationAssignment($workId, $params, $courseInfo, $groupId);
|
|
updateDirName($workData, $params['new_dir']);
|
|
Skill::saveSkills($form, ITEM_TYPE_STUDENT_PUBLICATION, $workData['iid']);
|
|
Display::addFlash(Display::return_message(get_lang('Update successful'), 'success'));
|
|
header('Location: '.$currentUrl);
|
|
exit;
|
|
} else {
|
|
Display::addFlash(Display::return_message(get_lang('The operation is impossible, a file with this name already exists.'), 'warning'));
|
|
}
|
|
}
|
|
|
|
Display::display_header();
|
|
|
|
$form->display();
|
|
|
|
Display :: display_footer();
|
|
|