diff --git a/VIPSWeb/local_settings_sample.py b/VIPSWeb/local_settings_sample.py
index 0ee2577870ddf1559dd4108748f0518bf07358b2..5c9ce16a871c439eb88e93bb4e93cab4aa9c10bc 100644
--- a/VIPSWeb/local_settings_sample.py
+++ b/VIPSWeb/local_settings_sample.py
@@ -94,6 +94,21 @@ DATABASES = {
 # Site name - appears in header of all pages
 SITE_NAME = "Example site title"
 
+# Insert Google Analytics Script?
+INSERT_GOOGLE_ANALYTICS = False
+GOOGLE_ANALYTICS_SCRIPT = """
+<!-- Google Analytics -->
+<script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+  ga('create', '[YOUR CODE HERE]', '[YOUR CONFIG HERE]');
+  
+</script>
+"""
+
 # The server name used for VIPSLogic
 VIPSLOGIC_SERVER_NAME = "vipslogic"
 # This organization's ID in VIPSLogic/CoreManager
diff --git a/VIPSWeb/settings.py b/VIPSWeb/settings.py
index e767e05646c122f7e61e736edd5a09bb2599fbbb..ed1ef3c630ee6c39c2a503f68ac70a6a1236b30a 100644
--- a/VIPSWeb/settings.py
+++ b/VIPSWeb/settings.py
@@ -137,6 +137,7 @@ INSTALLED_APPS = (
     'cerealblotchmodels',
     'calculators',
     'roughage',
+    'fusarium',
     'security',
     'VIPSWeb'
 )
diff --git a/VIPSWeb/templates/base.html b/VIPSWeb/templates/base.html
index e1594733eb64d44ae10cf633e9d18e09832a4cb0..8b16ca75cc508f5ec362679d4c8c598aa5b3df6f 100644
--- a/VIPSWeb/templates/base.html
+++ b/VIPSWeb/templates/base.html
@@ -41,6 +41,9 @@
           <script src="{% static "js/3rdparty/html5shiv.js" %}"></script>
           <script src="{% static "js/3rdparty/respond.min.js" %}"></script>
         <![endif]-->
+    {% if settings.INSERT_GOOGLE_ANALYTICS == True %}
+    {{ settings.GOOGLE_ANALYTICS_SCRIPT|safe }}
+    {% endif %}
         <title>{% block title %}Template{% endblock %} - VIPSWeb</title>
 </head>
 <body>
@@ -64,16 +67,12 @@
 		
 	  <!-- Collect the nav links, forms, and other content for toggling -->
 	  <div class="collapse navbar-collapse navbar-ex1-collapse" style="clear: both;">
-	  	
 	    <ul class="nav navbar-nav navbar-right">
-	    	
 	      	{% generate_main_menu %}
-	    	
 		 </ul>
 	  </div><!-- /.navbar-collapse -->
 	  
 	  <div id="loginAndLanguageInfo">
-	    		
 	    	{% get_current_language as LANGUAGE_CODE %}
 		      <form action="/i18n/setlang/" method="post" class="form-inline">
 		      	<div class="form-group">
@@ -90,8 +89,7 @@
 				<div id="signInAndOut">
 			  	{% if request.session.vips_logic_user != None %}
 			  		<a href="http://{{settings.VIPSLOGIC_SERVER_NAME}}" target="new" class="signinLink" title="{% trans "Administration" %}"><span class="fa fa-cogs"></span></a>
-					{{ request.session.vips_logic_user.firstName}}
-					{{ request.session.vips_logic_user.lastName}}
+					<a href="http://{{settings.VIPSLOGIC_SERVER_NAME}}/user?action=viewUser&userId={{request.session.vips_logic_user.userId}}" target="new">{{ request.session.vips_logic_user.firstName}} {{ request.session.vips_logic_user.lastName}}</a>
 					<a href="/security/logout" class="signinLink" title="{% trans "Sign out" %}">
 					<span class="fa fa-sign-out"></span>
 					</a>
diff --git a/VIPSWeb/templates/settings.js b/VIPSWeb/templates/settings.js
index b5d53df72563064035e47c27699daf2d39b8a4ac..f29a38738b93cac524e0720e0c4c6e2913dafdeb 100644
--- a/VIPSWeb/templates/settings.js
+++ b/VIPSWeb/templates/settings.js
@@ -11,6 +11,7 @@ var settings = {
 		
 		vipsOrganizationId: {{settings.VIPS_ORGANIZATION_ID}},
 		vipslogicServerName: "{{settings.VIPSLOGIC_SERVER_NAME}}",
+		vipsCoremanagerServerName : "{{settings.VIPSCOREMANAGER_SERVER_NAME}}",
 		
 		mapZoomlevel: {{settings.MAP_ZOOMLEVEL}},
 		
diff --git a/VIPSWeb/urls.py b/VIPSWeb/urls.py
index d27cb48272bbf53381e71cf393e140fcad2ae0ad..5d4f571e35625867a6481e466d87176e854b7ad1 100644
--- a/VIPSWeb/urls.py
+++ b/VIPSWeb/urls.py
@@ -49,6 +49,7 @@ urlpatterns = patterns('',
     url(r'^calculators/', include('calculators.urls', namespace = "calculators")),
     url(r'^roughage/', include('roughage.urls', namespace = "roughage")),
     url(r'^security/', include('security.urls', namespace = "security")),
+    url(r'^fusarium/', include('fusarium.urls', namespace = "fusarium")),
     # Uncomment the next line to enable the admin:
     url(r'^admin/', include(admin.site.urls)),
     url(r'^tinymce/', include('tinymce.urls')),
diff --git a/fusarium/__init__.py b/fusarium/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/fusarium/admin.py b/fusarium/admin.py
new file mode 100644
index 0000000000000000000000000000000000000000..8c38f3f3dad51e4585f3984282c2a4bec5349c1e
--- /dev/null
+++ b/fusarium/admin.py
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.
diff --git a/fusarium/locale/nb/LC_MESSAGES/django.mo b/fusarium/locale/nb/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000000000000000000000000000000000..10e23878d8b764891d18e69b8854d6b6d0a4bb27
Binary files /dev/null and b/fusarium/locale/nb/LC_MESSAGES/django.mo differ
diff --git a/fusarium/locale/nb/LC_MESSAGES/django.po b/fusarium/locale/nb/LC_MESSAGES/django.po
new file mode 100644
index 0000000000000000000000000000000000000000..6be96eff5dbaf9fd37e425922253d818c3d0e351
--- /dev/null
+++ b/fusarium/locale/nb/LC_MESSAGES/django.po
@@ -0,0 +1,25 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-02-23 15:02+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: templates/fusarium/oat_flowering.html:3
+#: templates/fusarium/oat_flowering.html:9
+msgid "Oat flowering model"
+msgstr "Blomstringsmodell for havre"
+
diff --git a/fusarium/migrations/__init__.py b/fusarium/migrations/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/fusarium/models.py b/fusarium/models.py
new file mode 100644
index 0000000000000000000000000000000000000000..71a836239075aa6e6e4ecb700e9c42c95c022d91
--- /dev/null
+++ b/fusarium/models.py
@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.
diff --git a/fusarium/static/fusarium/js/oatFloweringModelForm.js b/fusarium/static/fusarium/js/oatFloweringModelForm.js
new file mode 100644
index 0000000000000000000000000000000000000000..95f07fa8a30ca06da2d7be266ad9fe82f60bd0e5
--- /dev/null
+++ b/fusarium/static/fusarium/js/oatFloweringModelForm.js
@@ -0,0 +1,393 @@
+/*
+ * Copyright (c) 2016 NIBIO <http://www.nibio.no/>. 
+ * 
+ * This file is part of VIPSWeb.
+ * VIPSWeb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * VIPSWeb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Affero General Public License
+ * along with VIPSWeb.  If not, see <http://www.gnu.org/licenses/>.
+ * 
+ */
+/**
+ * Self-serving application that calculates flowering period for oat.
+ * Depending on:
+ * <ul>
+ * 	<li>weather data source</li>
+ * 	<li>the oat flowering model in the VIPS forecasting system </li>
+ * 	<li>moment.js and moment-timezone.js (http://momentjs.com)</li>
+ *  <li>settings.js from main app (VIPSWeb)</li>
+ *  <li>Twitter Bootstrap (getbootstrap.com) for form layout</li>
+ * </ul>
+ * @author Tor-Einar Skog <tor-einar.skog@nibio.no>
+ */
+
+// *********** Configuration section ****************
+
+// Internal ID for the form
+var theFormId = "_oatFloweringModelForm";
+var detailURL = null;
+var DEBUG = false;
+
+// Settings for VIPS forecasting system
+var serverUri = settings.vipsCoremanagerServerName;
+//var serverUri = "https://coremanager.vips.nibio.no";
+//var serverUri = "http://vipscoremanager";
+var runUri= "http://" + serverUri + "/models/OATFLOWERM/run"; 
+var coreUserName = "";
+var corePass = "";
+
+// Location of weather data source
+var weatherDataBaseUri = "http://lmt.nibio.no/agrometbase/export/getSeasonDailyTemperaturesJSON.php";
+//var weatherDataBaseUri = "http://agrometbase-local/agrometbase/export/getSeasonDailyTemperaturesJSON.php";
+
+// Setting current time
+var now = moment();
+//var now = moment("2014-07-04");
+
+
+// ************ End configuration section ************
+
+/**
+ * Initializes the application. Sets up form, based on given options
+ */
+var oatForm = function(options)
+{
+	// Get options, validate
+	this.target = options.target;
+	this.weatherStations = options.weatherStations;
+	coreUsername = options.coreUserName;
+	corePass = options.corePass;
+	//console.log(options.now);
+	now = options.now != undefined ? moment(options.now) : now;
+	
+	
+	// Start stuff
+	var workspace = document.getElementById(this.target);
+	var height = workspace.offsetHeight;
+	var width = workspace.offsetWidth;
+	DEBUG = options.debug != null ? options.debug : false;
+	workspace.innerHTML = getStartHTML();
+	
+	var theForm = document.getElementById(theFormId);
+	
+	// Then, add weather stations
+	for(i in this.weatherStations)
+	{
+		var option = new Option(this.weatherStations[i].name,this.weatherStations[i].weatherstation_id);
+		theForm.weatherStationId.options[theForm.weatherStationId.options.length]=option;
+	}
+};
+
+/**
+ * Start the chain of functions that run the model
+ */
+var submitForm = function()
+{
+	// TODO: Validate input
+	// Date of sowing format
+	if(!getDateOfSowing().isValid())
+	{
+		alert('Ikke gyldig dato. Tips: Skriv eksempelvis 2014-04-02 for 2. april 2014.');
+		return;
+	}
+	// Date of sowing limit is July 1st
+	var thisYear = getDateOfSowing().year();
+	var dateOfSowingLimit = moment(thisYear + "-07-01","YYYY-MM-DD");
+	if(getDateOfSowing().isAfter(dateOfSowingLimit))
+	{
+		alert("Saadato er etter 1. juli. Dette stemmer antakelig ikke. Ingen beregninger er foretatt.");
+		return;
+	}
+	var theForm = document.getElementById(theFormId);
+	if(theForm.weatherStationId.options[theForm.weatherStationId.selectedIndex].value <= 0)
+	{
+		alert("Vennligst velg klimastasjon");
+		return;
+	}
+	// See if test input now is set
+	if(DEBUG)
+	{
+		now = getNow();
+	}
+	
+	// Erase previous results
+	displayResultHTML("");
+
+	// Start chain of async functions
+	createConfig();
+
+}
+
+/**
+ * Creates the configuration for weather data. Moves on to running model after data returns
+ */
+var createConfig = function(){
+	
+	
+	var theForm = document.getElementById(theFormId);
+	var weatherStationId = theForm.weatherStationId.options[theForm.weatherStationId.selectedIndex].value;
+	var dateOfSowing = getDateOfSowing();
+	// Challenge: Get weather data asynchronously first....
+	//Tip: Use jQuery.stringify
+	//var theConfig = 
+	var weatherDataUri = [weatherDataBaseUri,
+	                      "?startDate=", dateOfSowing.format("YYYY-MM-DD"),
+	                      (DEBUG ? "&today=" + now.format("YYYY-MM-DD") : ""),
+	                      "&weatherStationId=", weatherStationId//,
+	                      //"&callback=?"
+	                      ].join("");
+	
+	
+	var jqxhr = $.ajax( {
+		url:weatherDataUri,
+		dataType: "json"
+		})
+	.done(function(data, textStatus, jqXHR) {
+		runModel(data);
+	})
+	.fail(function( jqXHR, textStatus,errorThrown ) {
+		alert( "Request failed: " + errorThrown );
+	})
+	.always(function() {
+	//alert( "complete" );
+	})
+	;
+	
+		
+};
+
+/**
+ * Calls the oatFlowering model in the VIPS forecasting system
+ * Displays data when results are returned
+ */
+var runModel = function(data)
+{
+	//console.log("runModel");
+	var dateOfSowing = getDateOfSowing();
+	var modelConfig = {
+		"loginInfo":{
+			"username":"testuser",
+			"password":"testpass"
+		},
+		"modelId":"OATFLOWERM",
+		"configParameters":{
+			//"dateOfSowing":"2013-04-01T00:00:00+02:00",
+			"dateOfSowing":dateOfSowing.format("YYYY-MM-DD"),
+			"observations": data
+		}
+	};
+
+	//console.log(data);
+    var request = $.ajax({
+        type:"POST",
+        url: runUri,
+        data: JSON.stringify(modelConfig),
+        dataType: "json",
+        contentType: "application/json; charset=utf-8",
+    })
+    .done(function(data, textStatus, jqXHR) {
+		displayResults(data);
+	})
+	.fail(function( jqXHR, textStatus,errorThrown ) {
+		alert( "Request failed: " + errorThrown );
+	})
+	.always(function() {
+	//alert( "complete" );
+	})
+	;
+	
+}
+
+/**
+ * Analyze and display results from the OatFlowering model in VIPS
+ */
+var displayResults = function(data)
+{
+	// getting the dates
+	var dateOfSowing = getDateOfSowing();
+	var dateZ60 = getDateForZ(data,60);
+	var weekZ625 = getWeekForZ(data,62.5);
+	var dateZ69 = getDateForZ(data,69);
+	now = getNow();
+	var weekNow = now.week();
+	var weeksFromNowToZ625 = Math.abs(weekZ625-weekNow);
+	/*console.log("now: " + now.tz("Europe/Oslo").format());
+	console.log("z60: " + dateZ60.tz("Europe/Oslo").format());
+	console.log("z62.5: " + getDateForZ(data,62.5).tz("Europe/Oslo").format());
+	console.log("z69: " + dateZ69.tz("Europe/Oslo").format());*/
+	
+	
+	// Scenario 1: Today is before date of sowing
+	if(now.isBefore(dateOfSowing))
+	{
+		displayResultHTML( ["Havre s&aring;dd ", dateOfSowing.tz("Europe/Oslo").format("YYYY-MM-DD"),
+		              " antas &aring; v&aelig;re i blomstring i uke ", weekZ625, " (om ", weeksFromNowToZ625, " uker). ",
+		              "Vi gj&oslash;r oppmerksom p&aring; at oppgitt s&aring;dato er frem i tid. ",
+		              "Beregningen vil derfor kun v&aelig;re basert p&aring; prognoser og historiske v&aelig;rdata. ",
+		              "Dette anslaget vil ha st&oslash;rre grad av sikkerhet n&aring;r dagens dato n&aelig;rmer seg ",
+		              "tidspunktet for antatt blomstring.<br/>",
+			             (DEBUG ? getRawResults(data) : "")
+		              ].join("")
+		);
+	}
+	// Scenario 2: Today is after date of sowing, but more than 10 days before z60
+	else if(moment(now).add(10,"days").isBefore(dateZ60))
+	{
+		displayResultHTML( ["Havre s&aring;dd ", dateOfSowing.tz("Europe/Oslo").format("YYYY-MM-DD"),
+		              " antas &aring; v&aelig;re i blomstring i uke ", weekZ625, " (om ", weeksFromNowToZ625, " uker). ",
+		              "Vi gj&oslash;r oppmerksom p&aring; at beregningen er basert p&aring; observerte v&aelig;rdata, ",
+		              "i tillegg til prognoser og historiske v&aelig;rdata. ",
+		              "Dette anslaget vil ha st&oslash;rre grad av sikkerhet n&aring;r dagens dato n&aelig;rmer seg ",
+		              "tidspunktet for antatt blomstring.<br/>",
+		              (DEBUG ? getRawResults(data) : "")
+		              ].join("")
+		);
+	}
+	// Scenario 3: Today is after date of sowing, and 0-10 days before z60 OR before z69
+	else if((now.isBefore(dateZ60) && moment(now).add("days",11).isAfter(dateZ60)) || now.isBefore(dateZ69))
+	{
+		displayResultHTML(["Havre s&aring;dd ", dateOfSowing.tz("Europe/Oslo").format("YYYY-MM-DD"),
+		              " antas &aring; v&aelig;re i blomstring i perioden fra ", 
+		              moment(dateZ60).add("days",-5).tz("Europe/Oslo").format("YYYY-MM-DD"), 
+		              " til ",
+		              moment(dateZ60).add("days",5).tz("Europe/Oslo").format("YYYY-MM-DD"),
+		              ,". ",
+		              "Dersom v&aelig;rforholdene ligger til rette for utvikling av mykotoksiner (DON)*, ",
+		              "kan fungicidbehandling vurderes foretatt i perioden fra ",dateZ60.tz("Europe/Oslo").format("YYYY-MM-DD"),
+		              " og en uke fremover i tid. Beregningen er basert p&aring; observerte v&aelig;rdata ",
+		              "i tillegg til prognoser. ",
+		              (DEBUG ? getRawResults(data) : "")
+		              ].join("")
+		);
+	}
+	
+	// Scenario 4: Today is after z69. Too late
+	else 
+	{
+		displayResultHTML(["Havre s&aring;dd ", dateOfSowing.tz("Europe/Oslo").format("YYYY-MM-DD"),
+		             " antas &aring; ha v&aelig;rt i blomstring i uke ", weekZ625, " (for ", weeksFromNowToZ625, " uker siden). ",
+		             "Det er antakelig for sent &aring; behandle med fungicid for &aring; redusere risikoen ",
+		             "for utvikling av DON.<br/>",
+		             (DEBUG ? getRawResults(data) : "")
+		             ].join("")
+		             );
+	}
+	//console.log(data);
+}
+
+/**
+ * Util/DEBUG function for displaying the results returned from VIPS
+ */
+var getRawResults = function(data)
+{
+	var result = "<h2>R&aring;data</h2><ul>";
+	for(var key in data)
+	{
+		result +="<li>";
+		result += "z" + data[key].allValues["OATFLOWERM.ZREACHED"] + " n&aring;dd  " 
+			+ moment(data[key].resultValidTime).tz("Europe/Oslo").format("YYYY-MM-DD")
+			+ " (uke " + data[key].allValues["OATFLOWERM.WEEK_IN_YEAR"] + ")<br/>";
+		result +="</li>";
+	}
+	result +="</ul>";
+	return result;
+}
+
+/**
+ * Interface for displaing the results
+ */
+var displayResultHTML = function(text)
+{
+	document.getElementById("oatFloweringModelResults").innerHTML= "<h2>Resultater</h2>" + text;
+}
+
+/**
+ * Loops through results from VIPS, returns date for stadium Z
+ * Possible values for Z are [60,62.5,69]
+ */
+var getDateForZ = function(data,z)
+{
+	for(var key in data)
+	{
+		if(data[key].allValues["OATFLOWERM.ZREACHED"] == z)
+		{
+			return moment(data[key].resultValidTime);
+		}
+	}
+}
+
+/**
+ * Loops through results from VIPS, returns week number (in year) for stadium Z
+ * Possible values for Z are [60,62.5,69]
+ */
+var getWeekForZ = function(data,z)
+{
+	for(var key in data)
+	{
+		if(data[key].allValues["OATFLOWERM.ZREACHED"] == z)
+		{
+			return data[key].allValues["OATFLOWERM.WEEK_IN_YEAR"];
+		}
+	}
+}
+
+/**
+ * Get date of sowing from form
+ */
+var getDateOfSowing = function()
+{
+	var theForm = document.getElementById(theFormId);
+	var dateOfSowing = moment(theForm.dateOfSowing.value,"YYYY-MM-DD");
+	return dateOfSowing;
+}
+
+/**
+ * Util function for getting current time
+ * @returns
+ */
+function getNow()
+{
+	var theForm = document.getElementById(theFormId);
+	if(theForm.now != undefined)
+	{
+		var formNow = moment(theForm.now.value,"YYYY-MM-DD");
+		return formNow.isValid() ? formNow : now;
+	}
+	else return now;
+}
+
+/**
+ * @return the HTML for the form
+ */
+var getStartHTML = function()
+{
+	return [
+	        	 
+                 "<form id='",theFormId,"' role='form'>",
+                 "<div class='form-group'>",
+                 "<label for='dateOfSowing'>S&aring;dato</label> ",
+                 "<input class='form-control' type='date' name='dateOfSowing', value='",now.format("YYYY-MM-DD"),"'/><br/>",
+                 "</div>",
+                 (DEBUG ? "<div class='form-group'>" :""),
+                 (DEBUG ? "<label for='now'>N&aring;dato </label>" : ""),
+                 (DEBUG ? ["<input type='date' class='form-control' name='now' value='", now.format("YYYY-MM-DD"), "'/><br/>"].join("") : ""),
+                 (DEBUG ? "</div>" :""),
+                 "<div class='form-group'>",
+                 "<label for='weatherStationId'>Målestasjon</label>",
+                 "<select name='weatherStationId' class='form-control'>",
+                 "<option value='-1'>-- Vennligst velg målestasjon --</option>",
+                 "</select><br/>",
+                 "<button type='button' class='btn btn-default' onclick='submitForm();'>Beregn</button>",
+                 "</form>",
+                 "</div>",
+                 "<div id='resultsTable'></div>"
+                 ].join("");
+}
diff --git a/fusarium/templates/fusarium/oat_flowering.html b/fusarium/templates/fusarium/oat_flowering.html
new file mode 100644
index 0000000000000000000000000000000000000000..ea6f331f2b276bfa875982a0c329b5cda239ed6b
--- /dev/null
+++ b/fusarium/templates/fusarium/oat_flowering.html
@@ -0,0 +1,51 @@
+{% extends "base.html" %}
+{% load i18n staticfiles %}
+{% block title%}{% trans "Oat flowering model" %}{%endblock%}
+{% block extendCSS %}
+
+{% endblock %}
+{% block content %}
+<div class="singleBlockContainer">
+	<h1>{% trans "Oat flowering model" %}</h1>
+	<p>
+        Her kan du beregne tidspunkt for n&aring;r havren er i blomst og dermed n&aring;r 
+        en eventuell behandling med soppmiddel mot Fusarium m&aring; utf&oslash;res. 
+        <a href='http://gamlevips.nibio.no/information/if105s.jsp?HTTP_REFERRER=/information/if105s.jsp&BUTTON=kapittel&menyValg=4#blomstringsmodell_havre' target='new'>Les mer</a>
+    </p>
+	<div id="oatFloweringModelForm" style="width:100%"></div>
+    <div id="oatFloweringModelResults" style="width:100%;"></div>
+</div>
+{% endblock %}
+{% block extendJS%}
+
+{% endblock %}
+{% block customJS%}
+<script type="text/javascript" src="{% static "js/3rdparty/moment.min.js" %}"></script>
+<script type="text/javascript" src="{% static "js/3rdparty/moment-timezone-with-data.min.js" %}"></script>
+<script type="text/javascript" src="{% static "js/3rdparty/modernizr_custom.js"%}"></script>
+<script type="text/javascript" src="{% url "views.settings_js" %}"></script>
+<script src="{% static "fusarium/js/oatFloweringModelForm.js" %}"></script>
+<script type="text/javascript">
+	
+	var weatherStations = [];
+	$(document).ready(function() {
+		$.getJSON("http://lmt.nibio.no/agrometbase/export/getNormalDataStationsJSON.php", function( json ) {
+			weatherStations = json;
+			var formApp = new oatForm({
+		  		target:"oatFloweringModelForm",
+		  		weatherStations:weatherStations,
+		  		//coreUsername:"gamlevips",
+		  		//corePass:"gamlevips123"
+		  		coreUsername:"testuser",
+		  		corePass:"testpass",
+	            debug : false
+	  		});
+	  		
+	  		// Date picker fallback
+	  		if (!Modernizr.inputtypes.date) {
+			    $('input[type=date]').datepicker({ dateFormat: 'yy-mm-dd' });
+			}
+		});
+	});
+</script>
+{% endblock %}
diff --git a/fusarium/tests.py b/fusarium/tests.py
new file mode 100644
index 0000000000000000000000000000000000000000..7ce503c2dd97ba78597f6ff6e4393132753573f6
--- /dev/null
+++ b/fusarium/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/fusarium/urls.py b/fusarium/urls.py
new file mode 100644
index 0000000000000000000000000000000000000000..d5bbfe9e3047c165ff183ee558ef468fe27f986b
--- /dev/null
+++ b/fusarium/urls.py
@@ -0,0 +1,25 @@
+#
+# Copyright (c) 2016 NIBIO <http://www.nibio.no/>. 
+# 
+# This file is part of VIPSWeb.
+# VIPSWeb is free software: you can redistribute it and/or modify
+# it under the terms of the NIBIO Open Source License as published by 
+# NIBIO, either version 1 of the License, or (at your option) any
+# later version.
+# 
+# VIPSWeb is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# NIBIO Open Source License for more details.
+#
+# You should have received a copy of the NIBIO Open Source License
+# along with VIPSWeb.  If not, see <http://www.nibio.no/licenses/>.
+# 
+
+from django.conf.urls import patterns, url
+
+from fusarium import views
+
+urlpatterns = patterns('',
+    url(r'^$', views.index, name='index'),
+)
\ No newline at end of file
diff --git a/fusarium/views.py b/fusarium/views.py
new file mode 100644
index 0000000000000000000000000000000000000000..35d201f965d2ccf9279dc842a7353a7b368549c3
--- /dev/null
+++ b/fusarium/views.py
@@ -0,0 +1,8 @@
+from django.shortcuts import render
+
+# Create your views here.
+
+
+def index(request):
+    context = {}
+    return render(request, 'fusarium/oat_flowering.html', context)
\ No newline at end of file
diff --git a/security/models.py b/security/models.py
index 40c943b5c6cdd2c21f9942972d160e68829a2e39..ad58a49db3485b793d7eb8ed3f28e517cbb9c4ea 100644
--- a/security/models.py
+++ b/security/models.py
@@ -54,6 +54,7 @@ class VipsLogicUser:
         request_result = requests.get("http://%s/rest/user/uuid/%s" % (settings.VIPSLOGIC_SERVER_NAME,user_uuid))
         if request_result.status_code == 200:
             #return VipsLogicUser.get_instance_from_dict(request_result.json())
+            #print request_result.json()
             return request_result.json()
         else:
             return None