diff --git a/pom.xml b/pom.xml
index 70fcc0d0501360292fa2fbf293e6ef0dad799ea8..489080e123b0756f663bfba72070f1dc9f21fd32 100644
--- a/pom.xml
+++ b/pom.xml
@@ -124,7 +124,7 @@
   <dependency>
     <groupId>org.freemarker</groupId>
     <artifactId>freemarker</artifactId>
-    <version>2.3.20</version>
+    <version>2.3.21</version>
   </dependency>
   <dependency>
 	<groupId>it.sauronsoftware.cron4j</groupId>
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 8749985bb2efd4d8f0f82236ff5a0da590405e2e..4421e6107a48ffc2d28583c45ccea02ee325179b 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
@@ -19,11 +19,16 @@
 
 package no.bioforsk.vips.logic.controller.servlet;
 
+import com.ibm.icu.util.Calendar;
 import java.io.IOException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.Date;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import javax.persistence.EntityManager;
 import javax.persistence.PersistenceContext;
@@ -40,6 +45,7 @@ import no.bioforsk.vips.logic.entity.VipsLogicRole;
 import no.bioforsk.vips.logic.entity.VipsLogicUser;
 import no.bioforsk.vips.logic.i18n.SessionLocaleUtil;
 import no.bioforsk.vips.logic.util.SessionControllerGetter;
+import no.bioforsk.vips.logic.util.SystemTime;
 import no.bioforsk.vips.util.ArrayUtil;
 import no.bioforsk.vips.util.ServletUtil;
 import no.bioforsk.web.forms.FormField;
@@ -94,6 +100,22 @@ public class ForecastConfigurationController extends HttpServlet {
                     selectedModelIds = new ArrayList(modelInformationMap.keySet());
                 }
                 
+                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+                Date from,to;
+                try
+                {
+                    from = format.parse(request.getParameter("from"));
+                    to = format.parse(request.getParameter("to"));
+                }
+                catch(NullPointerException | ParseException ex)
+                {
+                    to = SystemTime.getSystemTime();
+                    Calendar cal = Calendar.getInstance();
+                    cal.setTime(to);
+                    cal.add(Calendar.MONTH, -2);
+                    from = cal.getTime();
+                }
+                
                 List<ForecastConfiguration> forecasts;
                 
                 if(user.isSuperUser())
@@ -114,19 +136,21 @@ public class ForecastConfigurationController extends HttpServlet {
                             selectedOrganizationIds.add(o.getOrganizationId());
                         }
                     }
-                    forecasts = forecastBean.getForecastConfigurations(selectedOrganizationIds, selectedModelIds);
+                    forecasts = forecastBean.getForecastConfigurations(selectedOrganizationIds, selectedModelIds, from, to);
                     
                     request.setAttribute("organizations", organizations);
                     request.setAttribute("selectedOrganizationIds", selectedOrganizationIds);
                 }
                 else
                 {
-                    forecasts = forecastBean.getForecastConfigurations(user.getOrganizationId(), selectedModelIds);
+                    forecasts = forecastBean.getForecastConfigurations(user.getOrganizationId(), selectedModelIds, from, to);
                 }
                 Collections.sort(forecasts);
                 request.setAttribute("forecastConfigurations", forecasts);
                 request.setAttribute("modelInformation", modelInformationMap);
                 request.setAttribute("selectedModelIds", selectedModelIds);
+                request.setAttribute("from", from);
+                request.setAttribute("to", to);
                 // If this is a redirect from a controller, with a message to be passed on
                 request.setAttribute("messageKey", request.getParameter("messageKey"));
                 request.getRequestDispatcher("/forecastConfigurationList.ftl").forward(request, response);
diff --git a/src/main/java/no/bioforsk/vips/logic/controller/session/ForecastBean.java b/src/main/java/no/bioforsk/vips/logic/controller/session/ForecastBean.java
index 81c518aba8ad0b63991202c0627afcedee68e470..511a3c29f13f0f41255e788fdf35cb293b9d055a 100644
--- a/src/main/java/no/bioforsk/vips/logic/controller/session/ForecastBean.java
+++ b/src/main/java/no/bioforsk/vips/logic/controller/session/ForecastBean.java
@@ -212,7 +212,7 @@ public class ForecastBean {
                 .getResultList();
     }
     
