diff options
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r-- | ishtar_common/views.py | 55 |
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)) |