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 | 452f66e422b0c4d2783527da53aca39cc06be419 (patch) | |
| tree | 455e90208f8ebf92b8a40344d2665dc4f58d2873 | |
| parent | 16ceb07f2559db7ebd20dc1ac529d3376a6c4aea (diff) | |
| download | Ishtar-452f66e422b0c4d2783527da53aca39cc06be419.tar.bz2 Ishtar-452f66e422b0c4d2783527da53aca39cc06be419.zip | |
Fix image search
| -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 | 
