Fix extra field save BT#16789

pull/4101/head
Julio Montoya 6 years ago
parent 542c65a1da
commit d27cdc2d03
  1. 101
      load_search.php
  2. 9
      main/inc/lib/extra_field_value.lib.php
  3. 25
      search.php

@ -1,4 +1,5 @@
<?php
/* For licensing terms, see /license.txt */
use Chamilo\CoreBundle\Entity\ExtraFieldSavedSearch;
@ -11,43 +12,43 @@ require_once 'main/inc/global.inc.php';
$htmlHeadXtra[] = '<link href="'.api_get_path(WEB_PATH).'web/assets/cropper/dist/cropper.min.css" rel="stylesheet">';
$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_PATH).'web/assets/cropper/dist/cropper.min.js"></script>';
$htmlHeadXtra[] = '<script>
$(document).ready(function() {
$("#filiere").on("click", function() {
$("#filiere_panel").toggle();
return false;
});
$("#dispo").on("click", function() {
$("#dispo_panel").toggle();
return false;
});
$("#dispo_pendant").on("click", function() {
$("#dispo_pendant_panel").toggle();
return false;
});
$("#niveau").on("click", function() {
$("#niveau_panel").toggle();
return false;
});
$("#methode").on("click", function() {
$("#methode_panel").toggle();
return false;
});
$("#themes").on("click", function() {
$("#themes_panel").toggle();
return false;
});
$("#objectifs").on("click", function() {
$("#objectifs_panel").toggle();
return false;
});
});
$htmlHeadXtra[] = '<script>
$(function() {
$("#filiere").on("click", function() {
$("#filiere_panel").toggle();
return false;
});
$("#dispo").on("click", function() {
$("#dispo_panel").toggle();
return false;
});
$("#dispo_pendant").on("click", function() {
$("#dispo_pendant_panel").toggle();
return false;
});
$("#niveau").on("click", function() {
$("#niveau_panel").toggle();
return false;
});
$("#methode").on("click", function() {
$("#methode_panel").toggle();
return false;
});
$("#themes").on("click", function() {
$("#themes_panel").toggle();
return false;
});
$("#objectifs").on("click", function() {
$("#objectifs_panel").toggle();
return false;
});
});
</script>';
api_block_anonymous_users();
@ -693,7 +694,9 @@ if ($form->validate()) {
$userDataToSave,
true,
false,
['heures_disponibilite_par_semaine' , 'langue_cible']
['heures_disponibilite_par_semaine', 'langue_cible'],
[],
true
);
// Save session search
@ -836,13 +839,13 @@ if (!empty($filterToSend)) {
// Special OFAJ date logic
if ($userEndDate == '') {
$sql = " AND (
(s.access_start_date >= '$userStartDateMinus') OR
(s.access_start_date >= '$userStartDateMinus') OR
((s.access_start_date = '' OR s.access_start_date IS NULL) AND (s.access_end_date = '' OR s.access_end_date IS NULL))
)";
} else {
$sql = " AND (
(s.access_start_date >= '$userStartDateMinus' AND s.access_end_date < '$userEndDatePlus') OR
(s.access_start_date >= '$userStartDateMinus' AND (s.access_end_date = '' OR s.access_end_date IS NULL)) OR
(s.access_start_date >= '$userStartDateMinus' AND (s.access_end_date = '' OR s.access_end_date IS NULL)) OR
((s.access_start_date = '' OR s.access_start_date IS NULL) AND (s.access_end_date = '' OR s.access_end_date IS NULL))
)";
}
@ -1007,8 +1010,8 @@ if (!empty($sessionByUserList)) {
}
}
$action_links = 'function action_formatter(cellvalue, options, rowObject) {
var sessionList = '.json_encode($sessionUserList).';
var id = options.rowId.toString();
var sessionList = '.json_encode($sessionUserList).';
var id = options.rowId.toString();
if (sessionList.indexOf(id) == -1) {
return \'<a href="'.api_get_self().'?action=subscribe_user&user_id='.$userToLoad.'&session_id=\'+id+\'">'.Display::return_icon('add.png', addslashes(get_lang('Subscribe')), '', ICON_SIZE_SMALL).'</a>'.'\';
} else {
@ -1039,8 +1042,8 @@ $htmlHeadXtra[] = '<style>
}
</style>';
$htmlHeadXtra[] = '<script>
$(document).ready(function() {
$htmlHeadXtra[] = '<script>
$(function() {
var blocks = [
"#collapseOne",
"#collapseTwo",
@ -1049,13 +1052,13 @@ $(document).ready(function() {
"#collapseFive",
"#collapseSix",
"#collapseSeven",
"#collapseEight"
"#collapseEight"
];
$.each(blocks, function( index, value ) {
$.each(blocks, function( index, value ) {
$(value).collapse("hide");
});
});
});
});
</script>';
$tpl = new Template(get_lang('Diagnosis'));

@ -89,10 +89,11 @@ class ExtraFieldValue extends Model
*/
public function saveFieldValues(
$params,
$forceSave = false,
$onlySubmittedFields = false,
$showQuery = false,
$saveOnlyThisFields = [],
$avoidFields = []
$avoidFields = [],
$forceSave = false
) {
foreach ($params as $key => $value) {
$found = strpos($key, '__persist__');
@ -128,6 +129,10 @@ class ExtraFieldValue extends Model
$field_variable = $fieldDetails['variable'];
if ($onlySubmittedFields && !isset($params['extra_'.$field_variable])) {
continue;
}
if (!empty($avoidFields)) {
if (in_array($field_variable, $avoidFields)) {
continue;

@ -22,8 +22,8 @@ $form->addHeader(get_lang('Diagnosis'));
/** @var ExtraFieldSavedSearch $saved */
$search = ['user' => $userId];
$items = $em->getRepository('ChamiloCoreBundle:ExtraFieldSavedSearch')->findBy($search);
$extraFieldSavedSearchRepo = $em->getRepository('ChamiloCoreBundle:ExtraFieldSavedSearch');
$items = $extraFieldSavedSearchRepo->findBy($search);
$extraFieldSession = new ExtraField('session');
$extraFieldValueSession = new ExtraFieldValue('session');
@ -698,7 +698,7 @@ $userForm->addHtml('</div>');
$userForm->addHtml('</div>');
$htmlHeadXtra[] = '<script>
$(document).ready(function(){
$(function () {
'.$jqueryExtra.'
});
</script>';
@ -718,8 +718,8 @@ $domainList = array_merge(
);
$themeList = [];
$extraField = new ExtraField('session');
$resultOptions = $extraField->searchOptionsFromTags(
$resultOptions = $extraFieldSession->searchOptionsFromTags(
'extra_domaine',
'extra_'.$theme,
$domainList
@ -755,10 +755,11 @@ if ($userForm->validate()) {
$extraFieldValue->saveFieldValues(
$userData,
$adminPermissions,
true,
false,
[],
['legal_accept']
['legal_accept'],
true
);
// Saving to extra_field_saved_search
@ -809,6 +810,8 @@ if ($userForm->validate()) {
}
// save in ExtraFieldSavedSearch.
$extraFieldRepo = $em->getRepository('ChamiloCoreBundle:ExtraField');
foreach ($userData as $key => $value) {
if (substr($key, 0, 6) != 'extra_' && substr($key, 0, 7) != '_extra_') {
continue;
@ -828,18 +831,14 @@ if ($userForm->validate()) {
continue;
}
$extraFieldObj = $em
->getRepository('ChamiloCoreBundle:ExtraField')
->find($extraFieldInfo['id'])
;
$extraFieldObj = $extraFieldRepo->find($extraFieldInfo['id']);
$search = [
'field' => $extraFieldObj,
'user' => $user,
];
/** @var ExtraFieldSavedSearch $saved */
$saved = $em->getRepository('ChamiloCoreBundle:ExtraFieldSavedSearch')->findOneBy($search);
$saved = $extraFieldSavedSearchRepo->findOneBy($search);
if ($saved) {
$saved

Loading…
Cancel
Save