Merge branch 'bugfix/8654/500-error-on-invoices' into 'master'

Bugfix/8654/500 error on invoices

See merge request ungleich-public/dynamicweb!742
This commit is contained in:
pcoder116 2020-12-01 12:48:05 +01:00
commit 555e13e631
2 changed files with 25 additions and 20 deletions

View file

@ -72,25 +72,29 @@ def get_line_item_from_hosting_order_charge(hosting_order_id):
:param hosting_order_id: the HostingOrder id :param hosting_order_id: the HostingOrder id
:return: :return:
""" """
hosting_order = HostingOrder.objects.get(id = hosting_order_id) try:
if hosting_order.stripe_charge_id: hosting_order = HostingOrder.objects.get(id = hosting_order_id)
return mark_safe(""" if hosting_order.stripe_charge_id:
<td class="xs-td-inline">{product_name}</td> return mark_safe("""
<td class="xs-td-inline">{created_at}</td> <td class="xs-td-inline">{product_name}</td>
<td class="xs-td-inline">{total}</td> <td class="xs-td-inline">{created_at}</td>
<td class="text-right last-td"> <td class="xs-td-inline">{total}</td>
<a class="btn btn-order-detail" href="{receipt_url}" target="_blank">{see_invoice_text}</a> <td class="text-right last-td">
</td> <a class="btn btn-order-detail" href="{receipt_url}" target="_blank">{see_invoice_text}</a>
""".format( </td>
product_name=hosting_order.generic_product.product_name.capitalize(), """.format(
created_at=hosting_order.created_at.strftime('%Y-%m-%d'), product_name=hosting_order.generic_product.product_name.capitalize(),
total='%.2f' % (hosting_order.price), created_at=hosting_order.created_at.strftime('%Y-%m-%d'),
receipt_url=reverse('hosting:orders', total='%.2f' % (hosting_order.price),
kwargs={'pk': hosting_order.id}), receipt_url=reverse('hosting:orders',
kwargs={'pk': hosting_order.id}),
see_invoice_text=_("See Invoice") see_invoice_text=_("See Invoice")
)) ))
else: else:
return ""
except Exception as ex:
logger.error("Error %s" % str(ex))
return "" return ""
@ -110,7 +114,7 @@ def get_line_item_from_stripe_invoice(invoice):
plan_name = "" plan_name = ""
for line_data in invoice["lines"]["data"]: for line_data in invoice["lines"]["data"]:
if is_first: if is_first:
plan_name = line_data.plan.name plan_name = line_data.plan.name if line_data.plan is not None else ""
start_date = line_data.period.start start_date = line_data.period.start
end_date = line_data.period.end end_date = line_data.period.end
is_first = False is_first = False

View file

@ -1,6 +1,7 @@
import logging import logging
import uuid import uuid
from datetime import datetime from datetime import datetime
from urllib.parse import quote
from time import sleep from time import sleep
import stripe import stripe
@ -1292,7 +1293,7 @@ class InvoiceListView(LoginRequiredMixin, TemplateView):
if ('user_email' in self.request.GET if ('user_email' in self.request.GET
and self.request.user.email == settings.ADMIN_EMAIL): and self.request.user.email == settings.ADMIN_EMAIL):
user_email = self.request.GET['user_email'] user_email = self.request.GET['user_email']
context['user_email'] = user_email context['user_email'] = '%s' % quote(user_email)
logger.debug( logger.debug(
"user_email = {}".format(user_email) "user_email = {}".format(user_email)
) )