summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py55
1 files changed, 31 insertions, 24 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 9f193fdec..e51704794 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -703,35 +703,23 @@ def dashboard_main(request, dct, obj_id=None, *args, **kwargs):
"""
Main dashboard
"""
- """
- items = []
- if 'archaeological_files' in settings.INSTALLED_APPS:
- from archaeological_files.models import File
- items.append((_(u"Archaeological files"),
- models.Dashboard(File)))
- from archaeological_operations.models import Operation
- items.append((_(u"Operations"), models.Dashboard(Operation)))
- if 'archaeological_context_records' in settings.INSTALLED_APPS:
- from archaeological_context_records.models import ContextRecord
- items.append((_(u"Context records"), models.Dashboard(ContextRecord)))
- if 'archaeological_finds' in settings.INSTALLED_APPS:
- from archaeological_finds.models import Find
- items.append((_(u"Finds"), models.Dashboard(Find)))
- dct = {'items':items,
- 'ishtar_users':models.UserDashboard()}
- """
app_list = []
if 'archaeological_files' in settings.INSTALLED_APPS:
app_list.append((_(u"Archaeological files"), 'files'))
app_list.append((_(u"Operations"), 'operations'))
if 'archaeological_context_records' in settings.INSTALLED_APPS:
- app_list.append((_(u"Context records"), 'context-records'))
+ app_list.append((_(u"Context records"), 'contextrecords'))
if 'archaeological_finds' in settings.INSTALLED_APPS:
app_list.append((_(u"Finds"), 'finds'))
dct = {'app_list':app_list}
return render_to_response('ishtar/dashboards/dashboard_main.html', dct,
context_instance=RequestContext(request))
+DASHBOARD_FORMS = {}
+if 'archaeological_files' in settings.INSTALLED_APPS:
+ from archaeological_files.forms import DashboardForm as DashboardFormFile
+ DASHBOARD_FORMS['files'] = DashboardFormFile
+
def dashboard_main_detail(request, item_name):
"""
Specific tab of the main dashboard
@@ -741,25 +729,44 @@ def dashboard_main_detail(request, item_name):
return render_to_response(
'ishtar/dashboards/dashboard_main_detail_users.html',
dct, context_instance=RequestContext(request))
+ form = None
+ slicing, fltr = 'year', {}
+ if item_name in DASHBOARD_FORMS:
+ if request.method == 'POST':
+ form = DASHBOARD_FORMS[item_name](request.POST)
+ if form.is_valid():
+ slicing = form.cleaned_data['slicing']
+ fltr = form.get_filter()
+ else:
+ form = DASHBOARD_FORMS[item_name]()
lbl, dashboard = None, None
if item_name == 'files' and \
'archaeological_files' in settings.INSTALLED_APPS:
from archaeological_files.models import File
- lbl, dashboard = (_(u"Archaeological files"), models.Dashboard(File))
+ lbl, dashboard = (_(u"Archaeological files"), models.Dashboard(File,
+ slice=slicing, fltr=fltr))
if item_name == 'operations':
from archaeological_operations.models import Operation
- lbl, dashboard = (_(u"Operations"), models.Dashboard(Operation))
- if item_name == 'context-records' and \
+ lbl, dashboard = (_(u"Operations"), models.Dashboard(Operation,
+ slice=slicing, fltr=fltr))
+ if item_name == 'contextrecords' and \
'archaeological_context_records' in settings.INSTALLED_APPS:
from archaeological_context_records.models import ContextRecord
- lbl, dashboard = (_(u"Context records"), models.Dashboard(ContextRecord))
+ lbl, dashboard = (_(u"Context records"), models.Dashboard(ContextRecord,
+ slice=slicing, fltr=fltr))
if item_name == 'finds' and \
'archaeological_finds' in settings.INSTALLED_APPS:
from archaeological_finds.models import Find
- lbl, dashboard = (_(u"Finds"), models.Dashboard(Find))
+ lbl, dashboard = (_(u"Finds"), models.Dashboard(Find,
+ slice=slicing, fltr=fltr))
if not lbl:
raise Http404
dct = {'lbl':lbl, 'dashboard':dashboard,
- 'item_name':item_name.replace('-', '_')}
+ 'item_name':item_name.replace('-', '_'),
+ 'VALUE_QUOTE': '' if slicing == "year" else "'",
+ 'form':form, 'slicing':slicing}
+ n = datetime.datetime.now()
+ dct['unique_id'] = dct['item_name'] + "_" + \
+ '%d_%d_%d' % (n.minute, n.second, n.microsecond)
return render_to_response('ishtar/dashboards/dashboard_main_detail.html',
dct, context_instance=RequestContext(request))