diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-12-04 01:06:31 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-12-04 01:06:31 +0100 |
commit | f662227d67566d134071d651376484fdd90eae56 (patch) | |
tree | 4078f8bd4cfda4b6cdfd017ba1e5a5bfc195c78a /archaeological_finds/models.py | |
parent | c02bcd0e6c47c2cb3ce8b9b8927e408020e3a122 (diff) | |
download | Ishtar-f662227d67566d134071d651376484fdd90eae56.tar.bz2 Ishtar-f662227d67566d134071d651376484fdd90eae56.zip |
Treatment: manage treatment with baskets
Diffstat (limited to 'archaeological_finds/models.py')
-rw-r--r-- | archaeological_finds/models.py | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/archaeological_finds/models.py b/archaeological_finds/models.py index 01c904cc8..3e0d09ef8 100644 --- a/archaeological_finds/models.py +++ b/archaeological_finds/models.py @@ -879,27 +879,25 @@ class Treatment(BaseHistorizedItem, ImageModel, OwnPerms): user = kwargs.pop('user') if "extra_args_for_new" in kwargs: extra_args_for_new = kwargs.pop('extra_args_for_new') - is_new = self.pk is None self.pre_save() super(Treatment, self).save(*args, **kwargs) updated = [] - if is_new: - if hasattr(items, "items"): - items = items.items.all() - for item in items: - new = item.duplicate(user) - item.downstream_treatment = self - item.save() - new.upstream_treatment = self - for k in extra_args_for_new: - setattr(new, k, extra_args_for_new[k]) - new.save() - updated.append(new.pk) - # update baskets - for basket in \ - FindBasket.objects.filter(items__pk=item.pk).all(): - basket.items.remove(item) - basket.items.add(new) + if hasattr(items, "items"): + items = items.items.all() + for item in items: + new = item.duplicate(user) + item.downstream_treatment = self + item.save() + new.upstream_treatment = self + for k in extra_args_for_new: + setattr(new, k, extra_args_for_new[k]) + new.save() + updated.append(new.pk) + # update baskets + for basket in \ + FindBasket.objects.filter(items__pk=item.pk).all(): + basket.items.remove(item) + basket.items.add(new) # manage containers for find in Find.objects.filter(upstream_treatment=self).all(): if find.container != self.container: |