diff options
Diffstat (limited to 'archaeological_context_records/models.py')
-rw-r--r-- | archaeological_context_records/models.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index 89f3edee4..d7d7a618d 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -84,6 +84,23 @@ class Dating(models.Model): return unicode(self.period) return u"%s (%s-%s)" % (self.period, start_date, end_date) + @classmethod + def is_identical(cls, dating_1, dating_2): + """ + Compare two dating attribute by attribute and return True if all + attribute is identical + """ + for attr in ["period", "start_date", "end_date", "dating_type", + "quality", "precise_dating"]: + value1 = getattr(dating_1, attr) + value2 = getattr(dating_2, attr) + if attr == "precise_dating": + value1 = value1.strip() + value2 = value2.strip() + if value1 != value2: + return False + return True + def context_records_lbl(self): return u" - ".join( [cr.cached_label for cr in self.context_records.all()] @@ -521,6 +538,9 @@ class ContextRecord(BulkUpdatedItem, BaseHistorizedItem, def get_query_owns(cls, ishtaruser): q = cls._construct_query_own( 'operation__', Operation._get_query_owns_dicts(ishtaruser) + ) | cls._construct_query_own( + 'base_finds__find__basket__', + [{"shared_with": ishtaruser, "shared_write_with": ishtaruser}] ) | cls._construct_query_own('', [ {'history_creator': ishtaruser.user_ptr}, {'operation__end_date__isnull': True} |