-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add receipt link to a proper financial PDF document. The receipt link comes from NAU Financial Manager system. This service proxies the transactions/orders and converts them to the PDF link from iLink. #1 fccn/nau-technical#25
- Loading branch information
Showing
12 changed files
with
260 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
"""Serializers for data manipulated by ecommerce API endpoints.""" | ||
|
||
import logging | ||
|
||
from nau_extensions.financial_manager import get_receipt_link | ||
from oscar.core.loading import get_model | ||
from rest_framework import serializers | ||
|
||
logger = logging.getLogger(__name__) | ||
|
||
Order = get_model('order', 'Order') | ||
|
||
|
||
class OrderReceiptLinkSerializer(serializers.ModelSerializer): | ||
"""Serializer for parsing order data with only the receipt link.""" | ||
receipt_link = serializers.SerializerMethodField() | ||
|
||
def get_receipt_link(self, obj): | ||
# return "https://ilink.pt/xpto.pdf" | ||
return get_receipt_link(obj) | ||
|
||
class Meta: | ||
model = Order | ||
fields = ( | ||
'receipt_link', | ||
) |
35 changes: 35 additions & 0 deletions
35
nau_extensions/templates/nau_extensions/checkout/receipt_partial.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
{% load i18n %} | ||
|
||
<a id="receiptLink" href="#" style="display: none;"> | ||
{% trans "Download receipt" as tmsg %}{{ tmsg | force_escape }} | ||
</a> | ||
<script> | ||
function httpGetAsync(theUrl, callback) { | ||
var xmlHttp = new XMLHttpRequest(); | ||
xmlHttp.onreadystatechange = function() { | ||
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) | ||
callback(xmlHttp.responseText); | ||
} | ||
xmlHttp.open("GET", theUrl, true); // true for asynchronous | ||
xmlHttp.send(null); | ||
} | ||
|
||
httpGetAsync('/payment/nau_extensions/receipt-link/?order_id={{ order.id }}', function( data ) { | ||
var receiptLink = document.getElementById("receiptLink"); | ||
|
||
// update the link to element | ||
receiptLink.setAttribute('href', data); | ||
|
||
// make receipt link visible | ||
receiptLink.style.display = 'block'; | ||
|
||
// Declare a fragment: | ||
var fragment = document.createDocumentFragment(); | ||
|
||
// Append desired element to the fragment: | ||
fragment.appendChild(receiptLink); | ||
|
||
// Append fragment to desired element: | ||
document.getElementsByClassName('confirm-message')[0].appendChild(fragment); | ||
}); | ||
</script> |
2 changes: 0 additions & 2 deletions
2
nau_extensions/tests/test_command_retry_send_to_financial_manager.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
# import mock | ||
# from django.urls import reverse | ||
# from nau_extensions.serializers import OrderReceiptLinkSerializer | ||
|
||
# from ecommerce.courses.tests.factories import CourseFactory | ||
# from ecommerce.extensions.test.factories import create_basket, create_order | ||
# from ecommerce.tests.factories import UserFactory | ||
# from ecommerce.tests.testcases import TestCase | ||
|
||
|
||
# class NAUExtensionsViewTests(TestCase): | ||
|
||
# @mock.patch.object(OrderReceiptLinkSerializer, "get_receipt_link") | ||
# def test_view_receipt_link(self, mock_get_receipt_link): | ||
# """ | ||
# Test the Receipt Link View | ||
# """ | ||
# # create data for test | ||
# course = CourseFactory(id='a/b/c', name='Demo Course', partner=self.partner) | ||
# product = course.create_or_update_seat('test-certificate-type', False, 20) | ||
# basket = create_basket(site=self.site, owner=UserFactory(), empty=True) | ||
# basket.add_product(product) | ||
# basket.save() | ||
|
||
# # Save an Order for the Basket, to mock has we already received callback. | ||
# order = create_order(basket=basket) | ||
# order.save() | ||
|
||
# # mock the call financial manager that will return the receipt link | ||
# mock_get_receipt_link.return_value = [{ | ||
# "https://example.com/receipt-link/somedocument.pdf" | ||
# }] | ||
|
||
# response = self.client.get( | ||
# # reverse("ecommerce_nau_extensions:receipt_link_view")+ "?id=" + order.id, | ||
# f"/payment/nau_extensions/receipt-link/?id={order.id}", | ||
# ) | ||
|
||
# mock_get_receipt_link.assert_called_once_with(order) | ||
|
||
# self.assertEqual("https://example.com/receipt-link/somedocument.pdf", response.content) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.