diff --git a/plugin/advanced_subscription/lang/english.php b/plugin/advanced_subscription/lang/english.php index b3d969749a..e66f7ab411 100644 --- a/plugin/advanced_subscription/lang/english.php +++ b/plugin/advanced_subscription/lang/english.php @@ -62,6 +62,7 @@ $strings['RecommendedNumberOfParticipants'] = 'Recommended number of participant $strings['PublicationEndDate'] = 'Publication end date'; $strings['Mode'] = 'Mode'; $strings['Postulant'] = 'Postulant'; +$strings['Area'] = 'Area'; $strings['InscriptionDate'] = 'Inscription date'; $strings['BossValidation'] = 'Boss validation'; $strings['Decision'] = 'Decision'; diff --git a/plugin/advanced_subscription/lang/spanish.php b/plugin/advanced_subscription/lang/spanish.php index 7e73b25434..c8f73ed079 100644 --- a/plugin/advanced_subscription/lang/spanish.php +++ b/plugin/advanced_subscription/lang/spanish.php @@ -62,6 +62,7 @@ $strings['RecommendedNumberOfParticipants'] = 'Número recomendado de participan $strings['PublicationEndDate'] = 'Fecha fin de publicación'; $strings['Mode'] = 'Modalidad'; $strings['Postulant'] = 'Postulante'; +$strings['Area'] = 'Área'; $strings['InscriptionDate'] = 'Fecha de inscripción'; $strings['BossValidation'] = 'Validación del superior'; $strings['Decision'] = 'Decisión'; diff --git a/plugin/advanced_subscription/src/AdvancedSubscriptionPlugin.php b/plugin/advanced_subscription/src/AdvancedSubscriptionPlugin.php index 73850528bb..2ab67ee3c8 100644 --- a/plugin/advanced_subscription/src/AdvancedSubscriptionPlugin.php +++ b/plugin/advanced_subscription/src/AdvancedSubscriptionPlugin.php @@ -50,6 +50,7 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface public function install() { $this->installDatabase(); + $this->addAreaField(); $this->installHook(); } @@ -60,9 +61,43 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface public function uninstall() { $this->uninstallHook(); + // Note: Keeping area field data is intended so it will not be removed $this->uninstallDatabase(); } + /** + * addAreaField() (adds an area field if it is not already created) + * @return void + */ + private function addAreaField() + { + $result = Database::select( + 'field_variable', + 'user_field', + array( + 'where'=> array( + 'field_variable = ? ' => array( + 'area' + ) + ) + ) + ); + if (empty($result)) { + require_once api_get_path(LIBRARY_PATH).'extra_field.lib.php'; + $extraField = new Extrafield('user'); + $extraField->save(array( + 'field_type' => 1, + 'field_variable' => 'area', + 'field_display_text' => get_plugin_lang('Area', 'AdvancedSubscriptionPlugin'), + 'field_default_value' => null, + 'field_order' => null, + 'field_visible' => 1, + 'field_changeable' => 1, + 'field_filter' => null + )); + } + } + /** * Create the database tables for the plugin * @return void diff --git a/plugin/advanced_subscription/src/admin_view.php b/plugin/advanced_subscription/src/admin_view.php index 99e0966318..f49badf679 100644 --- a/plugin/advanced_subscription/src/admin_view.php +++ b/plugin/advanced_subscription/src/admin_view.php @@ -59,7 +59,9 @@ if (!empty($sessionId)) { $isWesternNameOrder = api_is_western_name_order(); foreach ($studentList['students'] as &$student) { - $data['studentUserId'] = intval($student['user_id']); + $studentId = intval($student['user_id']); + $data['studentUserId'] = $studentId; + $student['area'] = UserManager::get_user_info_by_id($studentId)['extra']['area']; $data['queueId'] = intval($student['queue_id']); $data['newStatus'] = ADVANCED_SUBSCRIPTION_QUEUE_STATUS_ADMIN_APPROVED; $student['acceptUrl'] = $plugin->getQueueUrl($data); diff --git a/plugin/advanced_subscription/views/admin_view.tpl b/plugin/advanced_subscription/views/admin_view.tpl index ac1178a6e1..0ec366d6dc 100644 --- a/plugin/advanced_subscription/views/admin_view.tpl +++ b/plugin/advanced_subscription/views/admin_view.tpl @@ -39,6 +39,7 @@