From e908e064256296c8fcc13665832590e5ff4e3d99 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Fri, 3 Feb 2017 09:56:25 +0100 Subject: Fix find-basket for own request --- ishtar_common/tests.py | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) (limited to 'ishtar_common/tests.py') diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index 9e5fc3466..c128dd93a 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -626,15 +626,18 @@ class ShortMenuTest(TestCase): self.assertEqual(response.status_code, 200) self.assertFalse(str(tf.cached_label) in response.content) - def testTreatment(self): - c = Client() - c.login(username=self.username, password=self.password) + def _create_treatment(self): from archaeological_finds.models import Treatment - treat = Treatment.objects.create( + return Treatment.objects.create( label="My treatment", year=2052 ) + def testTreatment(self): + c = Client() + c.login(username=self.username, password=self.password) + treat = self._create_treatment() + # not available at first response = c.get(reverse('shortcut-menu')) self.assertEqual(response.status_code, 200) @@ -684,6 +687,22 @@ class ShortMenuTest(TestCase): self.assertFalse(c.session['find']) self.assertFalse(c.session['contextrecord']) + self._create_treatment() + + def test_basket_hierarchy_with_treatments(self): + c = Client() + c.login(username=self.username, password=self.password) + from archaeological_finds.models import FindBasket + basket = FindBasket.objects.create( + label="My basket", + user=self.user.ishtaruser + ) + session = c.session + session['find'] = 'basket-{}'.format(basket.pk) + session.save() + response = c.get(reverse('shortcut-menu')) + self.assertEqual(response.status_code, 200) + class ImportTest(TestCase): def testDeleteRelated(self): -- cgit v1.2.3 From 4d06c7e1dc542f99de5a7d8173ae9c2ab13d195f Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Fri, 3 Feb 2017 10:14:18 +0100 Subject: get_item: deactivate hierarchic dependency when the parent item is a basket --- ishtar_common/tests.py | 4 +++- ishtar_common/views.py | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'ishtar_common/tests.py') diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index c128dd93a..90fc3f0f5 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -689,7 +689,7 @@ class ShortMenuTest(TestCase): self._create_treatment() - def test_basket_hierarchy_with_treatments(self): + def test_basket_is_current_item(self): c = Client() c.login(username=self.username, password=self.password) from archaeological_finds.models import FindBasket @@ -702,6 +702,8 @@ class ShortMenuTest(TestCase): session.save() response = c.get(reverse('shortcut-menu')) self.assertEqual(response.status_code, 200) + response = c.get(reverse('get-findsource')) + self.assertEqual(response.status_code, 200) class ImportTest(TestCase): diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 33f4fac7f..467401b8f 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -691,7 +691,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[], reqs = Q(**{req_keys[0]: val}) for req_key in req_keys[1:]: q = Q(**{req_key: val}) - reqs = reqs | q + reqs |= q and_reqs.append(reqs) if 'submited' not in request_items and full != 'shortcut': # default search @@ -707,7 +707,8 @@ def get_item(model, func_name, default_name, extra_request_keys=[], elif dct == (base_request or {}): # a parent item may be selected in the default menu for name, key in my_relative_session_names: - if name in request.session and request.session[name]: + if name in request.session and request.session[name] \ + and 'basket-' not in request.session[name]: dct.update({key: request.session[name]}) break if (not dct or data_type == 'csv') \ -- cgit v1.2.3