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