From 403b3b6fe63e6cf85b4c7f06aac459d02ad89949 Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@nibio.no>
Date: Mon, 15 May 2023 15:31:30 +0200
Subject: [PATCH] Add observation.isPositive [VIPSUTV-469]

---
 .../controller/servlet/ObservationController.java  |  2 +-
 .../no/nibio/vips/logic/entity/Observation.java    |  3 +++
 .../logic/entity/rest/ObservationListItem.java     | 14 +++++++++++++-
 3 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/ObservationController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/ObservationController.java
index 66842864..e45c4bdc 100755
--- a/src/main/java/no/nibio/vips/logic/controller/servlet/ObservationController.java
+++ b/src/main/java/no/nibio/vips/logic/controller/servlet/ObservationController.java
@@ -464,7 +464,7 @@ public class ObservationController extends HttpServlet {
                                             null
                                             : formValidation.getFormField("observationData").getWebValue()
                             );
-                            observation.setIsPositive(formValidation.getFormField("isPositiveRegistration").getWebValue() != null);
+                            observation.setIsPositive(formValidation.getFormField("isPositive").getWebValue() != null);
                             observation.setIsQuantified(formValidation.getFormField("isQuantified").getWebValue() != null);
                             this.setObservationLocationVisibility(observation, formValidation.getFormField("locationVisibility").getWebValue());
                             observation.setBroadcastMessage(formValidation.getFormField("broadcastMessage").getWebValue() != null);
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 d9d732ac..baee7c23 100755
--- a/src/main/java/no/nibio/vips/logic/entity/Observation.java
+++ b/src/main/java/no/nibio/vips/logic/entity/Observation.java
@@ -207,6 +207,8 @@ public class Observation implements Serializable, no.nibio.vips.observation.Obse
     {
         Map<String, Object> properties = new HashMap<>();
         properties.put("observationId", this.getObservationId());
+        properties.put("isPositive", this.getIsPositive());
+        properties.put("timestamp", this.getTimeOfObservation() != null ? this.getTimeOfObservation().getTime() : "null");
         return this.GISEntityUtil.getGeoJSONFromGis(this.geoinfo, properties);
     }
     
@@ -652,6 +654,7 @@ public class Observation implements Serializable, no.nibio.vips.observation.Obse
                 this.getObservationHeading(),
                 this.getBroadcastMessage(),
                 this.getLocationIsPrivate(),
+                this.getIsPositive(),
                 this.getObservationData(),
                 observationDataSchema
         );
diff --git a/src/main/java/no/nibio/vips/logic/entity/rest/ObservationListItem.java b/src/main/java/no/nibio/vips/logic/entity/rest/ObservationListItem.java
index 1e64b78a..906627c6 100644
--- a/src/main/java/no/nibio/vips/logic/entity/rest/ObservationListItem.java
+++ b/src/main/java/no/nibio/vips/logic/entity/rest/ObservationListItem.java
@@ -35,7 +35,9 @@ public class ObservationListItem {
     private String observationHeading;
     private String observationData;
     private ObservationDataSchema observationDataSchema;
-    private Boolean broadcastMessage, locationIsPrivate;
+    private Boolean broadcastMessage;
+    private Boolean locationIsPrivate;
+    private Boolean isPositive;
 
     public ObservationListItem(
             Integer observationId,
@@ -48,6 +50,7 @@ public class ObservationListItem {
             String observationHeading,
             Boolean broadcastMessage,
             Boolean locationIsPrivate,
+            Boolean isPositive,
             String observationData,
             ObservationDataSchema observationDataSchema
     ){
@@ -61,6 +64,7 @@ public class ObservationListItem {
         this.observationHeading = observationHeading;
         this.broadcastMessage = broadcastMessage;
         this.locationIsPrivate = locationIsPrivate;
+        this.isPositive = isPositive;
         this.observationData = observationData;
         this.observationDataSchema = observationDataSchema;
     }
@@ -232,4 +236,12 @@ public class ObservationListItem {
     public void setObservationData(String observationData) {
         this.observationData = observationData;
     }
+
+    public Boolean getIsPositive() {
+        return isPositive;
+    }
+
+    public void setIsPositive(Boolean positive) {
+        isPositive = positive;
+    }
 }
-- 
GitLab