summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-04-12 18:55:58 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-04-12 18:55:58 +0200
commit5f9fe6a2718afacc1126c5d8c6312c887b5f960c (patch)
tree12dae6dbcb1dd5594998582ecfa97c8d752906e5 /ishtar_common
parentd2e90a63bdd79ae7e43702996967e7c408f0b47d (diff)
downloadIshtar-5f9fe6a2718afacc1126c5d8c6312c887b5f960c.tar.bz2
Ishtar-5f9fe6a2718afacc1126c5d8c6312c887b5f960c.zip
Treament dashboard: add filter form (refs #3381)
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/models.py2
-rw-r--r--ishtar_common/templates/ishtar/dashboards/dashboard_main_detail.html2
-rw-r--r--ishtar_common/views.py23
3 files changed, 17 insertions, 10 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 83cb25d46..44bc138eb 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -1370,7 +1370,7 @@ class DashboardFormItem(object):
return q.distinct('pk').count()
-class Dashboard:
+class Dashboard(object):
def __init__(self, model, slice='year', date_source=None, show_detail=None,
fltr={}):
# don't provide date_source if it is not relevant
diff --git a/ishtar_common/templates/ishtar/dashboards/dashboard_main_detail.html b/ishtar_common/templates/ishtar/dashboards/dashboard_main_detail.html
index fd92578a2..c3a8a58a8 100644
--- a/ishtar_common/templates/ishtar/dashboards/dashboard_main_detail.html
+++ b/ishtar_common/templates/ishtar/dashboards/dashboard_main_detail.html
@@ -178,7 +178,7 @@ $('#search_{{unique_id}}').click(function (){
return false;
});
-{% if item_name == 'files' or item_name == "operations"%}
+{% if item_name == 'files' or item_name == "operations" or item_name == "treatments" or item_name == "treatment_types" %}
load_jquerydate_{{item_name}}_after();
load_jquerydate_{{item_name}}_before();
{% endif %}
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index e8a2c9e12..4aa452641 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -63,6 +63,7 @@ from archaeological_finds.models import Find, Treatment, TreatmentFile, \
from archaeological_operations.forms import DashboardForm as DashboardFormOpe
from archaeological_files.forms import DashboardForm as DashboardFormFile
+from archaeological_finds.forms import DashboardTreatmentForm
from ishtar_common.forms import FinalForm, FinalDeleteForm
from ishtar_common.widgets import JQueryAutoComplete
@@ -1458,7 +1459,10 @@ def dashboard_main(request, dct, obj_id=None, *args, **kwargs):
return render_to_response('ishtar/dashboards/dashboard_main.html', dct,
context_instance=RequestContext(request))
-DASHBOARD_FORMS = {'files': DashboardFormFile, 'operations': DashboardFormOpe}
+DASHBOARD_FORMS = {
+ 'files': DashboardFormFile, 'operations': DashboardFormOpe,
+ 'treatments': DashboardTreatmentForm
+}
def dashboard_main_detail(request, item_name):
@@ -1473,8 +1477,11 @@ def dashboard_main_detail(request, item_name):
form = None
slicing, date_source, fltr, show_detail = 'year', None, {}, False
profile = models.get_current_profile()
- if (item_name == 'files' and profile.files) \
- or item_name == 'operations':
+ has_form = (item_name == 'files' and profile.files) \
+ or item_name == 'operations' \
+ or (item_name in ('treatmentfiles', 'treatments')
+ and profile.warehouse)
+ if has_form:
slicing = 'month'
if item_name in DASHBOARD_FORMS:
if request.method == 'POST':
@@ -1490,8 +1497,7 @@ def dashboard_main_detail(request, item_name):
form = DASHBOARD_FORMS[item_name]()
lbl, dashboard = None, None
dashboard_kwargs = {}
- if (item_name == 'files' and profile.files) \
- or item_name == 'operations':
+ if has_form:
dashboard_kwargs = {'slice': slicing, 'fltr': fltr,
'show_detail': show_detail}
# date_source is only relevant when the form has set one
@@ -1515,12 +1521,13 @@ def dashboard_main_detail(request, item_name):
elif item_name == 'treatmentfiles' and profile.warehouse:
lbl, dashboard = (
_(u"Treatment requests"),
- models.Dashboard(TreatmentFile, slice=slicing, fltr=fltr))
+ models.Dashboard(TreatmentFile, **dashboard_kwargs))
elif item_name == 'treatments' and profile.warehouse:
+ if 'date_source' not in dashboard_kwargs:
+ dashboard_kwargs['date_source'] = 'start'
lbl, dashboard = (
_(u"Treatments"),
- models.Dashboard(Treatment, slice=slicing, fltr=fltr,
- date_source='start'))
+ models.Dashboard(Treatment, **dashboard_kwargs))
if not lbl:
raise Http404
dct = {'lbl': lbl, 'dashboard': dashboard,