summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commitda02ccba709cc0688f5964c8b703d18f9edfd87d (patch)
treeb4b55acfd796a325da3145015e17bd5245a8e5d3
parent50dc8148259f6c36890c29d4b6f487a85ff7efa1 (diff)
downloadIshtar-da02ccba709cc0688f5964c8b703d18f9edfd87d.tar.bz2
Ishtar-da02ccba709cc0688f5964c8b703d18f9edfd87d.zip
Admin: fix import edit
-rw-r--r--CHANGES.md7
-rw-r--r--ishtar_common/lookups.py23
-rw-r--r--ishtar_common/models_imports.py4
-rw-r--r--ishtar_common/tests.py22
-rw-r--r--ishtar_common/version.py4
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():