From 2167094e11acde267e3bd0334df1a632cf465137 Mon Sep 17 00:00:00 2001 From: Saagar Arya <51128536+skarya22@users.noreply.github.com> Date: Fri, 19 Apr 2024 10:58:21 -0400 Subject: [PATCH] [Acknowledgements] Fix for selecting all roles (#9209) Fix insert statement when too many roles are added by converting the fields from varchar(255) to text. Fixes #9173 --- SQL/0000-00-00-schema.sql | 6 +++--- ...024-04-18-acknowledgements-size-constraints.sql | 3 +++ .../php/acknowledgements.class.inc | 14 +++++++------- 3 files changed, 13 insertions(+), 10 deletions(-) create mode 100644 SQL/New_patches/2024-04-18-acknowledgements-size-constraints.sql diff --git a/SQL/0000-00-00-schema.sql b/SQL/0000-00-00-schema.sql index d18fb02eca2..c9370ffd008 100644 --- a/SQL/0000-00-00-schema.sql +++ b/SQL/0000-00-00-schema.sql @@ -2111,9 +2111,9 @@ CREATE TABLE `acknowledgements` ( `ordering` varchar(255) DEFAULT NULL, `full_name` varchar(255) DEFAULT NULL, `citation_name` varchar(255) DEFAULT NULL, - `affiliations` varchar(255) DEFAULT NULL, - `degrees` varchar(255) DEFAULT NULL, - `roles` varchar(255) DEFAULT NULL, + `affiliations` text DEFAULT NULL, + `degrees` text DEFAULT NULL, + `roles` text DEFAULT NULL, `start_date` date DEFAULT NULL, `end_date` date DEFAULT NULL, `present` enum('Yes', 'No') DEFAULT NULL, diff --git a/SQL/New_patches/2024-04-18-acknowledgements-size-constraints.sql b/SQL/New_patches/2024-04-18-acknowledgements-size-constraints.sql new file mode 100644 index 00000000000..a5a64880339 --- /dev/null +++ b/SQL/New_patches/2024-04-18-acknowledgements-size-constraints.sql @@ -0,0 +1,3 @@ +ALTER TABLE acknowledgements MODIFY affiliations TEXT DEFAULT NULL; +ALTER TABLE acknowledgements MODIFY degrees TEXT DEFAULT NULL; +ALTER TABLE acknowledgements MODIFY roles TEXT DEFAULT NULL; \ No newline at end of file diff --git a/modules/acknowledgements/php/acknowledgements.class.inc b/modules/acknowledgements/php/acknowledgements.class.inc index ec2d7bb703e..97e5139b3ff 100644 --- a/modules/acknowledgements/php/acknowledgements.class.inc +++ b/modules/acknowledgements/php/acknowledgements.class.inc @@ -93,22 +93,22 @@ class Acknowledgements extends \NDB_Menu_Filter_Form if ($values['addPresent'] === 'Yes') { $values['addEndDate'] = null; } - $affiliations = is_array($values['addAffiliations']) ? + $affils = is_array($values['addAffiliations']) ? implode(', ', $values['addAffiliations']) : $values['addAffiliations']; - $degrees = is_array($values['addDegrees']) ? + $degs = is_array($values['addDegrees']) ? implode(', ', $values['addDegrees']) : $values['addDegrees']; - $roles = is_array($values['addRoles']) ? + $roles = is_array($values['addRoles']) ? implode(', ', $values['addRoles']) : $values['addRoles']; - $results = [ + $results = [ 'ordering' => $values['addOrdering'], 'full_name' => $values['addFullName'], 'citation_name' => $values['addCitationName'], - 'affiliations' => $affiliations, - 'degrees' => $degrees, - 'roles' => $roles, + 'affiliations' => implode(',', array_filter(explode(',', $affils))), + 'degrees' => implode(',', array_filter(explode(',', $degs))), + 'roles' => implode(',', array_filter(explode(',', $roles))), 'start_date' => $values['addStartDate'], 'end_date' => $values['addEndDate'], 'present' => $values['addPresent'],