-    public List<ForecastConfiguration> getForecastConfigurations(Organization organization, List<String> modelIds)
+    public List<ForecastConfiguration> getForecastConfigurations(Organization organization, List<String> modelIds, Date from, Date to)
     {
         List<VipsLogicUser> organizationUsers = em
                 .createNamedQuery("VipsLogicUser.findByOrganizationId")
@@ -222,9 +222,11 @@ public class ForecastBean {
         if(!organizationUsers.isEmpty())
         {
             return em
-                    .createNamedQuery("ForecastConfiguration.findByVipsLogicUserIdsAndModelIds")
+                    .createNamedQuery("ForecastConfiguration.findByVipsLogicUserIdsAndModelIdsAndDate")
                     .setParameter("vipsLogicUserIds", organizationUsers)
                     .setParameter("modelIds", modelIds)
+                    .setParameter("from", from)
+                    .setParameter("to", to)
                     .getResultList();
         }
         else
@@ -233,7 +235,7 @@ public class ForecastBean {
         }
     }
     
-    public List<ForecastConfiguration> getForecastConfigurations(List<Integer> organizationIds, List<String> modelIds)
+    public List<ForecastConfiguration> getForecastConfigurations(List<Integer> organizationIds, List<String> modelIds, Date from, Date to)
     {
         List<VipsLogicUser> organizationUsers = em
                 .createNamedQuery("VipsLogicUser.findByOrganizationIds")
@@ -243,9 +245,11 @@ public class ForecastBean {
         if(!organizationUsers.isEmpty())
         {
             return em
-                    .createNamedQuery("ForecastConfiguration.findByVipsLogicUserIdsAndModelIds")
+                    .createNamedQuery("ForecastConfiguration.findByVipsLogicUserIdsAndModelIdsAndDate")
                     .setParameter("vipsLogicUserIds", organizationUsers)
                     .setParameter("modelIds", modelIds)
+                    .setParameter("from", from)
+                    .setParameter("to", to)
                     .getResultList();
         }
         else
diff --git a/src/main/java/no/bioforsk/vips/logic/entity/ForecastConfiguration.java b/src/main/java/no/bioforsk/vips/logic/entity/ForecastConfiguration.java
index a0cae0a85a61cac45bef462a9ac2355112c62c72..8b0971edcd0b4ae694ff580d4402d2360095c713 100644
--- a/src/main/java/no/bioforsk/vips/logic/entity/ForecastConfiguration.java
+++ b/src/main/java/no/bioforsk/vips/logic/entity/ForecastConfiguration.java
@@ -63,7 +63,8 @@ import javax.persistence.Transient;
     @NamedQuery(name = "ForecastConfiguration.findByVipsLogicUserId", query = "SELECT f FROM ForecastConfiguration f WHERE f.vipsLogicUserId = :vipsLogicUserId"),
     @NamedQuery(name = "ForecastConfiguration.findByVipsLogicUserIdAndCropOrganismId", query = "SELECT f FROM ForecastConfiguration f WHERE f.vipsLogicUserId = :vipsLogicUserId AND f.cropOrganismId.organismId IN (:cropOrganismIds)"),
     @NamedQuery(name = "ForecastConfiguration.findByVipsLogicUserIds", query = "SELECT f FROM ForecastConfiguration f WHERE f.vipsLogicUserId IN (:vipsLogicUserIds)"),
-    @NamedQuery(name = "ForecastConfiguration.findByVipsLogicUserIdsAndModelIds", query = "SELECT f FROM ForecastConfiguration f WHERE f.vipsLogicUserId IN (:vipsLogicUserIds) AND f.modelId IN (:modelIds)")
+    @NamedQuery(name = "ForecastConfiguration.findByVipsLogicUserIdsAndModelIds", query = "SELECT f FROM ForecastConfiguration f WHERE f.vipsLogicUserId IN (:vipsLogicUserIds) AND f.modelId IN (:modelIds)"),
+    @NamedQuery(name = "ForecastConfiguration.findByVipsLogicUserIdsAndModelIdsAndDate", query = "SELECT f FROM ForecastConfiguration f WHERE f.vipsLogicUserId IN (:vipsLogicUserIds) AND f.modelId IN (:modelIds) AND f.dateStart <= :to AND f.dateEnd >= :from")
 })
 public class ForecastConfiguration implements Serializable, Comparable {
     @OneToMany(cascade = CascadeType.ALL, mappedBy = "forecastConfiguration", fetch = FetchType.EAGER)
diff --git a/src/main/java/no/bioforsk/vips/logic/scheduling/model/preprocessor/PlasmoparaViticolaModelPreprocessor.java b/src/main/java/no/bioforsk/vips/logic/scheduling/model/preprocessor/PlasmoparaViticolaModelPreprocessor.java
index bf25691d06ccb7f6ccc6d7788c00a535bd9049a9..44b6710bf88c93ccc94aed21a27c49aa076498a2 100644
--- a/src/main/java/no/bioforsk/vips/logic/scheduling/model/preprocessor/PlasmoparaViticolaModelPreprocessor.java
+++ b/src/main/java/no/bioforsk/vips/logic/scheduling/model/preprocessor/PlasmoparaViticolaModelPreprocessor.java
@@ -54,16 +54,7 @@ public class PlasmoparaViticolaModelPreprocessor extends ModelRunPreprocessor{
         cal.set(Calendar.DATE, 1);
         Date startDate = wUtil.normalizeToExactDate(cal.getTime(), timeZone);
         
-        /*List<WeatherObservation> observations = getWeatherObservations(
-                    weatherStation.getDataFetchUri(), 
-                    WeatherObservation.LOG_INTERVAL_ID_1H, 
-                    new String[]{
-                        WeatherElements.TEMPERATURE_MEAN, 
-                        WeatherElements.PRECIPITATION
-                    }, 
-                    startDate, 
-                    endDate, 
-                    timeZone);*/
+        ModelConfiguration retVal = new ModelConfiguration();
         List<WeatherObservation> observations = getWeatherObservations(
                     weatherStation, 
                     WeatherObservation.LOG_INTERVAL_ID_1H, 
@@ -73,8 +64,8 @@ public class PlasmoparaViticolaModelPreprocessor extends ModelRunPreprocessor{
                     }, 
                     startDate, 
                     endDate);
+        
         // TODO:  weather data validation
-        ModelConfiguration retVal = new ModelConfiguration();
         retVal.setModelId(this.getModelId());
         retVal.setConfigParameter("timeZone", timeZone.getID());
         retVal.setConfigParameter("observations", observations);
diff --git a/src/main/webapp/templates/forecastConfigurationList.ftl b/src/main/webapp/templates/forecastConfigurationList.ftl
index 50a48b08f3ac11c9d2ff0e727c9df53ef1fa94c7..6feb2b1798a4d5225b0085aef5331f800742a0c3 100644
--- a/src/main/webapp/templates/forecastConfigurationList.ftl
+++ b/src/main/webapp/templates/forecastConfigurationList.ftl
@@ -28,13 +28,13 @@
 			<form class="form-inline" role="form" action="/forecastConfiguration" method="GET">
 				<div class="form-group">
 					<label class="sr-only" for="modelId">Model</label>
-					<select name="modelId" multiple="multiple" size="3">
+					<select name="modelId" multiple="multiple" size="3" class="form-control">
 						<#list modelInformation?values?sort_by("defaultName") as modelInformationItem>
 						<option value="${modelInformationItem.modelId}" ${selectedModelIds?seq_contains(modelInformationItem.modelId)?string(" selected=\"selected\"","")}>
 						<#if i18nBundle.containsKey(modelInformationItem.modelId)>
-							${i18nBundle[modelInformationItem.modelId]}
+							${i18nBundle[modelInformationItem.modelId][0..*25]}
 						<#else>
-							${modelInformation[modelInformationItem.modelId].defaultName}
+							${modelInformation[modelInformationItem.modelId].defaultName[0..*25]}
 						</#if>
 						</option>
 						</#list>
@@ -43,7 +43,7 @@
 				<#if user.isSuperUser() >
 				<div class="form-group">
 					<label class="sr-only" for="organizationId">Organization</label>
-					<select name="organizationId" size="3" multiple="multiple">
+					<select name="organizationId" size="3" multiple="multiple" class="form-control">
 						<#list organizations?sort_by("organizationName") as organization>
 						<option value="${organization.organizationId}" ${selectedOrganizationIds?seq_contains(organization.organizationId)?string(" selected=\"selected\"","")}>
 						${organization.organizationName}
@@ -52,6 +52,14 @@
 					</select>
 				</div>
 				</#if>
+				<div class="form-group">
+					<input type="date" class="form-control" name="from" placeholder="${i18nBundle.from}" value="${(from?date)!""}"/>
+				</div>
+				-
+				<div class="form-group">
+					<input type="date" class="form-control" name="to" placeholder="${i18nBundle.to}" value="${(to?date)!""}"/>
+				</div>
+				
 				<button type="submit" class="btn btn-default">Filter</button>
 			</form>
 		</div>