summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_context_records/models.py9
-rw-r--r--archaeological_finds/tests.py38
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