From 7964ce9067f7a48b1df1a4686ecaf024ac23cdfc Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@nibio.no>
Date: Mon, 20 Sep 2021 15:09:08 +0200
Subject: [PATCH] Added language support for observation list items

---
 .../java/no/nibio/vips/logic/entity/Observation.java  |  4 ++--
 .../nibio/vips/logic/service/ObservationService.java  | 11 +++++++----
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/main/java/no/nibio/vips/logic/entity/Observation.java b/src/main/java/no/nibio/vips/logic/entity/Observation.java
index 594d1975..e87c5a59 100755
--- a/src/main/java/no/nibio/vips/logic/entity/Observation.java
+++ b/src/main/java/no/nibio/vips/logic/entity/Observation.java
@@ -639,9 +639,9 @@ public class Observation implements Serializable, no.nibio.vips.observation.Obse
                 this.getObservationId(),
                 this.getTimeOfObservation(),
                 this.getOrganismId(),
-                this.getOrganism().getLocalName(locale),
+                this.getOrganism().getLocalName(locale).trim() != "" ? this.getOrganism().getLocalName(locale) : this.getOrganism().getLatinName(),
                 this.getCropOrganismId(),
-                this.getCropOrganism().getLocalName(locale),
+                this.getCropOrganism().getLocalName(locale).trim() != "" ? this.getCropOrganism().getLocalName(locale) : this.getCropOrganism().getLatinName(),
                 // Specific geoInfo trumps location. This is to be interpreted 
                 // as that the observation has been geographically masked by
                 // choice of the observer
diff --git a/src/main/java/no/nibio/vips/logic/service/ObservationService.java b/src/main/java/no/nibio/vips/logic/service/ObservationService.java
index 0fd87b88..03b34a0f 100755
--- a/src/main/java/no/nibio/vips/logic/service/ObservationService.java
+++ b/src/main/java/no/nibio/vips/logic/service/ObservationService.java
@@ -142,16 +142,19 @@ public class ObservationService {
             @QueryParam("cropCategoryId") List<Integer> cropCategoryId,
             @QueryParam("from") String fromStr,
             @QueryParam("to") String toStr,
-            @QueryParam("userUUID") String userUUID
-            
+            @QueryParam("userUUID") String userUUID,
+            @QueryParam("locale") String localeStr
     )
     {
         VipsLogicUser user = (VipsLogicUser) httpServletRequest.getSession().getAttribute("user");
+        
         if(user == null && userUUID != null)
         {
             user = SessionControllerGetter.getUserBean().findVipsLogicUser(UUID.fromString(userUUID));
         }
-        //System.out.println("getFilteredObservationListItems");
+        String locale = localeStr != null ? localeStr : 
+        	user != null ? user.getOrganizationId().getDefaultLocale() : 
+        		SessionControllerGetter.getUserBean().getOrganization(organizationId).getDefaultLocale();
         return Response.ok().entity(
                 getFilteredObservationsFromBackend(
                         organizationId,
@@ -161,7 +164,7 @@ public class ObservationService {
                         fromStr,
                         toStr,
                         user
-                ).stream().map(obs -> obs.getListItem("nb")).collect(Collectors.toList())
+                ).stream().map(obs -> obs.getListItem(locale)).collect(Collectors.toList())
         ).build();
     }
             
-- 
GitLab