Fix extra field save BT#16789

pull/4101/head
Julio Montoya 6 years ago
parent 542c65a1da
commit d27cdc2d03
  1. 9
      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;
@ -12,7 +13,7 @@ $htmlHeadXtra[] = '<link href="'.api_get_path(WEB_PATH).'web/assets/cropper/dis
$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_PATH).'web/assets/cropper/dist/cropper.min.js"></script>';
$htmlHeadXtra[] = '<script>
$(document).ready(function() {
$(function() {
$("#filiere").on("click", function() {
$("#filiere_panel").toggle();
return false;
@ -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
@ -1040,7 +1043,7 @@ $htmlHeadXtra[] = '<style>
</style>';
$htmlHeadXtra[] = '<script>
$(document).ready(function() {
$(function() {
var blocks = [
"#collapseOne",
"#collapseTwo",

@ -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