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} | 
