lingo: add search field (#21626)

This commit is contained in:
Lauréline Guérin 2019-11-29 16:03:07 +01:00
parent 964d0a87aa
commit 2920cf5d79
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
3 changed files with 49 additions and 0 deletions

View File

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

View File

@ -12,6 +12,10 @@
{% block content %}
<form>
<p><input name="q" type="search" value="{{ query }}"> <button>{% trans 'Search' %}</button></p>
</form>
{% if object_list %}
<table class="main">
<thead>

View File

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