diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-09-22 17:41:48 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-09-22 17:44:26 +0200 |
commit | da02ccba709cc0688f5964c8b703d18f9edfd87d (patch) | |
tree | b4b55acfd796a325da3145015e17bd5245a8e5d3 /ishtar_common | |
parent | 50dc8148259f6c36890c29d4b6f487a85ff7efa1 (diff) | |
download | Ishtar-da02ccba709cc0688f5964c8b703d18f9edfd87d.tar.bz2 Ishtar-da02ccba709cc0688f5964c8b703d18f9edfd87d.zip |
Admin: fix import edit
Diffstat (limited to 'ishtar_common')
-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 |
4 files changed, 37 insertions, 16 deletions
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(): |