diff options
Diffstat (limited to 'ishtar_common/views.py')
| -rw-r--r-- | ishtar_common/views.py | 38 | 
1 files changed, 24 insertions, 14 deletions
| diff --git a/ishtar_common/views.py b/ishtar_common/views.py index bc5e5ef1d..cd34a2019 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -25,6 +25,7 @@ import cStringIO as StringIO  import datetime  import ho.pisa as pisa  import json +import logging  from markdown import markdown  import optparse  import re @@ -75,6 +76,8 @@ import models  CSV_OPTIONS = {'delimiter': ';', 'quotechar': '"', 'quoting': csv.QUOTE_ALL}  ENCODING = settings.ENCODING or 'utf-8' +logger = logging.getLogger(__name__) +  def index(request):      """ @@ -334,7 +337,7 @@ def update_current_item(request, item_type=None, pk=None):      request.session['SHORTCUT_SEARCH'] = 'all'      currents = get_current_items(request) -    # reinit when descending item are not relevant +    # re-init when descending item are not relevant      if item_type == 'file' and currents['file'] and currents['operation'] and \              currents['operation'].associated_file != currents['file']:          request.session["operation"] = '' @@ -428,7 +431,6 @@ def autocomplete_person(request, person_types=None, attached_to=None,              pass      if is_ishtar_user:          query = query & Q(ishtaruser__isnull=False) -    limit = 20      persons = models.Person.objects.filter(query)[:limit]      data = json.dumps([{'id': person.pk, 'value': unicode(person)}                         for person in persons if person]) @@ -696,7 +698,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[],                          dct[k] = not dct[k]                      # check also for empty value with image field                      field_name = k.split('__')[0] -                    # TODO: can be improved in later evrsion of Django +                    # TODO: can be improved in later version of Django                      try:                          c_field = model._meta.get_field(field_name)                          if k.endswith('__isnull') and \ @@ -811,7 +813,6 @@ def get_item(model, func_name, default_name, extra_request_keys=[],          items = model.objects.filter(query).distinct()          # print(items.query) -        q = request_items.get('sidx')          # table cols          if own_table_cols: @@ -841,7 +842,12 @@ def get_item(model, func_name, default_name, extra_request_keys=[],          manual_sort_key = None          order = request_items.get('sord')          sign = order and order == u'desc' and "-" or '' -        if q and q in request_keys: + +        q = request_items.get('sidx') +        if q == '__default__' and model._meta.ordering: +            orders = [sign + k for k in model._meta.ordering] +            items = items.order_by(*orders) +        elif q and q in request_keys:              ks = request_keys[q]              if type(ks) not in (list, tuple):                  ks = [ks] @@ -859,6 +865,8 @@ def get_item(model, func_name, default_name, extra_request_keys=[],                      ke = ke[0]                  if ke.endswith(q):                      manual_sort_key = ke +                    logger.warning("**WARN get_item - {}**: manual sort key '{" +                                   "}'".format(func_name, q))                      break              if not manual_sort_key and model._meta.ordering:                  orders = [sign + k for k in model._meta.ordering] @@ -903,7 +911,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[],                  my_vals = []                  for k in keys:                      vals = [item] -                    # foreign key may be splited by "." or "__" +                    # foreign key may be divided by "." or "__"                      splitted_k = []                      for ky in k.split('.'):                          if '__' in ky: @@ -973,8 +981,9 @@ def get_item(model, func_name, default_name, extra_request_keys=[],                      lnk = link_template % reverse('show-' + default_name,                                                    args=[data[0], ''])                  except NoReverseMatch: -                    print '"show-' + default_name + "\" args (" + \ -                          unicode(data[0]) + ") url not available" +                    print( +                        '"show-' + default_name + "\" args (" +                        + unicode(data[0]) + ") url not available")                      lnk = ''                  res = {'id': data[0], 'link': lnk}                  for idx, value in enumerate(data[1:]): @@ -983,7 +992,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[],                          if type(table_col) not in (list, tuple):                              table_col = [table_col]                          tab_cols = [] -                        # foreign key may be splited by "." or "__" +                        # foreign key may be divided by "." or "__"                          for tc in table_col:                              if '.' in tc:                                  tab_cols.append(tc.split('.')[-1]) @@ -1073,7 +1082,9 @@ def show_item(model, name, extra_dct=None):          dct['CURRENCY'] = get_current_profile().currency          dct['ENCODING'] = settings.ENCODING          dct['current_window_url'] = url_name -        date = 'date' in dct and dct.pop('date') +        date = None +        if 'date' in dct: +            date = dct.pop('date')          dct['window_id'] = "%s-%d-%s" % (              name, item.pk, datetime.datetime.now().strftime('%M%s'))          if hasattr(item, 'history'): @@ -1306,9 +1317,7 @@ 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 = {} -DASHBOARD_FORMS['files'] = DashboardFormFile -DASHBOARD_FORMS['operations'] = DashboardFormOpe +DASHBOARD_FORMS = {'files': DashboardFormFile, 'operations': DashboardFormOpe}  def dashboard_main_detail(request, item_name): @@ -1339,6 +1348,7 @@ def dashboard_main_detail(request, item_name):          else:              form = DASHBOARD_FORMS[item_name]()      lbl, dashboard = None, None +    dashboard_kwargs = {}      if (item_name == 'files' and profile.files) \              or item_name == 'operations':          dashboard_kwargs = {'slice': slicing, 'fltr': fltr, @@ -1375,7 +1385,7 @@ def dashboard_main_detail(request, item_name):  def reset_wizards(request): -    # dynamicaly execute each reset_wizards of each ishtar app +    # dynamically execute each reset_wizards of each ishtar app      for app in settings.INSTALLED_APPS:          if app == 'ishtar_common':              # no need for infinite recursion | 
