From 3b31b987ac525112b03bb84d411bb4beee051d5d Mon Sep 17 00:00:00 2001 From: Tor-Einar Skog <tor-einar.skog@bioforsk.no> Date: Fri, 13 Feb 2015 13:19:11 +0100 Subject: [PATCH] Added pest and crop properties to organism --- .../ForecastConfigurationController.java | 4 +-- .../servlet/OrganismController.java | 2 ++ .../bioforsk/vips/logic/entity/Organism.java | 34 +++++++++++++++++++ .../vips/logic/i18n/vipslogictexts.properties | 2 ++ .../logic/i18n/vipslogictexts_bs.properties | 2 ++ .../logic/i18n/vipslogictexts_hr.properties | 2 ++ .../logic/i18n/vipslogictexts_nb.properties | 2 ++ .../logic/i18n/vipslogictexts_sr.properties | 2 ++ .../webapp/formdefinitions/organismForm.json | 10 ++++++ .../templates/forecastConfigurationForm.ftl | 4 +-- src/main/webapp/templates/organismForm.ftl | 16 +++++++++ 11 files changed, 76 insertions(+), 4 deletions(-) diff --git a/src/main/java/no/bioforsk/vips/logic/controller/servlet/ForecastConfigurationController.java b/src/main/java/no/bioforsk/vips/logic/controller/servlet/ForecastConfigurationController.java index f4f2cd2e..8749985b 100644 --- a/src/main/java/no/bioforsk/vips/logic/controller/servlet/ForecastConfigurationController.java +++ b/src/main/java/no/bioforsk/vips/logic/controller/servlet/ForecastConfigurationController.java @@ -35,7 +35,6 @@ import no.bioforsk.vips.logic.controller.session.ForecastBean; import no.bioforsk.vips.logic.controller.session.UserBean; import no.bioforsk.vips.logic.entity.ForecastConfiguration; import no.bioforsk.vips.logic.entity.ModelInformation; -import no.bioforsk.vips.logic.entity.Organism; import no.bioforsk.vips.logic.entity.Organization; import no.bioforsk.vips.logic.entity.VipsLogicRole; import no.bioforsk.vips.logic.entity.VipsLogicUser; @@ -176,7 +175,8 @@ public class ForecastConfigurationController extends HttpServlet { } request.setAttribute("forecastConfiguration", forecastConfiguration); // All organisms used for parent organism list - request.setAttribute("allOrganisms", em.createNamedQuery("Organism.findAll").getResultList()); + request.setAttribute("allCrops", em.createNamedQuery("Organism.findAllCrops").getResultList()); + request.setAttribute("allPests", em.createNamedQuery("Organism.findAllPests").getResultList()); // Hierarchy categories request.setAttribute("hierarchyCategories", SessionControllerGetter.getOrganismBean().getHierarchyCategoryNames(SessionLocaleUtil.getCurrentLocale(request))); request.setAttribute("modelInformations", em.createNamedQuery("ModelInformation.findAll").getResultList()); diff --git a/src/main/java/no/bioforsk/vips/logic/controller/servlet/OrganismController.java b/src/main/java/no/bioforsk/vips/logic/controller/servlet/OrganismController.java index 4985a3d9..73fd6e60 100644 --- a/src/main/java/no/bioforsk/vips/logic/controller/servlet/OrganismController.java +++ b/src/main/java/no/bioforsk/vips/logic/controller/servlet/OrganismController.java @@ -194,6 +194,8 @@ public class OrganismController extends HttpServlet { FormValidation formValidation = FormValidator.validateForm("organismForm",request,getServletContext()); if(formValidation.isValid()) { + organism.setIsCrop(formValidation.getFormField("isCrop").getWebValue() != null); + organism.setIsPest(formValidation.getFormField("isPest").getWebValue() != null); organism.setLatinName(formValidation.getFormField("latinName").getWebValue()); organism.setTradeName(formValidation.getFormField("tradeName").getWebValue()); organism.setHierarchyCategoryId(formValidation.getFormField("hierarchyCategoryId").getValueAsInteger()); diff --git a/src/main/java/no/bioforsk/vips/logic/entity/Organism.java b/src/main/java/no/bioforsk/vips/logic/entity/Organism.java index 8c1c4752..2be85aff 100644 --- a/src/main/java/no/bioforsk/vips/logic/entity/Organism.java +++ b/src/main/java/no/bioforsk/vips/logic/entity/Organism.java @@ -48,6 +48,8 @@ import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement @NamedQueries({ @NamedQuery(name = "Organism.findAll", query = "SELECT o FROM Organism o"), + @NamedQuery(name = "Organism.findAllCrops", query = "SELECT o FROM Organism o WHERE o.isCrop = true AND o.logicallyDeleted = false"), + @NamedQuery(name = "Organism.findAllPests", query = "SELECT o FROM Organism o WHERE o.isPest = true AND o.logicallyDeleted = false"), @NamedQuery(name = "Organism.findByOrganismId", query = "SELECT o FROM Organism o WHERE o.organismId = :organismId"), @NamedQuery(name = "Organism.findByParentOrganismId", query = "SELECT o FROM Organism o WHERE o.parentOrganismId = :parentOrganismId"), @NamedQuery(name = "Organism.findByLatinName", query = "SELECT o FROM Organism o WHERE o.latinName = :latinName"), @@ -70,6 +72,10 @@ public class Organism implements Serializable { @NotNull @Column(name = "logically_deleted") private boolean logicallyDeleted; + @Column(name = "is_pest") + private Boolean isPest; + @Column(name = "is_crop") + private Boolean isCrop; // We simplify this to avoid very large queries @Column(name = "parent_organism_id") @@ -284,4 +290,32 @@ public class Organism implements Serializable { } return null; } + + /** + * @return the isPest + */ + public Boolean getIsPest() { + return isPest; + } + + /** + * @param isPest the isPest to set + */ + public void setIsPest(Boolean isPest) { + this.isPest = isPest; + } + + /** + * @return the isCrop + */ + public Boolean getIsCrop() { + return isCrop; + } + + /** + * @param isCrop the isCrop to set + */ + public void setIsCrop(boolean isCrop) { + this.isCrop = isCrop; + } } diff --git a/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts.properties b/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts.properties index 8aaedac4..df644816 100644 --- a/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts.properties +++ b/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts.properties @@ -257,3 +257,5 @@ pestOrganismId=Pest weatherForecastProvider=Weather forecast service none=None allOrganizations=All organizations +isPest=Is pest +isCrop=Is crop diff --git a/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts_bs.properties b/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts_bs.properties index 6e86aab5..88f31f84 100644 --- a/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts_bs.properties +++ b/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts_bs.properties @@ -257,3 +257,5 @@ pestOrganismId=Pest weatherForecastProvider=Weather forecast service none=None allOrganizations=All organizations +isPest=Is pest +isCrop=Is crop diff --git a/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts_hr.properties b/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts_hr.properties index 2881afe3..d93a4703 100644 --- a/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts_hr.properties +++ b/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts_hr.properties @@ -256,3 +256,5 @@ pestOrganismId=Pest weatherForecastProvider=Weather forecast service none=None allOrganizations=All organizations +isPest=Is pest +isCrop=Is crop diff --git a/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts_nb.properties b/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts_nb.properties index ef3d2a90..9e013aa3 100644 --- a/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts_nb.properties +++ b/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts_nb.properties @@ -257,3 +257,5 @@ pestOrganismId=Skadegj\u00f8rer weatherForecastProvider=V\u00e6rvarslingstjeneste none=Ingen allOrganizations=Alle organisasjoner +isPest=Er skadegj\u00f8rer +isCrop=Er kultur diff --git a/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts_sr.properties b/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts_sr.properties index 731fde48..477293f5 100644 --- a/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts_sr.properties +++ b/src/main/resources/no/bioforsk/vips/logic/i18n/vipslogictexts_sr.properties @@ -257,3 +257,5 @@ pestOrganismId=Pest weatherForecastProvider=Weather forecast service none=None allOrganizations=All organizations +isPest=Is pest +isCrop=Is crop diff --git a/src/main/webapp/formdefinitions/organismForm.json b/src/main/webapp/formdefinitions/organismForm.json index 0b8f8056..fb21bee2 100644 --- a/src/main/webapp/formdefinitions/organismForm.json +++ b/src/main/webapp/formdefinitions/organismForm.json @@ -30,6 +30,16 @@ "required" : false, "nullValue" : "-1" }, + { + "name" : "isCrop", + "dataType" : "STRING", + "required" : false + }, + { + "name" : "isPest", + "dataType" : "STRING", + "required" : false + }, { "name" : "hierarchyCategoryId", "dataType" : "INTEGER", diff --git a/src/main/webapp/templates/forecastConfigurationForm.ftl b/src/main/webapp/templates/forecastConfigurationForm.ftl index b4c6dad7..6ada37f7 100644 --- a/src/main/webapp/templates/forecastConfigurationForm.ftl +++ b/src/main/webapp/templates/forecastConfigurationForm.ftl @@ -75,7 +75,7 @@ <label for="cropOrganismId">${i18nBundle.cropOrganismId}</label> <select class="form-control" id="cropOrganismId" name="cropOrganismId" onblur="validateField(this);" onchange="renderModelSpecificFields();"> <option value="-1">${i18nBundle.pleaseSelect} ${i18nBundle.cropOrganismId?lower_case}</option> - <#list allOrganisms?sort_by("latinName") as organism> + <#list allCrops?sort_by("latinName") as organism> <option value="${organism.organismId}" <#if (forecastConfiguration.cropOrganismId?has_content && forecastConfiguration.cropOrganismId.organismId == organism.organismId)> selected="selected" @@ -89,7 +89,7 @@ <label for="pestOrganismId">${i18nBundle.pestOrganismId}</label> <select class="form-control" id="pestOrganismId" name="pestOrganismId" onblur="validateField(this);" onchange="renderModelSpecificFields();"> <option value="-1">${i18nBundle.pleaseSelect} ${i18nBundle.pestOrganismId?lower_case}</option> - <#list allOrganisms?sort_by("latinName") as organism> + <#list allPests?sort_by("latinName") as organism> <option value="${organism.organismId}" <#if (forecastConfiguration.pestOrganismId?has_content && forecastConfiguration.pestOrganismId.organismId == organism.organismId)> selected="selected" diff --git a/src/main/webapp/templates/organismForm.ftl b/src/main/webapp/templates/organismForm.ftl index 4efc6c58..78bc31f7 100644 --- a/src/main/webapp/templates/organismForm.ftl +++ b/src/main/webapp/templates/organismForm.ftl @@ -62,6 +62,7 @@ </#list> </select> </div> + <div class="form-group"> <label for="latinName">${i18nBundle.latinName}</label> <input type="text" class="form-control" name="latinName" placeholder="${i18nBundle.latinName}" value="${organism.latinName!""}" onblur="validateField(this);" /> @@ -90,6 +91,20 @@ </#list> </select> </div> + <div class="form-group"> + <div class="checkbox"> + <label> + <input type="checkbox" name="isPest" value="true"<#if (organism.isPest?has_content && organism.isPest == true)> checked="checked"</#if>/> + ${i18nBundle.isPest} + </label> + </div> + <div class="checkbox"> + <label> + <input type="checkbox" name="isCrop" value="true"<#if (organism.isCrop?has_content && organism.isCrop == true)> checked="checked"</#if>/> + ${i18nBundle.isCrop} + </label> + </div> + </div> <fieldset> <h3>${i18nBundle.externalResources}</h3> <#if organism.organismExternalResourceSet?has_content> @@ -111,5 +126,6 @@ <button type="submit" class="btn btn-default">${i18nBundle.submit}</button> <a href="/organism?action=listChildOrganisms&organismId=${organism.parentOrganismId!"null"}" class="btn btn-default" role="button">${i18nBundle.cancel}</a> </form> + </#macro> <@page_html/> -- GitLab