diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-05-30 16:53:46 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-06-12 08:49:36 +0200 |
commit | 959d12d757ea9f03e880be165d7cca714b61c27e (patch) | |
tree | 455e90208f8ebf92b8a40344d2665dc4f58d2873 /archaeological_finds | |
parent | 30c086b67ee08bae080f3ee4b19b16aaf9b12bc0 (diff) | |
download | Ishtar-959d12d757ea9f03e880be165d7cca714b61c27e.tar.bz2 Ishtar-959d12d757ea9f03e880be165d7cca714b61c27e.zip |
Fix image search
Diffstat (limited to 'archaeological_finds')
-rw-r--r-- | archaeological_finds/forms.py | 2 | ||||
-rw-r--r-- | archaeological_finds/models_finds.py | 4 | ||||
-rw-r--r-- | archaeological_finds/tests.py | 29 |
3 files changed, 29 insertions, 6 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 8cb2fd0aa..def29a327 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -474,7 +474,7 @@ class FindSelect(TableSelect): base_finds__batch = forms.ChoiceField( label=_(u"Batch/object"), choices=[]) checked = forms.ChoiceField(label=_("Check")) - image__isnull = forms.NullBooleanField(label=_(u"Has an image?")) + images__pk__isnull = forms.NullBooleanField(label=_(u"Has an image?")) def __init__(self, *args, **kwargs): super(FindSelect, self).__init__(*args, **kwargs) diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index c9bbc0713..9b0f085c7 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -646,7 +646,7 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, OwnPerms, ATTRS_EQUIV = {'get_first_base_find': 'base_finds'} # search parameters - REVERSED_BOOL_FIELDS = ['image__isnull'] + REVERSED_BOOL_FIELDS = ['images__pk__isnull'] RELATION_TYPES_PREFIX = { 'ope_relation_types': 'base_finds__context_record__operation__', @@ -686,7 +686,7 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, OwnPerms, 'base_finds__batch': 'base_finds__batch', 'basket': 'basket', 'cached_label': 'cached_label__icontains', - 'image__isnull': 'image__isnull', + 'images__pk__isnull': 'images__pk__isnull', 'container__location': 'container__location__pk', 'container__responsible': 'container__responsible__pk', 'container__index': 'container__index', diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index 097038d8c..1843ff094 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -553,8 +553,7 @@ class FindSearchTest(FindInit, TestCase): self.assertEqual(response.status_code, 200) self.assertEqual(json.loads(response.content)['recordsTotal'], 1) - - def testPeriodHierarchicSearch(self): + def test_period_hierarchic_search(self): find = self.finds[0] c = Client() @@ -594,7 +593,7 @@ class FindSearchTest(FindInit, TestCase): self.assertEqual(response.status_code, 200) self.assertEqual(json.loads(response.content)['recordsTotal'], 1) - def testConservatoryStateHierarchicSearch(self): + def test_conservatory_state_hierarchic_search(self): find = self.finds[0] c = Client() cs1 = models.ConservatoryState.objects.all()[0] @@ -634,6 +633,30 @@ class FindSearchTest(FindInit, TestCase): self.assertEqual(response.status_code, 200) self.assertTrue(json.loads(response.content)['recordsTotal'] == 1) + def test_image_search(self): + c = Client() + c.login(username=self.username, password=self.password) + search = {'images__pk__isnull': 2} # 2 for nullboolfield is None + response = c.get(reverse('get-find'), search) + self.assertEqual(response.status_code, 200) + res = json.loads(response.content) + self.assertEqual(res['recordsTotal'], 0) + + # add an image to the first find + image = IshtarImage.objects.create(name="Image!") + img = settings.ROOT_PATH + \ + '../ishtar_common/static/media/images/ishtar-bg.jpg' + image.image.save('ishtar-bg.jpg', File(open(img))) + models.FindImage.objects.create( + item=self.finds[0], + image=image + ) + self.finds[0].save() + response = c.get(reverse('get-find'), search) + self.assertEqual(response.status_code, 200) + res = json.loads(response.content) + self.assertEqual(res['recordsTotal'], 1) + class FindPermissionTest(FindInit, TestCase): fixtures = FIND_FIXTURES |