Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
0ccb0174
Commit
0ccb0174
authored
Nov 24, 2015
by
chrisndodge
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #10713 from edx/cdodge/fix-zero-seat-invoices
Cdodge/fix zero seat invoices
parents
4f4a0895
e534e5d5
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
48 additions
and
7 deletions
+48
-7
lms/djangoapps/instructor/views/api.py
+1
-1
lms/djangoapps/instructor_analytics/basic.py
+9
-5
lms/djangoapps/instructor_analytics/tests/test_basic.py
+38
-1
No files found.
lms/djangoapps/instructor/views/api.py
View file @
0ccb0174
...
...
@@ -968,7 +968,7 @@ def get_sale_records(request, course_id, csv=False): # pylint: disable=unused-a
course_id
=
SlashSeparatedCourseKey
.
from_deprecated_string
(
course_id
)
query_features
=
[
'company_name'
,
'company_contact_name'
,
'company_contact_email'
,
'total_codes'
,
'total_used_codes'
,
'total_amount'
,
'created
_at
'
,
'customer_reference_number'
,
'recipient_name'
,
'recipient_email'
,
'created_by'
,
'total_amount'
,
'created'
,
'customer_reference_number'
,
'recipient_name'
,
'recipient_email'
,
'created_by'
,
'internal_reference'
,
'invoice_number'
,
'codes'
,
'course_id'
]
...
...
lms/djangoapps/instructor_analytics/basic.py
View file @
0ccb0174
...
...
@@ -32,12 +32,12 @@ ORDER_ITEM_FEATURES = ('list_price', 'unit_cost', 'status')
ORDER_FEATURES
=
(
'purchase_time'
,)
SALE_FEATURES
=
(
'total_amount'
,
'company_name'
,
'company_contact_name'
,
'company_contact_email'
,
'recipient_name'
,
'recipient_email'
,
'customer_reference_number'
,
'internal_reference'
)
'recipient_email'
,
'customer_reference_number'
,
'internal_reference'
,
'created'
)
SALE_ORDER_FEATURES
=
(
'id'
,
'company_name'
,
'company_contact_name'
,
'company_contact_email'
,
'purchase_time'
,
'customer_reference_number'
,
'recipient_name'
,
'recipient_email'
,
'bill_to_street1'
,
'bill_to_street2'
,
'bill_to_city'
,
'bill_to_state'
,
'bill_to_postalcode'
,
'bill_to_country'
,
'order_type'
,)
'bill_to_country'
,
'order_type'
,
'created'
)
AVAILABLE_FEATURES
=
STUDENT_FEATURES
+
PROFILE_FEATURES
COURSE_REGISTRATION_FEATURES
=
(
'code'
,
'course_id'
,
'created_by'
,
'created_at'
,
'is_valid'
)
...
...
@@ -154,9 +154,13 @@ def sale_record_features(course_id, features):
codes
=
[
reg_code
.
code
for
reg_code
in
sale
.
courseregistrationcode_set
.
all
()]
# Extracting registration code information
obj_course_reg_code
=
sale
.
courseregistrationcode_set
.
all
()[:
1
]
.
get
()
course_reg_dict
=
dict
((
feature
,
getattr
(
obj_course_reg_code
,
feature
))
for
feature
in
course_reg_features
)
if
len
(
codes
)
>
0
:
obj_course_reg_code
=
sale
.
courseregistrationcode_set
.
all
()[:
1
]
.
get
()
course_reg_dict
=
dict
((
feature
,
getattr
(
obj_course_reg_code
,
feature
))
for
feature
in
course_reg_features
)
else
:
course_reg_dict
=
dict
((
feature
,
None
)
for
feature
in
course_reg_features
)
course_reg_dict
[
'course_id'
]
=
course_id
.
to_deprecated_string
()
course_reg_dict
.
update
({
'codes'
:
", "
.
join
(
codes
)})
...
...
lms/djangoapps/instructor_analytics/tests/test_basic.py
View file @
0ccb0174
...
...
@@ -225,7 +225,7 @@ class TestCourseSaleRecordsAnalyticsBasic(ModuleStoreTestCase):
query_features
=
[
'company_name'
,
'company_contact_name'
,
'company_contact_email'
,
'total_codes'
,
'total_used_codes'
,
'total_amount'
,
'created
_at
'
,
'customer_reference_number'
,
'recipient_name'
,
'recipient_email'
,
'total_amount'
,
'created'
,
'customer_reference_number'
,
'recipient_name'
,
'recipient_email'
,
'created_by'
,
'internal_reference'
,
'invoice_number'
,
'codes'
,
'course_id'
]
...
...
@@ -264,6 +264,43 @@ class TestCourseSaleRecordsAnalyticsBasic(ModuleStoreTestCase):
self
.
assertEqual
(
sale_record
[
'total_used_codes'
],
0
)
self
.
assertEqual
(
sale_record
[
'total_codes'
],
5
)
def
test_course_sale_no_codes
(
self
):
query_features
=
[
'company_name'
,
'company_contact_name'
,
'company_contact_email'
,
'total_codes'
,
'total_used_codes'
,
'total_amount'
,
'created'
,
'customer_reference_number'
,
'recipient_name'
,
'recipient_email'
,
'created_by'
,
'internal_reference'
,
'invoice_number'
,
'codes'
,
'course_id'
]
#create invoice
sale_invoice
=
Invoice
.
objects
.
create
(
total_amount
=
0.00
,
company_name
=
'Test1'
,
company_contact_name
=
'TestName'
,
company_contact_email
=
'test@company.com'
,
recipient_name
=
'Testw_1'
,
recipient_email
=
'test2@test.com'
,
customer_reference_number
=
'2Fwe23S'
,
internal_reference
=
"ABC"
,
course_id
=
self
.
course
.
id
)
CourseRegistrationCodeInvoiceItem
.
objects
.
create
(
invoice
=
sale_invoice
,
qty
=
0
,
unit_price
=
0.00
,
course_id
=
self
.
course
.
id
)
course_sale_records_list
=
sale_record_features
(
self
.
course
.
id
,
query_features
)
for
sale_record
in
course_sale_records_list
:
self
.
assertEqual
(
sale_record
[
'total_amount'
],
sale_invoice
.
total_amount
)
self
.
assertEqual
(
sale_record
[
'recipient_email'
],
sale_invoice
.
recipient_email
)
self
.
assertEqual
(
sale_record
[
'recipient_name'
],
sale_invoice
.
recipient_name
)
self
.
assertEqual
(
sale_record
[
'company_name'
],
sale_invoice
.
company_name
)
self
.
assertEqual
(
sale_record
[
'company_contact_name'
],
sale_invoice
.
company_contact_name
)
self
.
assertEqual
(
sale_record
[
'company_contact_email'
],
sale_invoice
.
company_contact_email
)
self
.
assertEqual
(
sale_record
[
'internal_reference'
],
sale_invoice
.
internal_reference
)
self
.
assertEqual
(
sale_record
[
'customer_reference_number'
],
sale_invoice
.
customer_reference_number
)
self
.
assertEqual
(
sale_record
[
'invoice_number'
],
sale_invoice
.
id
)
self
.
assertEqual
(
sale_record
[
'created_by'
],
None
)
self
.
assertEqual
(
sale_record
[
'total_used_codes'
],
0
)
self
.
assertEqual
(
sale_record
[
'total_codes'
],
0
)
def
test_sale_order_features_with_discount
(
self
):
"""
Test Order Sales Report CSV
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment