diff options
Diffstat (limited to 'ishtar_common/views.py')
| -rw-r--r-- | ishtar_common/views.py | 33 | 
1 files changed, 26 insertions, 7 deletions
| diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 86664d4e7..2d0976be1 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -1,6 +1,6 @@  #!/usr/bin/env python  # -*- coding: utf-8 -*- -# Copyright (C) 2010-2015  Étienne Loks  <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2010-2016  Étienne Loks  <etienne.loks_AT_peacefrogsDOTnet>  # This program is free software: you can redistribute it and/or modify  # it under the terms of the GNU Affero General Public License as @@ -24,6 +24,7 @@ import cStringIO as StringIO  import datetime  import ho.pisa as pisa  import json +from markdown import markdown  import optparse  import re  from tempfile import NamedTemporaryFile @@ -61,7 +62,8 @@ from archaeological_files.forms import DashboardForm as DashboardFormFile  from ishtar_common.forms import FinalForm, FinalDeleteForm  from ishtar_common import forms_common as forms  from ishtar_common import wizards -from ishtar_common.models import HistoryError +from ishtar_common.models import HistoryError, PRIVATE_FIELDS, \ +    get_current_profile  import models @@ -74,6 +76,9 @@ def index(request):      Main page      """      dct = {} +    profile = get_current_profile() +    if hasattr(profile, 'homepage') and profile.homepage: +        dct['homepage'] = markdown(profile.homepage)      try:          return render_to_response('index.html', dct,                                    context_instance=RequestContext(request)) @@ -325,7 +330,6 @@ def format_val(val):  HIERARCHIC_LEVELS = 5  HIERARCHIC_FIELDS = ['periods', 'period', 'unit', 'material_types',                       'material_type', 'conservatory_state'] -PRIVATE_FIELDS = ('id', 'history_modifier', 'order')  def get_item(model, func_name, default_name, extra_request_keys=[], @@ -417,7 +421,12 @@ def get_item(model, func_name, default_name, extra_request_keys=[],          if 'submited' not in request_items:              if default_name in request.session and \                 request.session[default_name]: -                dct = {"pk": request.session[default_name]} +                value = request.session[default_name] +                if 'basket-' in value: +                    dct = {"basket__pk": +                           request.session[default_name].split('-')[-1]} +                else: +                    dct = {"pk": request.session[default_name]}              elif not dct:                  for name in relative_session_names.keys():                      if name in request.session and request.session[name]: @@ -533,6 +542,15 @@ def get_item(model, func_name, default_name, extra_request_keys=[],                      table_cols += model.EXTRA_FULL_FIELDS              else:                  table_cols = model.TABLE_COLS + +        # contextual (full, simple, etc.) col +        contxt = full and 'full' or 'simple' +        if hasattr(model, 'CONTEXTUAL_TABLE_COLS') and \ +                contxt in model.CONTEXTUAL_TABLE_COLS: +            for idx, col in enumerate(table_cols): +                if col in model.CONTEXTUAL_TABLE_COLS[contxt]: +                    table_cols[idx] = model.CONTEXTUAL_TABLE_COLS[contxt][col] +          # manage sort tables          manual_sort_key = None          order = request_items.get('sord') @@ -649,8 +667,8 @@ def get_item(model, func_name, default_name, extra_request_keys=[],                      datas = reversed(datas)                  datas = list(datas)[start:end]          link_template = "<a class='display_details' href='#' "\ -                        "onclick='load_window(\"%%s\")'>%s</a>" % \ -                        (unicode(_("Details"))) +            "onclick='load_window(\"%s\")'>"\ +            "<i class=\"fa fa-info-circle\" aria-hidden=\"true\"></i></a>"          if data_type == "json":              rows = []              for data in datas: @@ -702,7 +720,8 @@ def get_item(model, func_name, default_name, extra_request_keys=[],                          unicode(field.verbose_name).encode(ENCODING))              writer.writerow(col_names)              for data in datas: -                writer.writerow([val.encode(ENCODING) for val in data[1:]]) +                writer.writerow([val.encode(ENCODING, errors='replace') +                                 for val in data[1:]])              return response          return HttpResponse('{}', mimetype='text/plain') | 
