diff options
| -rw-r--r-- | archaeological_warehouse/models.py | 5 | ||||
| -rw-r--r-- | archaeological_warehouse/tests.py | 33 | 
2 files changed, 37 insertions, 1 deletions
| diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index ef548425b..7f7fbeb91 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -224,6 +224,11 @@ class Container(LightHistorizedItem):                  self.index = 1              self._cached_label_checked = False              self.save() +        # remove old location in warehouse +        q = ContainerLocalisation.objects.filter(container=self).exclude( +            division__warehouse=self.location) +        for loca in q.all(): +            loca.delete()  post_save.connect(cached_label_changed, sender=Container) diff --git a/archaeological_warehouse/tests.py b/archaeological_warehouse/tests.py index efe38b4a3..f4ce52732 100644 --- a/archaeological_warehouse/tests.py +++ b/archaeological_warehouse/tests.py @@ -77,7 +77,7 @@ class ContainerWizardCreationTest(WizardTest, FindInit, TestCase):                           self.container_number + 1) -class ContainerFormCreationTest(FindInit, TestCase): +class ContainerTest(FindInit, TestCase):      fixtures = [settings.ROOT_PATH +                  '../fixtures/initial_data.json',                  settings.ROOT_PATH + @@ -110,3 +110,34 @@ class ContainerFormCreationTest(FindInit, TestCase):          form.save(self.user)          self.assertEqual(models.Container.objects.count(),                           self.container_number + 1) + +    def testChangeLocation(self): +        main_warehouse = models.Warehouse.objects.create( +            name="Main", +            warehouse_type=models.WarehouseType.objects.all()[0] +        ) +        div = models.WarehouseDivision.objects.create(label='division') +        div_link = models.WarehouseDivisionLink.objects.create( +            warehouse=main_warehouse, division=div) + +        container = models.Container.objects.create( +            reference="Test", responsible=main_warehouse, +            location=main_warehouse, +            container_type=models.ContainerType.objects.all()[0] +        ) +        models.ContainerLocalisation.objects.create( +            container=container, division=div_link, +        ) + +        self.assertTrue(models.ContainerLocalisation.objects.filter( +            division__warehouse=main_warehouse).count()) +        # changing location remove unrelevent localisation +        other_warehouse = models.Warehouse.objects.create( +            name="Other", +            warehouse_type=models.WarehouseType.objects.all()[0] +        ) +        container.location = other_warehouse +        container.save() +        self.assertFalse(models.ContainerLocalisation.objects.filter( +            division__warehouse=main_warehouse).count()) + | 
