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()