From 9311cd8b5f36b5e84a4a2bc016905755f41b1c38 Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@bioforsk.no>
Date: Wed, 20 Apr 2016 10:11:35 +0200
Subject: [PATCH] Adding forecast events to scheduling Publishing Apple Fruit
Moth admin
---
.../vips/logic/controller/session/SchedulingBean.java | 11 +++++++----
.../no/nibio/vips/logic/entity/VipsLogicUser.java | 11 +++++++++++
.../applefruitmoth/AppleFruitMothController.java | 1 +
.../nibio/vips/logic/i18n/vipslogictexts.properties | 9 +++++----
.../vips/logic/i18n/vipslogictexts_bs.properties | 5 +++--
.../vips/logic/i18n/vipslogictexts_hr.properties | 5 +++--
.../vips/logic/i18n/vipslogictexts_nb.properties | 9 +++++----
.../vips/logic/i18n/vipslogictexts_sr.properties | 5 +++--
.../webapp/templates/appleFruitMothStationForm.ftl | 3 +++
.../webapp/templates/appleFruitMothStationList.ftl | 1 +
src/main/webapp/templates/master.ftl | 3 +++
11 files changed, 45 insertions(+), 18 deletions(-)
diff --git a/src/main/java/no/nibio/vips/logic/controller/session/SchedulingBean.java b/src/main/java/no/nibio/vips/logic/controller/session/SchedulingBean.java
index 4c915c51..04223b87 100644
--- a/src/main/java/no/nibio/vips/logic/controller/session/SchedulingBean.java
+++ b/src/main/java/no/nibio/vips/logic/controller/session/SchedulingBean.java
@@ -160,10 +160,11 @@ public class SchedulingBean {
// at creation time.
// Running all forecasts every hour:30
- VIPSLogicTaskCollector testCollector = new VIPSLogicTaskCollector(-1);
+ VIPSLogicTaskCollector modelRunCollector = new VIPSLogicTaskCollector(-1);
SchedulingPattern halfPastPattern = new SchedulingPattern("30 * * * *");
- testCollector.getTasks().add(halfPastPattern, VipsLogicTaskFactory.createVipsLogicTask(VipsLogicTaskFactory.RUN_ALL_FORECAST_CONFIGURATIONS_TASK));
- testCollector.getTasks().add(halfPastPattern, VipsLogicTaskFactory.createVipsLogicTask(VipsLogicTaskFactory.UPDATE_MODEL_INFORMATION_TASK));
+ modelRunCollector.getTasks().add(halfPastPattern, VipsLogicTaskFactory.createVipsLogicTask(VipsLogicTaskFactory.RUN_ALL_FORECAST_CONFIGURATIONS_TASK));
+ modelRunCollector.getTasks().add(halfPastPattern, VipsLogicTaskFactory.createVipsLogicTask(VipsLogicTaskFactory.UPDATE_MODEL_INFORMATION_TASK));
+ modelRunCollector.getTasks().add(halfPastPattern, VipsLogicTaskFactory.createVipsLogicTask(VipsLogicTaskFactory.SEND_FORECAST_EVENT_NOTIFICATIONS_TASK));
// Update forecast cache
VIPSLogicTaskCollector cacheHandlerCollector = new VIPSLogicTaskCollector(-1);
@@ -180,8 +181,10 @@ public class SchedulingBean {
SchedulingPattern everyNightPattern = new SchedulingPattern("0 6 * * *");
deleteAllExpiredUserUuidsCollector.getTasks().add(everyNightPattern, VipsLogicTaskFactory.createVipsLogicTask(VipsLogicTaskFactory.DELETE_ALL_EXPIRED_UUIDS_TASK));
+
+
List<TaskCollector> definedTasks = new ArrayList<>();
- definedTasks.add(testCollector);
+ definedTasks.add(modelRunCollector);
definedTasks.add(cacheHandlerCollector);
definedTasks.add(summariesCollector);
definedTasks.add(deleteAllExpiredUserUuidsCollector);
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 f8cd30b4..856f3463 100644
--- a/src/main/java/no/nibio/vips/logic/entity/VipsLogicUser.java
+++ b/src/main/java/no/nibio/vips/logic/entity/VipsLogicUser.java
@@ -295,6 +295,17 @@ public class VipsLogicUser implements Serializable {
return false;
}
+ @JsonIgnore
+ @Transient
+ public boolean isAppleFruitMothAdministrator(){
+ for (VipsLogicRole role : this.getVipsLogicRoles()) {
+ if (role.getVipsLogicRoleId().equals(VipsLogicRole.APPLE_FRUIT_MOTH_ADMINISTRATOR)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
@JsonIgnore
@Transient
public boolean isMessageAuthor(){
diff --git a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java
index bab4f38b..5e9295f2 100644
--- a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java
+++ b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java
@@ -83,6 +83,7 @@ public class AppleFruitMothController extends HttpServlet {
}
request.setAttribute("currentSeason", currentSeason);
request.setAttribute("lastSeason", lastSeason);
+ request.setAttribute("messageKey", request.getParameter("messageKey"));
request.getRequestDispatcher("/appleFruitMothStationForm.ftl").forward(request, response);
}
catch(NullPointerException | NumberFormatException ex)
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 f844c3b7..3115b3c8 100644
--- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties
+++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties
@@ -304,10 +304,10 @@ notificationSubscriptionDescription=You can subscribe to different kinds of noti
messageFormat=Message format
Mail=Email
Sms=SMS
-forecastNotificationMessageBodyTpl_1=Forecast warning status has turned to high risk of infection for {0} in {1} at location {2} at date {3}. Model: {4}. To read details, please visit: {5}
-forecastNotificationMessageBodyTpl_2=Forecast warning status has turned to moderate risk of infection for {0} in {1} at location {2} at date {3}. Model: {4}. To read details, please visit: {5}
-forecastNotificationMessageHeadingTpl_1=Notification of high risk of infection
-forecastNotificationMessageHeadingTpl_2=Notification of moderate infection risk
+forecastNotificationMessageBodyTpl_1=This is for {0} in {1} at location {2} at date {3}. Details: {4}
+forecastNotificationMessageBodyTpl_2=This is for {0} in {1} at location {2} at date {3}.Read more: {4}
+forecastNotificationMessageHeadingTpl_1=High risk of infection
+forecastNotificationMessageHeadingTpl_2=Moderate infection risk
task_SendForecastEventNotificationsTask_name=Send forecast event notifications
task_SendForecastEventNotificationsTask_description=Checks to see if there has been changes in forecasts to YELLOW or RED status. If so, finds subscribers to such events and sends notifications
preferredLocale=Preferred locale
@@ -384,3 +384,4 @@ newObservationSitePoint=New observation site point
observationSitePointName=Observation site point name
appleFruitMothChangeSeasonConfirm=Are you sure you want to change season? All unsaved data for the current season will be lost.
observationSiteStored=Observation site was successfully updated
+appleFruitMoth=Apple fruit moth
diff --git a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_bs.properties b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_bs.properties
index 882a0bd1..5c454e49 100644
--- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_bs.properties
+++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_bs.properties
@@ -304,8 +304,8 @@ notificationSubscriptionDescription=You can subscribe to different kinds of noti
messageFormat=Message format
Mail=Email
Sms=SMS
-forecastNotificationMessageBodyTpl_1=Forecast warning status has turned to high risk of infection for {0} in {1} at location {2} at date {3}. Model: {4}. To read details, please visit: {5}
-forecastNotificationMessageBodyTpl_2=Forecast warning status has turned to moderate risk of infection for {0} in {1} at location {2} at date {3}. Model: {4}. To read details, please visit: {5}
+forecastNotificationMessageBodyTpl_1=This is for {0} in {1} at location {2} at date {3}. Details: {4}
+forecastNotificationMessageBodyTpl_2=This is for {0} in {1} at location {2} at date {3}.Read more: {4}
forecastNotificationMessageHeadingTpl_1=Notification of high risk of infection
forecastNotificationMessageHeadingTpl_2=Notification of moderate infection risk
task_SendForecastEventNotificationsTask_name=Send forecast event notifications
@@ -384,3 +384,4 @@ newObservationSitePoint=New observation site point
observationSitePointName=Observation site point name
appleFruitMothChangeSeasonConfirm=Are you sure you want to change season? All unsaved data for the current season will be lost.
observationSiteStored=Observation site was successfully updated
+appleFruitMoth=Apple fruit moth
diff --git a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_hr.properties b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_hr.properties
index 3aa5fef7..572e90ac 100644
--- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_hr.properties
+++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_hr.properties
@@ -303,8 +303,8 @@ notificationSubscriptionDescription=You can subscribe to different kinds of noti
messageFormat=Message format
Mail=Email
Sms=SMS
-forecastNotificationMessageBodyTpl_1=Forecast warning status has turned to high risk of infection for {0} in {1} at location {2} at date {3}. Model: {4}. To read details, please visit: {5}
-forecastNotificationMessageBodyTpl_2=Forecast warning status has turned to high risk of infection for {0} in {1} at location {2} at date {3}. Model: {4}. To read details, please visit: {5}
+forecastNotificationMessageBodyTpl_1=This is for {0} in {1} at location {2} at date {3}. Details: {4}
+forecastNotificationMessageBodyTpl_2=This is for {0} in {1} at location {2} at date {3}.Read more: {4}
forecastNotificationMessageHeadingTpl_1=Notification of high risk of infection
forecastNotificationMessageHeadingTpl_2=Notification of moderate infection risk
task_SendForecastEventNotificationsTask_name=Send forecast event notifications
@@ -383,3 +383,4 @@ newObservationSitePoint=New observation site point
observationSitePointName=Observation site point name
appleFruitMothChangeSeasonConfirm=Are you sure you want to change season? All unsaved data for the current season will be lost.
observationSiteStored=Observation site was successfully updated
+appleFruitMoth=Apple fruit moth
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 8d12d3c8..5bf024b7 100644
--- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties
+++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties
@@ -304,10 +304,10 @@ notificationSubscriptionDescription=Du kan abonnere p\u00e5 ulike typer meldinge
messageFormat=Meldingsformat
Mail=E-post
Sms=SMS
-forecastNotificationMessageBodyTpl_1=Varselstatus er endret til h\u00f8y infeksjonsrisiko for {0} i {1} ved {2}, tidspunkt {3}. Modell: {4}. For \u00e5 lese detaljer, vennligst bes\u00f8k:{5}
-forecastNotificationMessageBodyTpl_2=Varselstatus er endret til moderat infeksjonsrisiko for {0} i {1} ved {2}, tidspunkt {3}. Modell: {4}. For \u00e5 lese detaljer, vennligst bes\u00f8k:{5}
-forecastNotificationMessageHeadingTpl_1=Melding om h\u00f8y infeksjonsrisiko
-forecastNotificationMessageHeadingTpl_2=Melding om moderat infeksjonsrisiko
+forecastNotificationMessageBodyTpl_1=Gjelder {0} i {1} ved {2}, {3}. Les mer:{4}
+forecastNotificationMessageBodyTpl_2=Gjelder {0} i {1} ved {2}, {3}. Les mer:{4}
+forecastNotificationMessageHeadingTpl_1=H\u00f8y infeksjonsrisiko
+forecastNotificationMessageHeadingTpl_2=Moderat infeksjonsrisiko
task_SendForecastEventNotificationsTask_name=Send meldinger om endringer i varsel
task_SendForecastEventNotificationsTask_description=Ser om varsler har endret set til GUL eller R\u00d8D status. I tilfelle s\u00f8kes abonnenter opp og meldinger blir distribuert.
preferredLocale=Foretrukket spr\u00e5k
@@ -384,3 +384,4 @@ newObservationSitePoint=Nytt observasjonsstedspunkt
observationSitePointName=Navn p\u00e5 observasjonsstedspunkt
appleFruitMothChangeSeasonConfirm=Er du sikker p\u00e5 at du vil endre sesong? Alle ulagrede data for innev\u00e6rende sesong vil g\u00e5 tapt.
observationSiteStored=Rogneb\u00e6rm\u00f8llstasjonen ble oppdatert
+appleFruitMoth=Rogneb\u00e6rm\u00f8ll
diff --git a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_sr.properties b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_sr.properties
index 7196da2c..aa0df1cd 100644
--- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_sr.properties
+++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_sr.properties
@@ -304,8 +304,8 @@ notificationSubscriptionDescription=You can subscribe to different kinds of noti
messageFormat=Message format
Mail=Email
Sms=SMS
-forecastNotificationMessageBodyTpl_1=Forecast warning status has turned to high risk of infection for {0} in {1} at location {2} at date {3}. Model: {4}. To read details, please visit: {5}
-forecastNotificationMessageBodyTpl_2=Forecast warning status has turned to moderate risk of infection for {0} in {1} at location {2} at date {3}. Model: {4}. To read details, please visit: {5}
+forecastNotificationMessageBodyTpl_1=This is for {0} in {1} at location {2} at date {3}. Details: {4}
+forecastNotificationMessageBodyTpl_2=This is for {0} in {1} at location {2} at date {3}.Read more: {4}
forecastNotificationMessageHeadingTpl_1=Notification of high risk of infection
forecastNotificationMessageHeadingTpl_2=Notification of moderate infection risk
task_SendForecastEventNotificationsTask_name=Send forecast event notifications
@@ -384,3 +384,4 @@ newObservationSitePoint=New observation site point
observationSitePointName=Observation site point name
appleFruitMothChangeSeasonConfirm=Are you sure you want to change season? All unsaved data for the current season will be lost.
observationSiteStored=Observation site was successfully updated
+appleFruitMoth=Apple fruit moth
diff --git a/src/main/webapp/templates/appleFruitMothStationForm.ftl b/src/main/webapp/templates/appleFruitMothStationForm.ftl
index 703a236a..0bbfcd86 100644
--- a/src/main/webapp/templates/appleFruitMothStationForm.ftl
+++ b/src/main/webapp/templates/appleFruitMothStationForm.ftl
@@ -41,6 +41,9 @@
<div class="row">
<div class="col-md-6">
<#assign formId = "observationSiteForm">
+ <#if messageKey?has_content>
+ <div class="alert alert-success">${i18nBundle(messageKey)}</div>
+ </#if>
<form id="${formId}" role="form" action="/applefruitmoth?action=observationSiteSubmit" method="POST">
<input type="hidden" name="observationSiteId" value="${observationSite.observationSiteId}"/>
<div class="form-group">
diff --git a/src/main/webapp/templates/appleFruitMothStationList.ftl b/src/main/webapp/templates/appleFruitMothStationList.ftl
index ed29b731..574e3459 100644
--- a/src/main/webapp/templates/appleFruitMothStationList.ftl
+++ b/src/main/webapp/templates/appleFruitMothStationList.ftl
@@ -34,6 +34,7 @@
</script>
</#macro>
<#macro page_contents>
+<h1>${i18nBundle.appleFruitMoth}</h1>
<div class="singleBlockContainer">
<div class="row">
<div class="col-md-6">
diff --git a/src/main/webapp/templates/master.ftl b/src/main/webapp/templates/master.ftl
index c55a8bf1..030bbc2d 100644
--- a/src/main/webapp/templates/master.ftl
+++ b/src/main/webapp/templates/master.ftl
@@ -62,6 +62,9 @@
<li><a href="/observation">${i18nBundle.observations}</a></li>
</#if>
<li><a href="/forecastConfiguration">${i18nBundle.forecasts}</a></li>
+ <#if user.isOrganizationAdmin() || user.isSuperUser() || user.isAppleFruitMothAdministrator()>
+ <li><a href="/applefruitmoth">${i18nBundle.appleFruitMoth}</a></li>
+ </#if>
</ul>
</li>
<li><a href="/userguide/VIPSLogic_user_guide.html">${i18nBundle.help}</a></li>
--
GitLab