diff options
| author | Étienne Loks <etienne.loks@proxience.com> | 2014-10-15 01:14:31 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@proxience.com> | 2014-10-15 01:14:31 +0200 | 
| commit | 97c69aab0038bbd067017a9a43ad67e477abc2e3 (patch) | |
| tree | a28c33c17f007b692f8071aba453fd13b6d0745e /ishtar_common/views.py | |
| parent | 65a99f54a4220bd18f5c4337e8d99ce5d24e665b (diff) | |
| download | Ishtar-97c69aab0038bbd067017a9a43ad67e477abc2e3.tar.bz2 Ishtar-97c69aab0038bbd067017a9a43ad67e477abc2e3.zip  | |
Dashboard: implement a form to choose criteria for the graph display
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))  | 
