diff options
| -rw-r--r-- | archaeological_finds/models_finds.py | 4 | ||||
| -rw-r--r-- | archaeological_finds/tests.py | 8 | ||||
| -rw-r--r-- | ishtar_common/utils.py | 13 | 
3 files changed, 21 insertions, 4 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index e53706e9a..706a2bbbf 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -2439,6 +2439,10 @@ class Find(              new.upstream_treatment, new.downstream_treatment = None, None          new.uuid = uuid.uuid4()          new.save() +        if hasattr(user, "user_ptr"): +            new.history_creator = user.user_ptr +            new.history_modifier = user.user_ptr +            new.save()          # m2m fields          m2m = [ diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index cb5ca5644..d0adc766a 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -1515,12 +1515,15 @@ class FindQATest(FindInit, TestCase):      def setUp(self):          self.create_finds(data_base={"label": "Find 1"}, force=True)          self.create_finds(data_base={"label": "Find 2"}, force=True) -        self.username, self.password, self.user = create_superuser()          self.alt_username, self.alt_password, self.alt_user = create_user()          self.alt_user.user_permissions.add(              Permission.objects.get(codename="change_find")          ) +    def get_default_user(self): +        self.username, self.password, self.user = create_superuser() +        return self.user +      def test_duplicate(self):          t1, __ = models.Treatment.objects.get_or_create(              label="Treatment 1", treatment_state=models.TreatmentState.objects.all()[0] @@ -1560,6 +1563,9 @@ class FindQATest(FindInit, TestCase):          self.assertEqual(models.Find.objects.count(), nb_find + 1)          self.assertEqual(models.BaseFind.objects.count(), nb_bf + 1)          new = models.Find.objects.order_by("-pk").all()[0] +        self.assertEqual(find.history_creator, self.user) +        self.assertEqual(new.history_creator, self.alt_user) +        self.assertEqual(new.base_finds.all()[0].history_creator, self.alt_user)          self.assertEqual(new.description, default_desc)          new_bf = models.BaseFind.objects.order_by("-pk").all()[0]          base_bf = find.get_first_base_find() diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py index fa24b3dcb..ed183e4d1 100644 --- a/ishtar_common/utils.py +++ b/ishtar_common/utils.py @@ -811,9 +811,10 @@ def _post_save_geo(sender, **kwargs):              new_point = GEOSGeometry(                  "POINT({} {})".format(instance.x, instance.y), srid=csrs.srid              ) -            proj_point = instance.point_2d.transform(csrs.srid, clone=True) -            if new_point.distance(proj_point) < 0.01: -                instance.x, instance.y = None, None +            if instance.point_2d: +                proj_point = instance.point_2d.transform(csrs.srid, clone=True) +                if new_point.distance(proj_point) < 0.01: +                    instance.x, instance.y = None, None          instance.point, instance.point_2d = None, None          instance.point_source = None @@ -2042,6 +2043,12 @@ def duplicate_item(item, user=None, data=None):          for k in data:              setattr(new, k, data[k])      new.save() +    if hasattr(user, "user_ptr"): +        if hasattr(new, "history_creator"): +            new.history_creator = user.user_ptr +        if hasattr(new, "history_modifier"): +            new.history_modifier = user.user_ptr +        new.save()      # m2m fields      m2m = [  | 
