summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py33
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')