diff options
-rw-r--r-- | archaeological_context_records/models.py | 9 | ||||
-rw-r--r-- | archaeological_finds/tests.py | 38 |
2 files changed, 43 insertions, 4 deletions
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index cce36236c..cc4e22cd5 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -93,11 +93,14 @@ class Dating(models.Model): for attr in self.HISTORY_ATTR: val = getattr(self, attr) if hasattr(val, 'history_compress'): - values.append(val.history_compress()) + val = val.history_compress() elif hasattr(val, 'isoformat'): - values.append(val.isoformat()) + val = val.isoformat() + elif val is None: + val = '' else: - values.append(unicode(val)) + val = unicode(val) + values.append(val) return self.SEP.join(values) @classmethod diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index 107240389..ba53719bd 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -30,7 +30,8 @@ from ishtar_common.models import ImporterType, IshtarUser, ImporterColumn,\ from ishtar_common.models import Person, get_current_profile, UserProfile, \ Town, Area, Document -from archaeological_context_records.models import Period, Dating, ContextRecord +from archaeological_context_records.models import Period, Dating, \ + ContextRecord, DatingType, DatingQuality from archaeological_finds import models, views from archaeological_warehouse.models import Warehouse, WarehouseType @@ -835,11 +836,46 @@ class FindHistoryTest(FindInit, TestCase): glass = models.MaterialType.objects.get(txt_idx='glass').pk find.material_types.add(ceram) find.material_types.add(glass) + + d1_attrs = { + "period": Period.objects.get(txt_idx='neolithic'), + "start_date": 5000, + 'end_date': 5001, + 'dating_type': DatingType.objects.get( + txt_idx='from_absolute_dating'), + "quality": DatingQuality.objects.get(txt_idx='sure'), + "precise_dating": u"Blah !!!" + } + d1_txt = Dating.SEP.join([ + (d1_attrs[k].txt_idx + if hasattr(d1_attrs[k], 'txt_idx') else unicode(d1_attrs[k])) + if k in d1_attrs else '' + for k in Dating.HISTORY_ATTR + ]) + d1 = Dating.objects.create(**d1_attrs) + d2_attrs = { + "period": Period.objects.get(txt_idx='paleolithic'), + } + d2_txt = Dating.SEP.join([ + (d2_attrs[k].txt_idx + if hasattr(d2_attrs[k], 'txt_idx') else unicode(d2_attrs[k])) + if k in d2_attrs else '' + for k in Dating.HISTORY_ATTR + ]) + d2 = Dating.objects.create(**d2_attrs) + find.datings.add(d1) + find.datings.add(d2) + find = models.Find.objects.get(pk=find.pk) self.assertIn( find.historical_material_types, [HISTORY_M2M_SPLIT.join(['ceramic', 'glass']), # order do not HISTORY_M2M_SPLIT.join(['glass', 'ceramic'])]) # matter + self.assertIn( + find.historical_datings, + [HISTORY_M2M_SPLIT.join([d1_txt, d2_txt]), # order do not + HISTORY_M2M_SPLIT.join([d2_txt, d1_txt])]) # matter + historical_material_types = find.historical_material_types find.label = "hop hop hop1" find.history_modifier = user |