From d2a7d200cdf73895f9c90096e3d5f04b26822bca Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@nibio.no>
Date: Tue, 11 Apr 2017 16:30:43 -0700
Subject: [PATCH] Added date search field for observations

---
 observations/forms.py                          |  5 +++++
 observations/templates/observations/index.html | 18 ++++++++++++++++--
 observations/views.py                          |  9 +++++++--
 3 files changed, 28 insertions(+), 4 deletions(-)
 create mode 100644 observations/forms.py

diff --git a/observations/forms.py b/observations/forms.py
new file mode 100644
index 00000000..2b8c8a02
--- /dev/null
+++ b/observations/forms.py
@@ -0,0 +1,5 @@
+from django import forms
+
+class ObservationTimeFilterForm(forms.Form):
+    timeOfObservationFrom = forms.DateField(required=False)
+    timeOfObservationTo = forms.DateField(required=False)
\ No newline at end of file
diff --git a/observations/templates/observations/index.html b/observations/templates/observations/index.html
index 81ac2e2f..8ed4fb67 100755
--- a/observations/templates/observations/index.html
+++ b/observations/templates/observations/index.html
@@ -44,7 +44,17 @@
 			</div>
 		</div>
 		<div class="col-xs-6">
-		</div>
+		<form class="form-inline" method="get" action="/observations">
+			<div class="form-group">
+				<input class="form-control" type="date" name="{{form.timeOfObservationFrom.html_name}}" value="{{form.timeOfObservationFrom.value | default_if_none:""}}" placeholder="{% trans "From" %}"/>
+			</div>
+			-
+			<div class="form-group">
+				<input class="form-control" type="date" name="{{form.timeOfObservationTo.html_name}}" value="{{form.timeOfObservationTo.value | default_if_none:""}}" placeholder="{% trans "To" %}"/>
+			</div>
+			<button type="submit" class="btn btn-primary">{% trans "Date search" %}</button>
+		</form>
+	</div>
 	</div>
 	<table class="table">
 		<thead>
@@ -80,7 +90,11 @@
 	};
 	$(document).ready(function() {
 		$(".chosen-select").chosen({placeholder_text_multiple:"{% trans "Crops" %}"});
-		$.getJSON("/vipslogicproxy/rest/observation/broadcast/list/" + settings.vipsOrganizationId, function( json ) {
+		{% if form.timeOfObservationFrom.value or form.timeOfObservationTo.value %}
+		$.getJSON("/vipslogicproxy/rest/observation/broadcast/list/" + settings.vipsOrganizationId+ "?timeOfObservationFrom={{form.timeOfObservationFrom.value | default_if_none:""}}&timeOfObservationTo={{form.timeOfObservationTo.value | default_if_none:""}}", function( json ) {
+		{% else %}
+		$.getJSON("/vipslogicproxy/rest/observation/broadcast/list/" + settings.vipsOrganizationId+ "?season=" + getCurrentYear(), function( json ) {
+		{% endif %}
 			allObservations = json;
 			allObservations.sort(sortObservationMessages).reverse();
 			for(var i in allObservations)
diff --git a/observations/views.py b/observations/views.py
index 091827f5..86da364b 100755
--- a/observations/views.py
+++ b/observations/views.py
@@ -19,16 +19,21 @@
 
 from django.shortcuts import render
 from django.utils import translation
+from observations.forms import ObservationTimeFilterForm
 from organisms.models import CropCategory
 
 def index(request):
+    form = ObservationTimeFilterForm(request.GET)
+    if form == None:
+        form = ObservationTimeFilterForm() 
     context = {
-              'crop_categories': CropCategory.get_crop_categories(translation.get_language())
+              "crop_categories": CropCategory.get_crop_categories(translation.get_language()),
+              "form" : form
                }
     return render(request, 'observations/index.html', context)
 
 def detail(request, observation_id):
     context = {
-              "observation_id" : observation_id
+              "observation_id" : observation_id,
                }
     return render(request, 'observations/detail.html', context)
-- 
GitLab