Pārlūkot izejas kodu

Minor changes see BT#10849

jmontoyaa 8 gadi atpakaļ
vecāks
revīzija
cc6fc9618f

+ 124 - 15
load_search.php

@@ -84,14 +84,14 @@ switch ($action) {
             false
         );
         Display::addFlash(Display::return_message(get_lang('UserAdded')));
-        header("Location: ".api_get_self().'?user_id='.$userToLoad);
+        header("Location: ".api_get_self().'?user_id='.$userToLoad.'#session-table');
         exit;
         break;
     case 'unsubscribe_user':
         $sessionId = isset($_GET['session_id']) ? $_GET['session_id'] : '';
         SessionManager::unsubscribe_user_from_session($sessionId, $userToLoad);
         Display::addFlash(Display::return_message(get_lang('Unsubscribed')));
-        header("Location: ".api_get_self().'?user_id='.$userToLoad);
+        header("Location: ".api_get_self().'?user_id='.$userToLoad.'#session-table');
         break;
 }
 
@@ -122,7 +122,7 @@ if ($userToLoad) {
     $formSearch->setDefaults(['user_id' => $userToLoad]);
 }
 
-$formSearch->addButtonSearch(get_lang('Search'), 'save');
+$formSearch->addButtonSearch(get_lang('ShowDiagnostic'), 'save');
 
 $form = new FormValidator('search', 'post', api_get_self().'?user_id='.$userToLoad.'#session-table');
 $form->addHeader(get_lang('Diagnosis'));
