From 334650b53e2b15531d48c0b4aedd032e093f82c5 Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@bioforsk.no>
Date: Wed, 18 Feb 2015 14:06:22 +0100
Subject: [PATCH] Added date filter for messages
---
messages/forms.py | 5 +++++
messages/models.py | 12 ++++++++----
messages/templates/messages/index.html | 18 ++++++++++++++++--
messages/views.py | 18 +++++++++++++++++-
4 files changed, 46 insertions(+), 7 deletions(-)
create mode 100644 messages/forms.py
diff --git a/messages/forms.py b/messages/forms.py
new file mode 100644
index 00000000..995d3f43
--- /dev/null
+++ b/messages/forms.py
@@ -0,0 +1,5 @@
+from django import forms
+
+class MessagePublishedDateFilterForm(forms.Form):
+ publishedFrom = forms.DateField(required=False)
+ publishedTo = forms.DateField(required=False)
\ No newline at end of file
diff --git a/messages/models.py b/messages/models.py
index e31c52f6..fca54dec 100644
--- a/messages/models.py
+++ b/messages/models.py
@@ -106,17 +106,21 @@ class Message:
return messages
@staticmethod
- def get_messages(current_language=settings.VIPSLOGIC_LANGUAGE_CODE):
+ def get_messages(current_language=settings.VIPSLOGIC_LANGUAGE_CODE, publishedFrom=None, publishedTo=None):
messages = []
- for item in Message.get_messages_as_json():
+ for item in Message.get_messages_as_json(publishedFrom, publishedTo):
message = Message.get_instance_from_dict(item, current_language)
messages.append(message)
return messages
@staticmethod
- def get_messages_as_json():
- request_result = requests.get("http://%s/rest/message/list/%s" % (settings.VIPSLOGIC_SERVER_NAME,settings.VIPS_ORGANIZATION_ID))
+ def get_messages_as_json(publishedFrom=None, publishedTo=None):
+ payload = {"publishedFrom":publishedFrom, "publishedTo":publishedTo}
+ request_result = requests.get(
+ "http://%s/rest/message/list/%s" % (settings.VIPSLOGIC_SERVER_NAME,settings.VIPS_ORGANIZATION_ID),
+ params=payload
+ )
return request_result.json()
@staticmethod
diff --git a/messages/templates/messages/index.html b/messages/templates/messages/index.html
index 26991c1e..cf63d3d5 100644
--- a/messages/templates/messages/index.html
+++ b/messages/templates/messages/index.html
@@ -4,13 +4,27 @@
{% block content %}
<h1>{% trans "Messages" %}</h1>
<div class="row">
- <div class="col-xs-12">
+ <div class="col-xs-6">
<div class="input-group">
<div class="input-group-addon"><img src="{% static "css/icons/ic_action_search.png" %}" alt="Search icon"/></div>
<input class="form-control" type="text" placeholder="{% trans "Search" %}" oninput="search(this);"/>
</div>
-
</div>
+ <div class="col-xs-6">
+ <form class="form-inline" method="get" action="/messages">
+ <div class="form-group">
+ {{form.publishedFrom.errors}}
+ <input class="form-control" type="date" name="{{form.publishedFrom.html_name}}" value="{{form.publishedFrom.value}}" placeholder="{% trans "From" %}"/>
+ </div>
+ -
+ <div class="form-group">
+ {{form.publishedTo.errors}}
+ <input class="form-control" type="date" name="{{form.publishedTo.html_name}}" value="{{form.publishedTo.value}}" placeholder="{% trans "To" %}"/>
+ </div>
+ <button type="submit" class="btn btn-default">{% trans "Submit" %}</button>
+ </form>
+ </div>
+
</div>
<div class="table-responsive">
<table id="resultTable" class="table table-striped">
diff --git a/messages/views.py b/messages/views.py
index 36cb0618..2c62a730 100644
--- a/messages/views.py
+++ b/messages/views.py
@@ -20,10 +20,26 @@ from django.shortcuts import render
from django.utils import translation
from messages.models import Message
+from messages.forms import MessagePublishedDateFilterForm
def index(request):
+ messages = None
+ form = MessagePublishedDateFilterForm(request.GET)
+ if form == None:
+ form = MessagePublishedDateFilterForm()
+ elif form.is_valid():
+ messages = Message.get_messages(
+ translation.get_language(),
+ form.cleaned_data["publishedFrom"],
+ form.cleaned_data["publishedTo"]
+ )
+ else:
+ messages = Message.get_messages(translation.get_language())
+
+
context = {
- 'messages' : Message.get_messages(translation.get_language()),
+ 'messages' : messages,
+ 'form' : form
}
return render(request, 'messages/index.html', context)
--
GitLab