diff options
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 |
commit | 4778f7ab57c5bbd1ec1ff6a0e3bd9e1561ddf454 (patch) | |
tree | 7464bd027f0921b8811f7a15337a5bce099b8211 /ishtar_common | |
parent | e44cf85ed6990189d7d73e7a969a5969dd7bfc5e (diff) | |
download | Ishtar-4778f7ab57c5bbd1ec1ff6a0e3bd9e1561ddf454.tar.bz2 Ishtar-4778f7ab57c5bbd1ec1ff6a0e3bd9e1561ddf454.zip |
Explicit CSV headers (refs #3340)
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/models.py | 13 | ||||
-rw-r--r-- | ishtar_common/views.py | 11 |
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)) |