diff options
| -rw-r--r-- | CHANGES.md | 7 | ||||
| -rw-r--r-- | ishtar_common/lookups.py | 23 | ||||
| -rw-r--r-- | ishtar_common/models_imports.py | 4 | ||||
| -rw-r--r-- | ishtar_common/tests.py | 22 | ||||
| -rw-r--r-- | ishtar_common/version.py | 4 | 
5 files changed, 43 insertions, 17 deletions
diff --git a/CHANGES.md b/CHANGES.md index 577d7fed3..351a8001f 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,11 +1,16 @@  Ishtar changelog  ================ +v3.0.13 - 2020-09-22 +-------------------- + +### Bug fixes ### +- ajax_selects: fix Admin > Import edit  v3.0.12 - 2020-09-17  --------------------  ### Bug fixes ### -- Fix missing "bootstrap.js" file missing in debian install +- ajax_selects: fix missing "bootstrap.js" file missing in debian install  v3.0.11 - 2020-08-31  -------------------- diff --git a/ishtar_common/lookups.py b/ishtar_common/lookups.py index e2e9251e7..3481ba1a9 100644 --- a/ishtar_common/lookups.py +++ b/ishtar_common/lookups.py @@ -15,10 +15,27 @@ class LookupChannel(BaseLookupChannel):                  ids.append(item.pk)              else:                  ids.append(item) -        return super(LookupChannel, self).get_objects(ids) + +        # TODO: strange bug on Import edit +        # copied from lookup_channel.py +        if getattr(self.model._meta.pk, "remote_field", False): +            # Use the type of the field being referenced (2.0+) +            # modification is here +            # pk_type = self.model._meta.pk.remote_field.field.to_python +            pk_type = int +        elif getattr(self.model._meta.pk, "rel", False): +            # Use the type of the field being referenced +            pk_type = self.model._meta.pk.rel.field.to_python +        else: +            pk_type = self.model._meta.pk.to_python + +        # Return objects in the same order as passed in here +        ids = [pk_type(pk) for pk in ids] +        things = self.model.objects.in_bulk(ids) +        return [things[aid] for aid in ids if aid in things]      def format_item_display(self, item): -        return u"<span class='ajax-label'>%s</span>" % str(item) +        return "<span class='ajax-label'>%s</span>" % str(item)  class TypeLookupChannel(LookupChannel): @@ -118,7 +135,7 @@ class UserLookup(LookupChannel):          return self.model.objects.filter(query).order_by('person__name')[:20]      def format_item_display(self, item): -        return u"<span class='ajax-label'>%s</span>" % str(item.person) +        return "<span class='ajax-label'>%s</span>" % str(item.person)  @register('area') diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py index 4fa1abb4a..5712a1936 100644 --- a/ishtar_common/models_imports.py +++ b/ishtar_common/models_imports.py @@ -899,7 +899,7 @@ def delayed_import(import_pk):      try:          imp = Import.objects.get(pk=import_pk)      except Import.DoesNotExist: -        pass +        return      imp.importation() @@ -908,7 +908,7 @@ def delayed_check(import_pk):      try:          imp = Import.objects.get(pk=import_pk)      except Import.DoesNotExist: -        pass +        return      imp.check_modified() diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index a4014db18..1d211c91b 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -2197,11 +2197,8 @@ class ShortMenuTest(TestCase):  class ImportTest(TestCase): -    def test_delete_related(self): -        town = models.Town.objects.create(name='my-test') -        self.assertEqual(models.Town.objects.filter(name='my-test').count(), 1) -        # create an import, fields are not relevant... +    def create_import(self):          create_user()          imp_model = models.ImporterModel.objects.create(              klass='ishtar_common.models.Person', name='Person') @@ -2220,12 +2217,19 @@ class ImportTest(TestCase):                  user=models.IshtarUser.objects.all()[0],                  importer_type=importer_type,                  imported_file=mcc_operation_file) +        return imprt + +    def test_delete_related(self): +        town = models.Town.objects.create(name='my-test') +        self.assertEqual(models.Town.objects.filter(name='my-test').count(), 1) + +        imprt = self.create_import() -            town.imports.add(imprt) -            imprt.delete() -            # town should be deleted -            self.assertEqual(models.Town.objects.filter(name='my-test').count(), -                             0) +        town.imports.add(imprt) +        imprt.delete() +        # town should be deleted +        self.assertEqual(models.Town.objects.filter(name='my-test').count(), +                         0)      def test_keys(self):          content_type = ContentType.objects.get_for_model( diff --git a/ishtar_common/version.py b/ishtar_common/version.py index b183185e9..28e3bbeeb 100644 --- a/ishtar_common/version.py +++ b/ishtar_common/version.py @@ -1,5 +1,5 @@ -# 3.0.12 -VERSION = (3, 0, 12) +# 3.0.13 +VERSION = (3, 0, 13)  def get_version():  | 
