Commit 3908fb0a by Renzo Lucioni

Merge pull request #403 from edx/renzo/pretty-print-ppr

Pretty print PaymentProcessorResponses in the Django admin
parents e7efcbb9 08e29b8f
from pprint import pformat
from django.contrib import admin from django.contrib import admin
from django.utils.html import format_html
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from oscar.core.loading import get_model from oscar.core.loading import get_model
...@@ -9,13 +12,22 @@ class PaymentProcessorResponseAdmin(admin.ModelAdmin): ...@@ -9,13 +12,22 @@ class PaymentProcessorResponseAdmin(admin.ModelAdmin):
list_filter = ('processor_name',) list_filter = ('processor_name',)
search_fields = ('id', 'processor_name', 'transaction_id',) search_fields = ('id', 'processor_name', 'transaction_id',)
list_display = ('id', 'processor_name', 'transaction_id', 'basket_display_value', 'created') list_display = ('id', 'processor_name', 'transaction_id', 'basket_display_value', 'created')
readonly_fields = ('processor_name', 'transaction_id', 'basket_display_value', 'response') fields = ('processor_name', 'transaction_id', 'basket_display_value', 'formatted_response')
readonly_fields = ('processor_name', 'transaction_id', 'basket_display_value', 'formatted_response')
def basket_display_value(self, obj): def basket_display_value(self, obj):
return '{} - {}'.format(obj.basket.id, obj.basket) return '{} - {}'.format(obj.basket.id, obj.basket)
basket_display_value.short_description = _('Basket') basket_display_value.short_description = _('Basket')
def formatted_response(self, obj):
pretty_response = pformat(obj.response)
# Use format_html() to escape user-provided inputs, avoiding an XSS vulnerability.
return format_html('<br><br><pre>{}</pre>', pretty_response)
formatted_response.allow_tags = True
admin.site.register(PaymentProcessorResponse, PaymentProcessorResponseAdmin) admin.site.register(PaymentProcessorResponse, PaymentProcessorResponseAdmin)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment