From 08fa682b76ddbfbd1553e452aa190d9078e3734c Mon Sep 17 00:00:00 2001 From: Vivek Singh Date: Fri, 4 Oct 2024 17:05:53 +0530 Subject: [PATCH] avniproject/avni-webapp#1354 - default value is calendar for date picker mode. create default values for track location and enable beneficiary mode instead of null. --- .../org/avni/server/domain/UserSettings.java | 16 +++++++++++++++- .../batch/csv/writer/UserAndCatchmentWriter.java | 4 ++-- .../UserAndCatchmentWriterIntegrationTest.java | 1 + 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/avni-server-api/src/main/java/org/avni/server/domain/UserSettings.java b/avni-server-api/src/main/java/org/avni/server/domain/UserSettings.java index 7d8090392..b67051214 100644 --- a/avni-server-api/src/main/java/org/avni/server/domain/UserSettings.java +++ b/avni-server-api/src/main/java/org/avni/server/domain/UserSettings.java @@ -1,6 +1,7 @@ package org.avni.server.domain; import org.avni.server.util.CollectionUtil; +import org.springframework.util.StringUtils; import java.util.Arrays; import java.util.List; @@ -12,16 +13,29 @@ public class UserSettings { public static final String LOCALE = "locale"; public static final String ENABLE_BENEFICIARY_MODE = "showBeneficiaryMode"; public static final String TRACK_LOCATION = "trackLocation"; - public static final List DATE_PICKER_MODE_OPTIONS = Arrays.asList("calendar", "spinner"); + public static final String DEFAULT_DATE_PICKER_MODE = "calendar"; + public static final String SPINNER_DATE_PICKER_MODE = "spinner"; + public static final List DATE_PICKER_MODE_OPTIONS = Arrays.asList(DEFAULT_DATE_PICKER_MODE, SPINNER_DATE_PICKER_MODE); public UserSettings(JsonObject jsonObject) { this.jsonObject = jsonObject; } public static String createDatePickerMode(String datePickerMode) { + if (StringUtils.isEmpty(datePickerMode)) { + return DEFAULT_DATE_PICKER_MODE; + } return CollectionUtil.findMatchingIgnoreCase(DATE_PICKER_MODE_OPTIONS, datePickerMode); } + public static Boolean createTrackLocation(Boolean trackLocation) { + return trackLocation != null && trackLocation; + } + + public static Boolean createEnableBeneficiaryMode(Boolean enableBeneficiaryMode) { + return enableBeneficiaryMode != null && enableBeneficiaryMode; + } + public String getIdPrefix() { return UserSettings.getIdPrefix(this.jsonObject); } diff --git a/avni-server-api/src/main/java/org/avni/server/importer/batch/csv/writer/UserAndCatchmentWriter.java b/avni-server-api/src/main/java/org/avni/server/importer/batch/csv/writer/UserAndCatchmentWriter.java index c854ec735..9749c5449 100644 --- a/avni-server-api/src/main/java/org/avni/server/importer/batch/csv/writer/UserAndCatchmentWriter.java +++ b/avni-server-api/src/main/java/org/avni/server/importer/batch/csv/writer/UserAndCatchmentWriter.java @@ -159,9 +159,9 @@ private void write(Row row) throws IDPException { user.setSettings(new JsonObject() .with(UserSettings.LOCALE, locale) - .with(UserSettings.TRACK_LOCATION, trackLocation) + .with(UserSettings.TRACK_LOCATION, UserSettings.createTrackLocation(trackLocation)) .withEmptyCheckAndTrim(UserSettings.DATE_PICKER_MODE, UserSettings.createDatePickerMode(datePickerMode)) - .with(UserSettings.ENABLE_BENEFICIARY_MODE, beneficiaryMode) + .with(UserSettings.ENABLE_BENEFICIARY_MODE, UserSettings.createEnableBeneficiaryMode(beneficiaryMode)) .withEmptyCheckAndTrim(UserSettings.ID_PREFIX, idPrefix)); user.setOrganisationId(organisation.getId()); diff --git a/avni-server-api/src/test/java/org/avni/server/importer/batch/csv/writer/UserAndCatchmentWriterIntegrationTest.java b/avni-server-api/src/test/java/org/avni/server/importer/batch/csv/writer/UserAndCatchmentWriterIntegrationTest.java index 7f20a6f6f..54cc148e6 100644 --- a/avni-server-api/src/test/java/org/avni/server/importer/batch/csv/writer/UserAndCatchmentWriterIntegrationTest.java +++ b/avni-server-api/src/test/java/org/avni/server/importer/batch/csv/writer/UserAndCatchmentWriterIntegrationTest.java @@ -231,6 +231,7 @@ public void shouldCreateUpdate() throws IDPException { dataRow(" Bihar, District1, Block11", " Catchment 6", " username8@example", " User 8", " username8@example.com ", " 9455509147 ", "Answer 1"), catchmentCreated(false), userCreatedDetails(true)); + userCreatedDetails(user("username8@example"), datePickerMode("calendar"), language("en"), trackLocation(false), enableBeneficiaryMode(false), userGroup("Everyone")); // wrong - username, email, phone number, language, track location, date picker mode, enable beneficiary mode failure(