diff --git a/combo/apps/lingo/manager_views.py b/combo/apps/lingo/manager_views.py index 1c264701..2897b2bc 100644 --- a/combo/apps/lingo/manager_views.py +++ b/combo/apps/lingo/manager_views.py @@ -109,6 +109,11 @@ class BasketItemErrorListView(ListView): template_name = 'lingo/basketitem_error_list.html' paginate_by = 10 + def get_context_data(self, **kwargs): + context = super(BasketItemErrorListView, self).get_context_data(**kwargs) + context['query'] = self.request.GET.get('q') or '' + return context + def get_queryset(self): raw = ( 'SELECT %s FROM lingo_transaction ' @@ -122,6 +127,11 @@ class BasketItemErrorListView(ListView): .annotate(transaction_status=RawSQL(raw % 'status', [])) .filter(regie__webservice_url='') .order_by()) + + terms = self.request.GET.get('q') + if terms: + queryset = queryset.filter(subject__icontains=terms) + queryset1 = ( queryset .filter( diff --git a/combo/apps/lingo/templates/lingo/basketitem_error_list.html b/combo/apps/lingo/templates/lingo/basketitem_error_list.html index a689e379..b4102975 100644 --- a/combo/apps/lingo/templates/lingo/basketitem_error_list.html +++ b/combo/apps/lingo/templates/lingo/basketitem_error_list.html @@ -12,6 +12,10 @@ {% block content %} +
+

+
+ {% if object_list %} diff --git a/tests/test_lingo_manager.py b/tests/test_lingo_manager.py index f1f4c42d..05ab92c5 100644 --- a/tests/test_lingo_manager.py +++ b/tests/test_lingo_manager.py @@ -393,6 +393,41 @@ def test_basketitem_error_list(app, admin_user, payment_backend): assert '/manage/lingo/?q=%s' % transaction22.bank_transaction_id not in resp.text +def test_basketitem_error_list_search(app, admin_user, payment_backend): + regie = Regie.objects.create( + label='test-regie', slug='test-regie', payment_backend=payment_backend) + user = User.objects.create_user('dimebag', 'dime@bag.pan', 'pwd') + + item = BasketItem.objects.create( + user=user, + regie=regie, + subject='item 1', + source_url='http://example.net/1', + amount=1) + transaction = Transaction.objects.create( + status=eopayment.ERROR, + order_id='order id 1', + bank_transaction_id='bank_id_1', + amount=1) + transaction.items.add(item) + + app = login(app) + resp = app.get('/manage/lingo/payments/error/', status=200) + assert list(resp.context['object_list']) == [item] + + resp.form['q'] = 'item 42' + resp = resp.form.submit() + assert list(resp.context['object_list']) == [] + + resp.form['q'] = 'item 1' + resp = resp.form.submit() + assert list(resp.context['object_list']) == [item] + + resp.form['q'] = 'item' + resp = resp.form.submit() + assert list(resp.context['object_list']) == [item] + + def test_configure_tipi_cell(app, admin_user): page = Page(title='tipi', slug='tipi', template_name='standard') page.save()