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') |