@@ -172,8 +172,13 @@ if ($userToLoadInfo) {
 $extraFieldUser = new ExtraField('user');
 
 $userForm = new FormValidator('user_form', 'post', api_get_self());
-$panel = Display::panel(get_lang('FiliereExplanation'), '', '', '',  '', 'filiere_panel');
-$userForm->addHtml(Display::url(get_lang('Filiere'), '#', ['id'=> 'filiere']).''.$panel);
+
+$userForm->addHtml('<div class="panel-group" id="search_extrafield" role="tablist" aria-multiselectable="true">');
+$userForm->addHtml('<div class="panel panel-default">');
+$userForm->addHtml('<div class="panel-heading"><a role="button" data-toggle="collapse" data-parent="#search_extrafield" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">' . get_lang('Filiere') . '</a></div>');
+$userForm->addHtml('<div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">');
+$userForm->addHtml('<div class="panel-body"><p class="text-info">' . get_lang('FiliereExplanation') .'</p>');
+
 $fieldsToShow = [
     'statusocial',
     'filiere_user',
@@ -199,8 +204,12 @@ $extra = $extraFieldUser->addElements(
     $fieldsToShow
 );
 
-$panel = Display::panel(get_lang('DisponibilitePendantMonStageExplanation'), '', '', '',  '', 'dispo_pendant_panel');
-$userForm->addHtml(Display::url(get_lang('DisponibilitePendantMonStage'), '#', ['id'=> 'dispo_pendant']).''.$panel);
+$userForm->addHtml('</div></div></div>');
+
+$userForm->addHtml('<div class="panel panel-default">');
+$userForm->addHtml('<div class="panel-heading"><a role="button" data-toggle="collapse" data-parent="#search_extrafield" href="#collapseThree" aria-expanded="true" aria-controls="collapseThree">' . get_lang('DisponibilitePendantMonStage') . '</a></div>');
+$userForm->addHtml('<div id="collapseThree" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingThree">');
+$userForm->addHtml('<div class="panel-body"><p class="text-info">' . get_lang('DisponibilitePendantMonStageExplanation') . '</p>');
 
 $fieldsToShow = [
     'datedebutstage',
@@ -226,9 +235,13 @@ $extra = $extraFieldUser->addElements(
     $fieldsToShow
 );
 
+$userForm->addHtml('</div></div></div>');
+
 
-$panel = Display::panel(get_lang('ObjectifsApprentissageExplanation'), '', '', '',  '', 'objectifs_panel');
-$userForm->addHtml(Display::url(get_lang('ObjectifsApprentissage'), '#', ['id'=> 'objectifs']).''.$panel);
+$userForm->addHtml('<div class="panel panel-default">');
+$userForm->addHtml('<div class="panel-heading"><a role="button" data-toggle="collapse" data-parent="#search_extrafield" href="#collapseSix" aria-expanded="true" aria-controls="collapseSix">' . get_lang('ObjectifsApprentissage') . '</a></div>');
+$userForm->addHtml('<div id="collapseSix" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingSix">');
+$userForm->addHtml('<div class="panel-body"><p class="text-info">' . get_lang('ObjectifsApprentissageExplanation') . '</p>');
 
 $fieldsToShow = [
     'objectif_apprentissage'
@@ -252,8 +265,12 @@ $extra = $extraFieldUser->addElements(
 );
 
 
-$panel = Display::panel(get_lang('MethodeTravailExplanation'), '', '', '',  '', 'methode_panel');
-$userForm->addHtml(Display::url(get_lang('MethodeTravail'), '#', ['id'=> 'methode']).''.$panel);
+$userForm->addHtml('</div></div></div>');
+
+$userForm->addHtml('<div class="panel panel-default">');
+$userForm->addHtml('<div class="panel-heading"><a role="button" data-toggle="collapse" data-parent="#search_extrafield" href="#collapseSeven" aria-expanded="true" aria-controls="collapseSeven">' . get_lang('MethodeTravail') . '</a></div>');
+$userForm->addHtml('<div id="collapseSeven" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingSeven">');
+$userForm->addHtml('<div class="panel-body"><p class="text-info">' . get_lang('MethodeTravailExplanation') . '</p>');
 
 $fieldsToShow = [
     'methode_de_travaille',
@@ -277,6 +294,13 @@ $extra = $extraFieldUser->addElements(
     $fieldsToShow
 );
 
+$userForm->addHtml('</div></div></div>');
+
+$form->addHtml('<div class="panel panel-default">');
+$form->addHtml('<div class="panel-heading"><a role="button" data-toggle="collapse" data-parent="#search_extrafield" href="#collapseTwo" aria-expanded="true" aria-controls="collapseTwo">' . get_lang('DisponibiliteAvant') . '</a></div>');
+$form->addHtml('<div id="collapseTwo" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingTwo">');
+$form->addHtml('<div class="panel-body"><p class="text-info">' . get_lang('DisponibiliteAvantExplanation') . '</p>');
+
 
 // Session fields
 $showOnlyThisFields = [
@@ -318,10 +342,60 @@ $extra = $extraFieldUser->addElements(
     $forceShowFields //$forceShowFields = false
 );
 
+
+$form->addHtml('</div></div></div>');
+
+$form->addHtml('<div class="panel panel-default">');
+$form->addHtml('<div class="panel-heading"><a role="button" data-toggle="collapse" data-parent="#search_extrafield" href="#collapseFour" aria-expanded="true" aria-controls="collapseFour">' . get_lang('ThemesObjectifs') . '</a></div>');
+$form->addHtml('<div id="collapseFour" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingFour">');
+$form->addHtml('<div class="panel-body"><p class="text-info">' . get_lang('ThemesObjectifsExplanation') . '</p>');
+
 $showOnlyThisFields = [
     'domaine',
     'filiere',
     $theme,
+];
+
+$extra = $extraField->addElements(
+    $form,
+    '',
+    [],
+    false, //filter
+    true,
+    $showOnlyThisFields,
+    $showOnlyThisFields,
+    $defaults,
+    [],
+    false, //$orderDependingDefaults
+    true, // force
+    [ 'domaine' => 3, $theme => 5], // $separateExtraMultipleSelect
+    [
+        'domaine' => [
+            get_lang('Domaine').' 1',
+            get_lang('Domaine').' 2',
+            get_lang('Domaine').' 3'
+        ],
+        $theme  => [
+            get_lang('Theme').' 1',
+            get_lang('Theme').' 2',
+            get_lang('Theme').' 3',
+            get_lang('Theme').' 4',
+            get_lang('Theme').' 5'
+        ],
+    ]
+);
+
+$form->addHtml('</div></div></div>');
+
+
+
+
+$form->addHtml('<div class="panel panel-default">');
+$form->addHtml('<div class="panel-heading"><a role="button" data-toggle="collapse" data-parent="#search_extrafield" href="#collapseFive" aria-expanded="true" aria-controls="collapseFive">' . get_lang('NiveauLangue') . '</a></div>');
+$form->addHtml('<div id="collapseFive" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingFive">');
+$form->addHtml('<div class="panel-body"><p class="text-info">' . get_lang('NiveauLangueExplanation') . '</p>');
+
+$showOnlyThisFields = [
     'ecouter',
     'lire',
     'participer_a_une_conversation',
@@ -358,8 +432,10 @@ $extra = $extraField->addElements(
     ]
 );
 
-$form->addButtonSearch(get_lang('Search'), 'search');
-$form->addButtonSave(get_lang('Save'), 'save');
+$form->addHtml('</div></div></div>');
+
+$form->addButtonSave(get_lang('SaveDiagnosticChanges'), 'save');
+$form->addButtonSearch(get_lang('SearchSessions'), 'search');
 
 $extraFieldsToFilter = $extraField->get_all(array('variable = ?' => 'temps-de-travail'));
 $extraFieldToSearch = array();
@@ -649,12 +725,15 @@ if (!empty($filterToSend)) {
         ((s.access_start_date = '' OR s.access_start_date IS NULL) AND (s.access_end_date = '' OR s.access_end_date IS NULL))
     )";
 
+    $deleteFiliere = false;
+
     $extraFieldOptions = new ExtraFieldOption('session');
     $extraFieldSession = new ExtraField('session');
 
     // Special filters
     // see https://task.beeznest.com/issues/10849#change-81902
     foreach ($filterToSend['rules'] as &$filterItem) {
+        if (isset($filterItem['field']))
         switch ($filterItem['field']) {
             case 'extra_ecouter':
             case 'extra_lire':
@@ -736,7 +815,7 @@ if (!empty($filterToSend)) {
 
         if ($deleteFiliere) {
             foreach ($filterToSend['rules'] as &$filterItem) {
-                if ($filterItem['field'] == 'extra_filiere') {
+                if (isset($filterItem['field']) && $filterItem['field'] == 'extra_filiere') {
                     $filterItem = [];
                 }
             }
@@ -798,6 +877,31 @@ $grid = '<div id="session-table" class="table-responsive">';
 $grid .= Display::grid_html('sessions');
 $grid .= '</div>';
 
+$htmlHeadXtra[] ='<style>
+	.control-label {
+	    width: 25% !important;
+	}
+</style>';
+
+$htmlHeadXtra[] ='<script>		
+$(document).ready(function() {
+	var blocks = [
+        "#collapseOne",
+        "#collapseTwo",
+        "#collapseThree",
+        "#collapseFour",
+        "#collapseFive",
+        "#collapseSix",
+        "#collapseSeven"         
+    ];
+    
+    $.each(blocks, function( index, value ) {    
+        $(value).collapse("hide");
+    });	
+});		
+</script>';
+
+
 $tpl = new Template(get_lang('Diagnosis'));
 
 if (empty($items)) {
@@ -893,7 +997,12 @@ if ($userToLoad) {
     $button .= '<br /><br />';
 }
 
-$tpl->assign('grid', $grid.$button.$table->toHtml());
+$userReportButton = Display::url(
+    get_lang('DiagnosticValidateLearningPath'),
+    api_get_path(WEB_CODE_PATH).'mySpace/myStudents.php?student='.$userToLoad,
+    ['class' => 'btn btn-primary']
+);
+$tpl->assign('grid', $grid.$button.$table->toHtml().$userReportButton);
 $tpl->assign('grid_js', $griJs);
 
 $content = $tpl->fetch('default/user_portal/search_extra_field.tpl');

+ 3 - 0
main/inc/ajax/model.ajax.php

@@ -147,6 +147,9 @@ if ((isset($_REQUEST['filters2']) && $forceSearch) || ($search || $forceSearch)
                 $extraField = new ExtraField($type);
 
                 foreach ($filters->rules as $key => $data) {
+                    if (empty($data)) {
+                        continue;
+                    }
                     if ($data->field == 'extra_access_start_date') {
                         $accessStartDate = $data->data;
                     }

+ 6 - 1
main/inc/lib/extra_field.lib.php

@@ -2605,8 +2605,10 @@ JAVASCRIPT;
         // Getting double select if exists
         $double_select = array();
         foreach ($filters->rules as $rule) {
+            if (empty($rule)) {
+                continue;
+            }
             if (strpos($rule->field, '_second') === false) {
-
             } else {
                 $my_field = str_replace('_second', '', $rule->field);
                 $double_select[$my_field] = $rule->data;
@@ -2615,6 +2617,9 @@ JAVASCRIPT;
 
         $condition_array = array();
         foreach ($filters->rules as $rule) {
+            if (empty($rule)) {
+                continue;
+            }
             if (strpos($rule->field, $stringToSearch) === false) {
                 // normal fields
                 $field = $rule->field;

+ 5 - 2
main/inc/lib/sessionmanager.lib.php

@@ -381,7 +381,6 @@ class SessionManager
                 $where $where_condition ) as session_table";
 
         if (api_is_multiple_url_enabled()) {
-
             $access_url_id = api_get_current_access_url_id();
             if ($access_url_id != -1) {
                 $where.= " AND ar.access_url_id = $access_url_id ";
@@ -518,7 +517,7 @@ class SessionManager
         }
 
         if (api_is_multiple_url_enabled()) {
-            $table_access_url_rel_session= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
+            $table_access_url_rel_session = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
             $access_url_id = api_get_current_access_url_id();
             if ($access_url_id != -1) {
                 $where.= " AND ar.access_url_id = $access_url_id ";
@@ -560,6 +559,10 @@ class SessionManager
                 if (api_is_platform_admin()) {
                     $url = api_get_path(WEB_CODE_PATH)."session/resume_session.php?id_session=".$session['id'];
                 }
+
+                if ($extraFieldsToLoad) {
+                    $url = api_get_path(WEB_CODE_PATH)."session/about.php?session_id=".$session['id'];
+                }
                 $session['name'] = Display::url(
                     $session['name'],
                     $url

+ 2 - 3
main/inc/lib/usermanager.lib.php

@@ -2635,8 +2635,8 @@ class UserManager
                     s.coachAccessStartDate AS coach_access_start_date,
                     s.coachAccessEndDate AS coach_access_end_date
                 FROM ChamiloCoreBundle:Session AS s
-                LEFT JOIN ChamiloCoreBundle:SessionCategory AS sc WITH s.category = sc
-                LEFT JOIN ChamiloCoreBundle:SessionRelCourseRelUser AS scu WITH scu.session = s
+                INNER JOIN ChamiloCoreBundle:SessionRelCourseRelUser AS scu WITH scu.session = s
+                LEFT JOIN ChamiloCoreBundle:SessionCategory AS sc WITH s.category = sc                
                 WHERE scu.user = :user OR s.generalCoach = :user
                 ORDER BY sc.name, s.name";
 
@@ -2661,7 +2661,6 @@ class UserManager
                         if ($row['access_end_date'] > $now) {
                             continue;
                         }
-
                     }
                 } else {
                     // Current user portal

+ 50 - 14
search.php

@@ -73,7 +73,7 @@ switch ($lang) {
 }
 
 $htmlHeadXtra[] ='<script>
-$(document).ready(function() {    
+$(document).ready(function() {  
     var themeDefault = "extra_'.$theme.'";
     var extraFiliere = $("input[name=\'extra_filiere[extra_filiere]\']").parent().parent().parent().parent();    
     '.$defaultValueStatus.'
@@ -248,14 +248,23 @@ $userForm = new FormValidator('user_form', 'post', api_get_self());
 $jqueryExtra = '';
 
 $htmlHeadXtra[] ='<script>		
-$(document).ready(function() {	
-	$("#collapseOne").collapse("hide");
-	$("#collapseTwo").collapse("hide");
-	$("#collapseThree").collapse("hide");
-	$("#collapseFour").collapse("hide");
-	$("#collapseFive").collapse("hide");
-	$("#collapseSix").collapse("hide");
-	$("#collapseSeven").collapse("hide");
+$(document).ready(function() {
+	var blocks = [
+        "#collapseOne",
+        "#collapseTwo",
+        "#collapseThree",
+        "#collapseFour",
+        "#collapseFive",
+        "#collapseSix",
+        "#collapseSeven"         
+    ];
+    
+    $.each(blocks, function( index, value ) {          	
+        if (window.location.hash == value) {            
+            return true;
+        }
+        $(value).collapse("hide");
+    });	   
 	
     /*$("#filiere_panel").hide();			
     $("#dispo_panel").hide();    		
@@ -362,6 +371,7 @@ $extra = $extraFieldSession->addElements(
 
 $jqueryExtra .= $extra['jquery_ready_content'];
 
+$userForm->addButtonSave(get_lang('Save'), 'submit_partial[collapseOne]');
 $userForm->addHtml('</div></div></div>');
 
 $userForm->addHtml('<div class="panel panel-default">');
@@ -408,6 +418,8 @@ $extra = $extraField->addElements(
     $forceShowFields //$forceShowFields = false
 );
 
+$userForm->addButtonSave(get_lang('Save'), 'submit_partial[collapseTwo]');
+
 $jqueryExtra .= $extra['jquery_ready_content'];
 
 $userForm->addHtml('</div></div></div>');
@@ -441,6 +453,7 @@ $extra = $extraField->addElements(
 
 $jqueryExtra .= $extra['jquery_ready_content'];
 
+$userForm->addButtonSave(get_lang('Save'), 'submit_partial[collapseThree]');
 $userForm->addHtml('</div></div></div>');
 
 $userForm->addHtml('<div class="panel panel-default">');
@@ -491,6 +504,8 @@ $extra = $extraFieldSession->addElements(
 );
 
 $jqueryExtra .= $extra['jquery_ready_content'];
+
+$userForm->addButtonSave(get_lang('Save'), 'submit_partial[collapseFour]');
 $userForm->addHtml('</div></div></div>');
 
 $userForm->addHtml('<div class="panel panel-default">');
@@ -522,6 +537,8 @@ $extra = $extraFieldSession->addElements(
 );
 
 $jqueryExtra .= $extra['jquery_ready_content'];
+
+$userForm->addButtonSave(get_lang('Save'), 'submit_partial[collapseFive]');
 $userForm->addHtml('</div></div></div>');
 
 $userForm->addHtml('<div class="panel panel-default">');
@@ -548,6 +565,8 @@ $extra = $extraField->addElements(
 );
 
 $jqueryExtra .= $extra['jquery_ready_content'];
+
+$userForm->addButtonSave(get_lang('Save'), 'submit_partial[collapseSix]');
 $userForm->addHtml('</div></div></div>');
 
 $userForm->addHtml('<div class="panel panel-default">');
@@ -575,6 +594,8 @@ $extra = $extraField->addElements(
 );
 
 $jqueryExtra .= $extra['jquery_ready_content'];
+
+$userForm->addButtonSave(get_lang('Save'), 'submit_partial[collapseSeven]');
 $userForm->addHtml('</div></div></div>');
 $userForm->addHtml('</div>');
 
@@ -584,7 +605,7 @@ $(document).ready(function(){
 });
 </script>';
 
-$userForm->addButtonSave(get_lang('Save'));
+$userForm->addButtonSave(get_lang('Send'));
 $userForm->setDefaults($defaults);
 
 /** @var HTML_QuickForm_select $element */
@@ -625,7 +646,17 @@ if ($userForm->validate()) {
     // Saving to user extra fields
     $extraFieldValue = new ExtraFieldValue('user');
     $userData = $userForm->getSubmitValues();
-    $userData['extra_diagnosis_completed'] = 1;
+    $isPartial = false;
+    $block = '';
+    if (isset($userData['submit_partial'])) {
+        $block = key($userData['submit_partial']);
+        $isPartial = true;
+    }
+
+    if ($isPartial === false) {
+        $userData['extra_diagnosis_completed'] = 1;
+    }
+
     $extraFieldValue->saveFieldValues(
         $userData,
         $forceShowFields,
@@ -663,7 +694,6 @@ if ($userForm->validate()) {
 
     foreach ($userData as $key => $value) {
         $found = strpos($key, '__persist__');
-
         if ($found === false) {
             continue;
         }
@@ -736,7 +766,7 @@ if ($userForm->validate()) {
 
     $superiorUserList = UserManager::getStudentBossList($userInfo['user_id']);
 
-    if ($superiorUserList) {
+    if ($superiorUserList && $isPartial == false) {
         $url = api_get_path(WEB_PATH).'load_search.php?user_id='.$userInfo['user_id'];
         $urlContact = api_get_path(WEB_CODE_PATH) . 'messages/inbox.php?f=social';
         $subject = sprintf(get_lang('DiagnosisFromUserX'), $userInfo['complete_name']);
@@ -751,7 +781,13 @@ if ($userForm->validate()) {
         }
     }
 
-    header('Location:'.api_get_self().'?result=1');
+    if ($isPartial) {
+        header('Location:'.api_get_self().'#'.$block);
+    } else {
+        header('Location:'.api_get_self().'?result=1');
+    }
+
+
     exit;
 }