diff options
| -rw-r--r-- | archaeological_warehouse/models.py | 13 | ||||
| -rw-r--r-- | ishtar_common/model_merging.py | 3 | ||||
| -rw-r--r-- | ishtar_common/models.py | 3 | 
3 files changed, 18 insertions, 1 deletions
| diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index ae1ef5e47..c80b4476b 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -536,6 +536,19 @@ class Container(LightHistorizedItem, OwnPerms):      def _get_base_image_path(self):          return self.responsible._get_base_image_path() + u"/" + self.external_id +    def merge(self, item, keep_old=False): +        locas = [ +            cl.division.division.txt_idx +            for cl in ContainerLocalisation.objects.filter(container=self).all() +        ] +        for loca in ContainerLocalisation.objects.filter(container=item).all(): +            if loca.division.division.txt_idx not in locas: +                loca.container = self +                loca.save() +            else: +                loca.delete() +        super(Container, self).merge(item, keep_old=keep_old) +      @classmethod      def get_query_owns(cls, ishtaruser):          return Q(history_creator=ishtaruser.user_ptr) | \ diff --git a/ishtar_common/model_merging.py b/ishtar_common/model_merging.py index c8e2bc6bf..188ec42dd 100644 --- a/ishtar_common/model_merging.py +++ b/ishtar_common/model_merging.py @@ -20,7 +20,7 @@ def get_models():  @transaction.atomic -def merge_model_objects(primary_object, alias_objects=[], keep_old=False): +def merge_model_objects(primary_object, alias_objects, keep_old=False):      """      Use this function to merge model objects (i.e. Users, Organizations,      etc.) and migrate all of the related fields from the alias objects to the @@ -154,5 +154,6 @@ def merge_model_objects(primary_object, alias_objects=[], keep_old=False):          if not keep_old:              alias_object.delete() +    primary_object.skip_history_when_saving = True      primary_object.save()      return primary_object diff --git a/ishtar_common/models.py b/ishtar_common/models.py index f49bd9560..6a4a0930e 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -1636,6 +1636,9 @@ class BaseHistorizedItem(DocumentItem, FullSearch, Imported, JsonData,      def get_verbose_name(cls):          return cls._meta.verbose_name +    def merge(self, item, keep_old=False): +        merge_model_objects(self, item, keep_old=keep_old) +      def update_external_id(self, save=False):          if not self.EXTERNAL_ID_KEY or (                  self.external_id and | 
