diff --git a/messages/forms.py b/messages/forms.py new file mode 100644 index 0000000000000000000000000000000000000000..995d3f43db8969730b968324778774b977da3025 --- /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 e31c52f6140021a5834d06afd48ccaff428867f1..fca54dec9be9dffd2f041dc240c778e16e83cef2 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 26991c1e2a822a7c78ca100d0982e5571dd64b41..cf63d3d5c41a5234285daec76d46c61db08aed45 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 36cb0618c45b0f8f26368e2de0615be829f386a4..2c62a73022e7022999e1e335dd3ac4d51abe0777 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)