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 863a6be53cf41ac3278c12cb6f182341bd7fecea..1e8027b0595316fa42e4f7a312f514aeb8dd0c64 100755 --- a/src/main/java/no/nibio/vips/logic/entity/Observation.java +++ b/src/main/java/no/nibio/vips/logic/entity/Observation.java @@ -691,6 +691,8 @@ public class Observation implements Serializable, no.nibio.vips.observation.Obse } return new ObservationListItem( this.getObservationId(), + this.userId, + this.user != null ? this.user.getFullName() : null, this.getObservationTimeSeriesId(), this.getTimeOfObservation(), this.getOrganismId(), diff --git a/src/main/java/no/nibio/vips/logic/entity/VipsLogicUser.java b/src/main/java/no/nibio/vips/logic/entity/VipsLogicUser.java index c8d96e9477c78f3cac0cb482c7168e210f084eb1..0d9c0f09189b5ed1e42c857df8748a611b141114 100755 --- a/src/main/java/no/nibio/vips/logic/entity/VipsLogicUser.java +++ b/src/main/java/no/nibio/vips/logic/entity/VipsLogicUser.java @@ -143,6 +143,12 @@ public class VipsLogicUser implements Serializable, Comparable{ this.lastName = lastName; } + @JsonIgnore + @Transient + public String getFullName() { + return firstName + " " + lastName; + } + @OneToMany(cascade = CascadeType.ALL, mappedBy = "vipsLogicUser", fetch=FetchType.EAGER) @XmlTransient @JsonIgnore 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 463da57b11f2b4966cd75e3d16d8990f2950122e..7ba4386cc08c8a77c18dc94621cce7539cd049c3 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 @@ -28,6 +28,8 @@ import no.nibio.vips.observationdata.ObservationDataSchema; */ public class ObservationListItem implements Comparable{ private Integer observationId, observationTimeSeriesId, organismId, cropOrganismId; + private Integer observerId; + private String observerName; private Date timeOfObservation; private String organismName, cropOrganismName; private String observationTimeSeriesLabel; @@ -42,6 +44,8 @@ public class ObservationListItem implements Comparable{ public ObservationListItem( Integer observationId, + Integer observerId, + String observerName, Integer observationTimeSeriesId, Date timeOfObservation, Integer organismId, @@ -59,6 +63,8 @@ public class ObservationListItem implements Comparable{ ObservationDataSchema observationDataSchema ){ this.observationId = observationId; + this.observerId = observerId; + this.observerName = observerName; this.observationTimeSeriesId = observationTimeSeriesId; this.timeOfObservation = timeOfObservation; this.organismId = organismId; @@ -101,6 +107,34 @@ public class ObservationListItem implements Comparable{ this.observationId = observationId; } + /** + * @return The ID of the observer + */ + public Integer getObserverId() { + return observerId; + } + + /** + * @param observerId The ID to set + */ + public void setObserverId(Integer observerId) { + this.observerId = observerId; + } + + /** + * @return The full name of the observer + */ + public String getObserverName() { + return observerName; + } + + /** + * @param observerName The observer name to set + */ + public void setObserverName(String observerName) { + this.observerName = observerName; + } + /** * @return the observationTimeSeriesId */ diff --git a/src/main/java/no/nibio/vips/logic/util/ExcelFileGenerator.java b/src/main/java/no/nibio/vips/logic/util/ExcelFileGenerator.java index 2a68e68af240bf195e3221fb462e74b8e634da67..a639e56fb524697577af3d538c5fd1cf0b2b8db7 100644 --- a/src/main/java/no/nibio/vips/logic/util/ExcelFileGenerator.java +++ b/src/main/java/no/nibio/vips/logic/util/ExcelFileGenerator.java @@ -24,11 +24,13 @@ public final class ExcelFileGenerator { private static final int COL_INDEX_DATE = 0; private static final int COL_INDEX_LOCATION = 1; - private static final int COL_INDEX_ORGANISM = 2; - private static final int COL_INDEX_CROP_ORGANISM = 3; - private static final int COL_INDEX_HEADING = 4; - private static final int COL_INDEX_DESCRIPTION = 5; - private static final int COL_START_INDEX_DATA = 6; + private static final int COL_INDEX_OBSERVER_ID = 2; + private static final int COL_INDEX_OBSERVER_NAME = 3; + private static final int COL_INDEX_ORGANISM = 4; + private static final int COL_INDEX_CROP_ORGANISM = 5; + private static final int COL_INDEX_HEADING = 6; + private static final int COL_INDEX_DESCRIPTION = 7; + private static final int COL_START_INDEX_DATA = 8; public static byte[] generateExcel(VipsLogicUser user, ULocale locale, List<ObservationListItem> observations) throws IOException { ResourceBundle rb = ResourceBundle.getBundle("no.nibio.vips.logic.i18n.vipslogictexts", locale.toLocale()); @@ -174,6 +176,8 @@ public final class ExcelFileGenerator { Row headerRow = sheet.createRow(0); headerRow.createCell(COL_INDEX_DATE).setCellValue(rb.getString("timeOfObservation")); headerRow.createCell(COL_INDEX_LOCATION).setCellValue(rb.getString("location")); + headerRow.createCell(COL_INDEX_OBSERVER_ID).setCellValue(rb.getString("observerId")); + headerRow.createCell(COL_INDEX_OBSERVER_NAME).setCellValue(rb.getString("observer")); headerRow.createCell(COL_INDEX_ORGANISM).setCellValue(rb.getString("organism")); headerRow.createCell(COL_INDEX_CROP_ORGANISM).setCellValue(rb.getString("cropOrganismId")); headerRow.createCell(COL_INDEX_HEADING).setCellValue(rb.getString("observationHeading")); @@ -196,6 +200,8 @@ public final class ExcelFileGenerator { Row row = sheet.createRow(rowIndex); row.createCell(COL_INDEX_DATE).setCellValue(localDateOfObservation.format(DATE_FORMATTER)); row.createCell(COL_INDEX_LOCATION).setCellValue(pointOfInterestName); + row.createCell(COL_INDEX_OBSERVER_ID).setCellValue(item.getObserverId()); + row.createCell(COL_INDEX_OBSERVER_NAME).setCellValue(item.getObserverName()); row.createCell(COL_INDEX_ORGANISM).setCellValue(item.getOrganismName()); row.createCell(COL_INDEX_CROP_ORGANISM).setCellValue(item.getCropOrganismName()); row.createCell(COL_INDEX_HEADING).setCellValue(item.getObservationHeading()); diff --git a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties index 7ad797d99f3104b5d4eb6739d06f09316118b934..4173a36fefb3bec5c95ff50f44ef186e9bd6c86e 100755 --- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties +++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties @@ -602,6 +602,8 @@ observedDateOfFirstCatch = Observed date of first catch observedValue = Observed value +observerId = Observer ID + observer = Observer older = Older diff --git a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties index cbb0beb9c8901c5960d5e8a728789b4b012c2cad..36e5f7897646287b0253d570192a7f1a545a750e 100755 --- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties +++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties @@ -602,6 +602,8 @@ observedDateOfFirstCatch = Observert dato for f\u00f8rste fellefangst observedValue = Observert verdi +observerId = Observat\u00f8r-Id + observer = Observat\u00f8r older = Eldre