invoicing: filter injected lines on journal (#73742)
This commit is contained in:
parent
691713b69e
commit
36d54f8b2c
|
@ -92,6 +92,7 @@ class AbstractLineFilterSet(django_filters.FilterSet):
|
|||
|
||||
status_choices = [
|
||||
('success', _('Success')),
|
||||
('success_injected', '%s (%s)' % (_('Success'), _('Injected'))),
|
||||
('warning', _('Warning')),
|
||||
('error', _('Error')),
|
||||
]
|
||||
|
@ -106,6 +107,8 @@ class AbstractLineFilterSet(django_filters.FilterSet):
|
|||
def filter_status(self, queryset, name, value):
|
||||
if not value:
|
||||
return queryset
|
||||
if value == 'success_injected':
|
||||
return queryset.filter(status='success', from_injected_line__isnull=False)
|
||||
if value == 'error_todo':
|
||||
return queryset.filter(status='error', error_status='')
|
||||
if value == 'error_ignored':
|
||||
|
|
|
@ -784,6 +784,7 @@ def test_journal_pool_lines(app, admin_user, draft):
|
|||
invoice_model = DraftInvoice if draft else Invoice
|
||||
line_model = DraftInvoiceLine if draft else InvoiceLine
|
||||
|
||||
regie = Regie.objects.create(label='Foo')
|
||||
campaign = Campaign.objects.create(
|
||||
date_start=datetime.date(2022, 9, 1),
|
||||
date_end=datetime.date(2022, 10, 1),
|
||||
|
@ -871,6 +872,15 @@ def test_journal_pool_lines(app, admin_user, draft):
|
|||
lines[-2].error_status = 'fixed'
|
||||
lines[-2].save()
|
||||
|
||||
injected_line = InjectedLine.objects.create(
|
||||
event_date=datetime.date(2022, 9, 1),
|
||||
quantity=1,
|
||||
unit_amount=1,
|
||||
total_amount=1,
|
||||
user_external_id='user:2',
|
||||
payer_external_id='payer:2',
|
||||
regie=regie,
|
||||
)
|
||||
lines.append(
|
||||
line_model.objects.create(
|
||||
event_date=datetime.date(2022, 9, 1),
|
||||
|
@ -884,6 +894,7 @@ def test_journal_pool_lines(app, admin_user, draft):
|
|||
event={'event': 'foobar2'},
|
||||
user_external_id='user:2',
|
||||
payer_external_id='payer:2',
|
||||
from_injected_line=injected_line,
|
||||
),
|
||||
)
|
||||
|
||||
|
@ -1005,7 +1016,10 @@ def test_journal_pool_lines(app, admin_user, draft):
|
|||
"{'error': 'PricingBookingCheckTypeError', 'error_details': {'check_type': 'foo-reason', "
|
||||
"'check_type_group': 'foo-bar', 'reason': 'wrong-kind'}} {'event': 'foobar'}"
|
||||
)
|
||||
assert format_status(resp.pyquery('tr[data-line-id="%s"] td.status' % lines[13].pk).text()) == 'Success'
|
||||
assert (
|
||||
format_status(resp.pyquery('tr[data-line-id="%s"] td.status' % lines[13].pk).text())
|
||||
== 'Success (Injected)'
|
||||
)
|
||||
assert (
|
||||
resp.pyquery('tr[data-details-for-line-id="%s"] td pre' % lines[13].pk).text().strip()
|
||||
== "{'foo': 'bar'} {'event': 'foobar2'}"
|
||||
|
@ -1064,6 +1078,11 @@ def test_journal_pool_lines(app, admin_user, draft):
|
|||
params={'status': 'success'},
|
||||
)
|
||||
assert len(resp.pyquery('tr td.status')) == 2
|
||||
resp = app.get(
|
||||
'/manage/invoicing/campaign/%s/pool/%s/journal/' % (campaign.pk, pool.pk),
|
||||
params={'status': 'success_injected'},
|
||||
)
|
||||
assert len(resp.pyquery('tr td.status')) == 1
|
||||
resp = app.get(
|
||||
'/manage/invoicing/campaign/%s/pool/%s/journal/' % (campaign.pk, pool.pk),
|
||||
params={'status': 'warning'},
|
||||
|
|
Loading…
Reference in New Issue