summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-11-14 19:43:27 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-11-14 19:43:27 +0100
commit4778f7ab57c5bbd1ec1ff6a0e3bd9e1561ddf454 (patch)
tree7464bd027f0921b8811f7a15337a5bce099b8211 /ishtar_common
parente44cf85ed6990189d7d73e7a969a5969dd7bfc5e (diff)
downloadIshtar-4778f7ab57c5bbd1ec1ff6a0e3bd9e1561ddf454.tar.bz2
Ishtar-4778f7ab57c5bbd1ec1ff6a0e3bd9e1561ddf454.zip
Explicit CSV headers (refs #3340)
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/models.py13
-rw-r--r--ishtar_common/views.py11
2 files changed, 20 insertions, 4 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 72a3432f8..5b822c7dd 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -25,6 +25,7 @@ import copy
import datetime
from PIL import Image
from importlib import import_module
+import logging
import os
import re
import shutil
@@ -65,6 +66,9 @@ from ishtar_common.data_importer import Importer, ImportFormater, \
TypeFormater, YearFormater, StrToBoolean, FileFormater
+logger = logging.getLogger(__name__)
+
+
def post_save_user(sender, **kwargs):
user = kwargs['instance']
try:
@@ -95,6 +99,7 @@ class Imported(models.Model):
class ValueGetter(object):
_prefix = ""
GET_VALUES_EXTRA = []
+ EXTRA_FULL_FIELDS_LABELS = {}
def get_values(self, prefix=''):
if not prefix:
@@ -1607,7 +1612,7 @@ def get_importer_models():
('archaeological_context_records.models.RecordRelations',
_(u"Context record relations"))] + MODELS
MODELS = [('archaeological_finds.models.BaseFind',
- _(u"Finds")), ] + MODELS
+ _(u"Base finds")), ] + MODELS
return MODELS
@@ -1995,7 +2000,9 @@ TARGET_MODELS = [
('archaeological_operations.models.OperationType', _(u"Operation type")),
('archaeological_operations.models.Period', _(u"Period")),
('archaeological_operations.models.ReportState', _(u"Report state")),
+ ('archaeological_operations.models.RemainType', _(u"Remain type")),
('archaeological_context_records.models.Unit', _(u"Unit")),
+ ('archaeological_context_records.models.ActivityType', _(u"Activity type")),
('archaeological_finds.models.MaterialType', _(u"Material")),
('archaeological_finds.models.ConservatoryState',
_(u"Conservatory state")),
@@ -2077,7 +2084,9 @@ class FormaterType(models.Model):
kwargs['many_split'] = self.many_split
if self.formater_type == 'TypeFormater':
if self.options not in TARGET_MODELS_KEYS:
- print('%s not in TARGET_MODELS_KEYS' % self.options)
+ logger.warning(
+ "**WARN FormaterType.get_formater_type**: {} "
+ "is not in TARGET_MODELS_KEYS".format(self.options))
return
model = None
if self.options in dir():
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index cd34a2019..8634125cd 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -981,8 +981,8 @@ 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 ("
+ logger.warning(
+ '**WARN "show-' + default_name + '" args ('
+ unicode(data[0]) + ") url not available")
lnk = ''
res = {'id': data[0], 'link': lnk}
@@ -1027,6 +1027,8 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
writer = csv.writer(response, **CSV_OPTIONS)
col_names = []
for field_name in table_cols:
+ if type(field_name) in (list, tuple):
+ field_name = " ; ".join(field_name)
if hasattr(model, 'EXTRA_FULL_FIELDS_LABELS') and\
field_name in model.EXTRA_FULL_FIELDS_LABELS:
field = model.EXTRA_FULL_FIELDS_LABELS[field_name]
@@ -1037,6 +1039,11 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
field = model._meta.get_field(field_name)
except:
col_names.append(u"".encode(ENCODING))
+ logger.warning(
+ "**WARN get_item - csv export**: no col name for "
+ "{}\nadd explicit label to "
+ "EXTRA_FULL_FIELDS_LABELS attribute of "
+ "{}".format(field_name, model))
continue
col_names.append(
unicode(field.verbose_name).encode(ENCODING))