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
83011e1c
Commit
83011e1c
authored
Oct 12, 2016
by
sanfordstudent
Committed by
GitHub
Oct 12, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #13666 from edx/sstudent/hack-python-paths
update all references to instructor module
parents
3f750333
79eaa4e2
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
151 additions
and
146 deletions
+151
-146
lms/djangoapps/ccx/api/v0/tests/test_views.py
+2
-2
lms/djangoapps/ccx/api/v0/views.py
+1
-1
lms/djangoapps/ccx/tests/test_views.py
+2
-2
lms/djangoapps/ccx/utils.py
+3
-3
lms/djangoapps/ccx/views.py
+3
-3
lms/djangoapps/courseware/views/views.py
+2
-2
lms/djangoapps/instructor/access.py
+1
-1
lms/djangoapps/instructor/management/commands/compute_grades.py
+1
-1
lms/djangoapps/instructor/management/tests/test_compute_grades.py
+1
-1
lms/djangoapps/instructor/paidcourse_enrollment_report.py
+1
-1
lms/djangoapps/instructor/services.py
+2
-2
lms/djangoapps/instructor/tests/test_access.py
+1
-4
lms/djangoapps/instructor/tests/test_api.py
+41
-33
lms/djangoapps/instructor/tests/test_certificates.py
+1
-1
lms/djangoapps/instructor/tests/test_enrollment.py
+1
-1
lms/djangoapps/instructor/tests/test_enrollment_store_provider.py
+2
-2
lms/djangoapps/instructor/tests/test_services.py
+4
-4
lms/djangoapps/instructor/tests/views/test_instructor_dashboard.py
+4
-4
lms/djangoapps/instructor/views/api.py
+5
-5
lms/djangoapps/instructor/views/api_urls.py
+57
-57
lms/djangoapps/instructor/views/gradebook_api.py
+1
-1
lms/djangoapps/instructor/views/registration_codes.py
+2
-2
lms/djangoapps/instructor_task/tasks_helper.py
+1
-1
lms/djangoapps/shoppingcart/models.py
+1
-1
lms/envs/common.py
+1
-1
lms/startup.py
+1
-1
lms/urls.py
+9
-9
No files found.
lms/djangoapps/ccx/api/v0/tests/test_views.py
View file @
83011e1c
...
@@ -32,8 +32,8 @@ from courseware import courses
...
@@ -32,8 +32,8 @@ from courseware import courses
from
ccx_keys.locator
import
CCXLocator
from
ccx_keys.locator
import
CCXLocator
from
student.models
import
CourseEnrollment
from
student.models
import
CourseEnrollment
from
student.tests.factories
import
UserFactory
from
student.tests.factories
import
UserFactory
from
instructor.access
import
allow_access
,
list_with_level
from
lms.djangoapps.
instructor.access
import
allow_access
,
list_with_level
from
instructor.enrollment
import
(
from
lms.djangoapps.
instructor.enrollment
import
(
enroll_email
,
enroll_email
,
get_email_params
,
get_email_params
,
)
)
...
...
lms/djangoapps/ccx/api/v0/views.py
View file @
83011e1c
...
@@ -19,7 +19,7 @@ from ccx_keys.locator import CCXLocator
...
@@ -19,7 +19,7 @@ from ccx_keys.locator import CCXLocator
from
courseware
import
courses
from
courseware
import
courses
from
xmodule.modulestore.django
import
SignalHandler
from
xmodule.modulestore.django
import
SignalHandler
from
edx_rest_framework_extensions.authentication
import
JwtAuthentication
from
edx_rest_framework_extensions.authentication
import
JwtAuthentication
from
instructor.enrollment
import
(
from
lms.djangoapps.
instructor.enrollment
import
(
enroll_email
,
enroll_email
,
get_email_params
,
get_email_params
,
)
)
...
...
lms/djangoapps/ccx/tests/test_views.py
View file @
83011e1c
...
@@ -20,7 +20,7 @@ from courseware.testutils import FieldOverrideTestMixin
...
@@ -20,7 +20,7 @@ from courseware.testutils import FieldOverrideTestMixin
from
django_comment_client.utils
import
has_forum_access
from
django_comment_client.utils
import
has_forum_access
from
django_comment_common.models
import
FORUM_ROLE_ADMINISTRATOR
from
django_comment_common.models
import
FORUM_ROLE_ADMINISTRATOR
from
django_comment_common.utils
import
are_permissions_roles_seeded
from
django_comment_common.utils
import
are_permissions_roles_seeded
from
instructor.access
import
(
from
lms.djangoapps.
instructor.access
import
(
allow_access
,
allow_access
,
list_with_level
,
list_with_level
,
)
)
...
@@ -1159,7 +1159,7 @@ class TestCCXGrades(FieldOverrideTestMixin, SharedModuleStoreTestCase, LoginEnro
...
@@ -1159,7 +1159,7 @@ class TestCCXGrades(FieldOverrideTestMixin, SharedModuleStoreTestCase, LoginEnro
)
)
@patch
(
'ccx.views.render_to_response'
,
intercept_renderer
)
@patch
(
'ccx.views.render_to_response'
,
intercept_renderer
)
@patch
(
'instructor.views.gradebook_api.MAX_STUDENTS_PER_PAGE_GRADE_BOOK'
,
1
)
@patch
(
'
lms.djangoapps.
instructor.views.gradebook_api.MAX_STUDENTS_PER_PAGE_GRADE_BOOK'
,
1
)
def
test_gradebook
(
self
):
def
test_gradebook
(
self
):
self
.
course
.
enable_ccx
=
True
self
.
course
.
enable_ccx
=
True
RequestCache
.
clear_request_cache
()
RequestCache
.
clear_request_cache
()
...
...
lms/djangoapps/ccx/utils.py
View file @
83011e1c
...
@@ -16,17 +16,17 @@ from django.core.urlresolvers import reverse
...
@@ -16,17 +16,17 @@ from django.core.urlresolvers import reverse
from
smtplib
import
SMTPException
from
smtplib
import
SMTPException
from
courseware.courses
import
get_course_by_id
from
courseware.courses
import
get_course_by_id
from
instructor.enrollment
import
(
from
lms.djangoapps.
instructor.enrollment
import
(
enroll_email
,
enroll_email
,
get_email_params
,
get_email_params
,
unenroll_email
,
unenroll_email
,
)
)
from
instructor.access
import
(
from
lms.djangoapps.
instructor.access
import
(
allow_access
,
allow_access
,
list_with_level
,
list_with_level
,
revoke_access
,
revoke_access
,
)
)
from
instructor.views.tools
import
get_student_from_identifier
from
lms.djangoapps.
instructor.views.tools
import
get_student_from_identifier
from
openedx.core.djangoapps.content.course_overviews.models
import
CourseOverview
from
openedx.core.djangoapps.content.course_overviews.models
import
CourseOverview
from
openedx.core.djangoapps.content.course_structures.models
import
CourseStructure
from
openedx.core.djangoapps.content.course_structures.models
import
CourseStructure
from
student.models
import
CourseEnrollment
,
CourseEnrollmentException
from
student.models
import
CourseEnrollment
,
CourseEnrollmentException
...
...
lms/djangoapps/ccx/views.py
View file @
83011e1c
...
@@ -40,9 +40,9 @@ from student.roles import CourseCcxCoachRole
...
@@ -40,9 +40,9 @@ from student.roles import CourseCcxCoachRole
from
student.models
import
CourseEnrollment
from
student.models
import
CourseEnrollment
from
xmodule.modulestore.django
import
SignalHandler
from
xmodule.modulestore.django
import
SignalHandler
from
instructor.views.api
import
_split_input_list
from
lms.djangoapps.
instructor.views.api
import
_split_input_list
from
instructor.views.gradebook_api
import
get_grade_book_page
from
lms.djangoapps.
instructor.views.gradebook_api
import
get_grade_book_page
from
instructor.enrollment
import
(
from
lms.djangoapps.
instructor.enrollment
import
(
enroll_email
,
enroll_email
,
get_email_params
,
get_email_params
,
)
)
...
...
lms/djangoapps/courseware/views/views.py
View file @
83011e1c
...
@@ -33,7 +33,7 @@ from opaque_keys import InvalidKeyError
...
@@ -33,7 +33,7 @@ from opaque_keys import InvalidKeyError
from
opaque_keys.edx.keys
import
CourseKey
,
UsageKey
from
opaque_keys.edx.keys
import
CourseKey
,
UsageKey
from
opaque_keys.edx.locations
import
SlashSeparatedCourseKey
from
opaque_keys.edx.locations
import
SlashSeparatedCourseKey
from
rest_framework
import
status
from
rest_framework
import
status
from
instructor.views.api
import
require_global_staff
from
lms.djangoapps.
instructor.views.api
import
require_global_staff
import
shoppingcart
import
shoppingcart
import
survey.utils
import
survey.utils
...
@@ -67,7 +67,7 @@ from courseware.models import StudentModule, BaseStudentModuleHistory
...
@@ -67,7 +67,7 @@ from courseware.models import StudentModule, BaseStudentModuleHistory
from
courseware.url_helpers
import
get_redirect_url
,
get_redirect_url_for_global_staff
from
courseware.url_helpers
import
get_redirect_url
,
get_redirect_url_for_global_staff
from
courseware.user_state_client
import
DjangoXBlockUserStateClient
from
courseware.user_state_client
import
DjangoXBlockUserStateClient
from
edxmako.shortcuts
import
render_to_response
,
render_to_string
,
marketing_link
from
edxmako.shortcuts
import
render_to_response
,
render_to_string
,
marketing_link
from
instructor.enrollment
import
uses_shib
from
lms.djangoapps.
instructor.enrollment
import
uses_shib
from
lms.djangoapps.verify_student.models
import
SoftwareSecurePhotoVerification
from
lms.djangoapps.verify_student.models
import
SoftwareSecurePhotoVerification
from
openedx.core.djangoapps.content.course_overviews.models
import
CourseOverview
from
openedx.core.djangoapps.content.course_overviews.models
import
CourseOverview
from
openedx.core.djangoapps.coursetalk.helpers
import
inject_coursetalk_keys_into_context
from
openedx.core.djangoapps.coursetalk.helpers
import
inject_coursetalk_keys_into_context
...
...
lms/djangoapps/instructor/access.py
View file @
83011e1c
...
@@ -19,7 +19,7 @@ from student.roles import (
...
@@ -19,7 +19,7 @@ from student.roles import (
CourseStaffRole
,
CourseStaffRole
,
)
)
from
instructor.enrollment
import
(
from
lms.djangoapps.
instructor.enrollment
import
(
enroll_email
,
enroll_email
,
get_email_params
,
get_email_params
,
)
)
...
...
lms/djangoapps/instructor/management/commands/compute_grades.py
View file @
83011e1c
...
@@ -7,7 +7,7 @@ from django.http import Http404
...
@@ -7,7 +7,7 @@ from django.http import Http404
from
django.core.management.base
import
BaseCommand
from
django.core.management.base
import
BaseCommand
from
courseware.courses
import
get_course_by_id
from
courseware.courses
import
get_course_by_id
from
instructor.offline_gradecalc
import
offline_grade_calculation
from
lms.djangoapps.
instructor.offline_gradecalc
import
offline_grade_calculation
from
opaque_keys
import
InvalidKeyError
from
opaque_keys
import
InvalidKeyError
from
opaque_keys.edx.keys
import
CourseKey
from
opaque_keys.edx.keys
import
CourseKey
from
opaque_keys.edx.locations
import
SlashSeparatedCourseKey
from
opaque_keys.edx.locations
import
SlashSeparatedCourseKey
...
...
lms/djangoapps/instructor/management/tests/test_compute_grades.py
View file @
83011e1c
...
@@ -7,7 +7,7 @@ from unittest import TestCase
...
@@ -7,7 +7,7 @@ from unittest import TestCase
from
django.core.management
import
call_command
from
django.core.management
import
call_command
from
mock
import
Mock
from
mock
import
Mock
from
instructor.offline_gradecalc
import
offline_grade_calculation
# pylint: disable=unused-import
from
lms.djangoapps.
instructor.offline_gradecalc
import
offline_grade_calculation
# pylint: disable=unused-import
from
opaque_keys.edx.keys
import
CourseKey
from
opaque_keys.edx.keys
import
CourseKey
from
opaque_keys.edx.locator
import
CourseLocator
from
opaque_keys.edx.locator
import
CourseLocator
...
...
lms/djangoapps/instructor/paidcourse_enrollment_report.py
View file @
83011e1c
...
@@ -7,7 +7,7 @@ import collections
...
@@ -7,7 +7,7 @@ import collections
from
django.conf
import
settings
from
django.conf
import
settings
from
django.utils.translation
import
ugettext
as
_
from
django.utils.translation
import
ugettext
as
_
from
courseware.courses
import
get_course_by_id
from
courseware.courses
import
get_course_by_id
from
instructor.enrollment_report
import
BaseAbstractEnrollmentReportProvider
from
lms.djangoapps.
instructor.enrollment_report
import
BaseAbstractEnrollmentReportProvider
from
shoppingcart.models
import
RegistrationCodeRedemption
,
PaidCourseRegistration
,
CouponRedemption
,
OrderItem
,
\
from
shoppingcart.models
import
RegistrationCodeRedemption
,
PaidCourseRegistration
,
CouponRedemption
,
OrderItem
,
\
InvoiceTransaction
InvoiceTransaction
from
student.models
import
CourseEnrollment
,
ManualEnrollmentAudit
from
student.models
import
CourseEnrollment
,
ManualEnrollmentAudit
...
...
lms/djangoapps/instructor/services.py
View file @
83011e1c
...
@@ -8,9 +8,9 @@ from opaque_keys import InvalidKeyError
...
@@ -8,9 +8,9 @@ from opaque_keys import InvalidKeyError
from
opaque_keys.edx.keys
import
CourseKey
,
UsageKey
from
opaque_keys.edx.keys
import
CourseKey
,
UsageKey
from
commerce.signals
import
create_zendesk_ticket
from
commerce.signals
import
create_zendesk_ticket
from
courseware.models
import
StudentModule
from
courseware.models
import
StudentModule
from
instructor.views.tools
import
get_student_from_identifier
from
lms.djangoapps.
instructor.views.tools
import
get_student_from_identifier
from
django.core.exceptions
import
ObjectDoesNotExist
from
django.core.exceptions
import
ObjectDoesNotExist
import
instructor.enrollment
as
enrollment
import
lms.djangoapps.
instructor.enrollment
as
enrollment
from
django.utils.translation
import
ugettext
as
_
from
django.utils.translation
import
ugettext
as
_
...
...
lms/djangoapps/instructor/tests/test_access.py
View file @
83011e1c
...
@@ -12,10 +12,7 @@ from student.roles import CourseBetaTesterRole, CourseStaffRole, CourseCcxCoachR
...
@@ -12,10 +12,7 @@ from student.roles import CourseBetaTesterRole, CourseStaffRole, CourseCcxCoachR
from
django_comment_common.models
import
(
Role
,
from
django_comment_common.models
import
(
Role
,
FORUM_ROLE_MODERATOR
)
FORUM_ROLE_MODERATOR
)
from
instructor.access
import
(
allow_access
,
from
lms.djangoapps.instructor.access
import
(
allow_access
,
revoke_access
,
list_with_level
,
update_forum_role
)
revoke_access
,
list_with_level
,
update_forum_role
)
@attr
(
shard
=
1
)
@attr
(
shard
=
1
)
...
...
lms/djangoapps/instructor/tests/test_api.py
View file @
83011e1c
...
@@ -59,10 +59,10 @@ from xmodule.fields import Date
...
@@ -59,10 +59,10 @@ from xmodule.fields import Date
from
courseware.models
import
StudentFieldOverride
from
courseware.models
import
StudentFieldOverride
import
instructor_task.api
import
instructor_task.api
import
instructor.views.api
import
lms.djangoapps.
instructor.views.api
from
instructor.views.api
import
require_finance_admin
from
lms.djangoapps.
instructor.views.api
import
require_finance_admin
from
instructor.tests.utils
import
FakeContentTask
,
FakeEmail
,
FakeEmailInfo
from
lms.djangoapps.
instructor.tests.utils
import
FakeContentTask
,
FakeEmail
,
FakeEmailInfo
from
instructor.views.api
import
_split_input_list
,
common_exceptions_400
,
generate_unique_password
from
lms.djangoapps.
instructor.views.api
import
_split_input_list
,
common_exceptions_400
,
generate_unique_password
from
instructor_task.api_helper
import
AlreadyRunningError
from
instructor_task.api_helper
import
AlreadyRunningError
from
certificates.tests.factories
import
GeneratedCertificateFactory
from
certificates.tests.factories
import
GeneratedCertificateFactory
from
certificates.models
import
CertificateStatuses
from
certificates.models
import
CertificateStatuses
...
@@ -580,7 +580,7 @@ class TestInstructorAPIBulkAccountCreationAndEnrollment(SharedModuleStoreTestCas
...
@@ -580,7 +580,7 @@ class TestInstructorAPIBulkAccountCreationAndEnrollment(SharedModuleStoreTestCas
last_name
=
'Student'
last_name
=
'Student'
)
)
@patch
(
'instructor.views.api.log.info'
)
@patch
(
'
lms.djangoapps.
instructor.views.api.log.info'
)
def
test_account_creation_and_enrollment_with_csv
(
self
,
info_log
):
def
test_account_creation_and_enrollment_with_csv
(
self
,
info_log
):
"""
"""
Happy path test to create a single new user
Happy path test to create a single new user
...
@@ -601,7 +601,7 @@ class TestInstructorAPIBulkAccountCreationAndEnrollment(SharedModuleStoreTestCas
...
@@ -601,7 +601,7 @@ class TestInstructorAPIBulkAccountCreationAndEnrollment(SharedModuleStoreTestCas
# test the log for email that's send to new created user.
# test the log for email that's send to new created user.
info_log
.
assert_called_with
(
'email sent to new created user at
%
s'
,
'test_student@example.com'
)
info_log
.
assert_called_with
(
'email sent to new created user at
%
s'
,
'test_student@example.com'
)
@patch
(
'instructor.views.api.log.info'
)
@patch
(
'
lms.djangoapps.
instructor.views.api.log.info'
)
def
test_account_creation_and_enrollment_with_csv_with_blank_lines
(
self
,
info_log
):
def
test_account_creation_and_enrollment_with_csv_with_blank_lines
(
self
,
info_log
):
"""
"""
Happy path test to create a single new user
Happy path test to create a single new user
...
@@ -622,7 +622,7 @@ class TestInstructorAPIBulkAccountCreationAndEnrollment(SharedModuleStoreTestCas
...
@@ -622,7 +622,7 @@ class TestInstructorAPIBulkAccountCreationAndEnrollment(SharedModuleStoreTestCas
# test the log for email that's send to new created user.
# test the log for email that's send to new created user.
info_log
.
assert_called_with
(
'email sent to new created user at
%
s'
,
'test_student@example.com'
)
info_log
.
assert_called_with
(
'email sent to new created user at
%
s'
,
'test_student@example.com'
)
@patch
(
'instructor.views.api.log.info'
)
@patch
(
'
lms.djangoapps.
instructor.views.api.log.info'
)
def
test_email_and_username_already_exist
(
self
,
info_log
):
def
test_email_and_username_already_exist
(
self
,
info_log
):
"""
"""
If the email address and username already exists
If the email address and username already exists
...
@@ -712,7 +712,7 @@ class TestInstructorAPIBulkAccountCreationAndEnrollment(SharedModuleStoreTestCas
...
@@ -712,7 +712,7 @@ class TestInstructorAPIBulkAccountCreationAndEnrollment(SharedModuleStoreTestCas
manual_enrollments
=
ManualEnrollmentAudit
.
objects
.
all
()
manual_enrollments
=
ManualEnrollmentAudit
.
objects
.
all
()
self
.
assertEqual
(
manual_enrollments
.
count
(),
0
)
self
.
assertEqual
(
manual_enrollments
.
count
(),
0
)
@patch
(
'instructor.views.api.log.info'
)
@patch
(
'
lms.djangoapps.
instructor.views.api.log.info'
)
def
test_csv_user_exist_and_not_enrolled
(
self
,
info_log
):
def
test_csv_user_exist_and_not_enrolled
(
self
,
info_log
):
"""
"""
If the email address and username already exists
If the email address and username already exists
...
@@ -797,7 +797,7 @@ class TestInstructorAPIBulkAccountCreationAndEnrollment(SharedModuleStoreTestCas
...
@@ -797,7 +797,7 @@ class TestInstructorAPIBulkAccountCreationAndEnrollment(SharedModuleStoreTestCas
"test_student2@example.com,test_student_1,tester2,US"
"test_student2@example.com,test_student_1,tester2,US"
uploaded_file
=
SimpleUploadedFile
(
"temp.csv"
,
csv_content
)
uploaded_file
=
SimpleUploadedFile
(
"temp.csv"
,
csv_content
)
with
patch
(
'instructor.views.api.create_manual_course_enrollment'
)
as
mock
:
with
patch
(
'
lms.djangoapps.
instructor.views.api.create_manual_course_enrollment'
)
as
mock
:
mock
.
side_effect
=
NonExistentCourseError
()
mock
.
side_effect
=
NonExistentCourseError
()
response
=
self
.
client
.
post
(
self
.
url
,
{
'students_list'
:
uploaded_file
})
response
=
self
.
client
.
post
(
self
.
url
,
{
'students_list'
:
uploaded_file
})
...
@@ -837,7 +837,7 @@ class TestInstructorAPIBulkAccountCreationAndEnrollment(SharedModuleStoreTestCas
...
@@ -837,7 +837,7 @@ class TestInstructorAPIBulkAccountCreationAndEnrollment(SharedModuleStoreTestCas
manual_enrollments
=
ManualEnrollmentAudit
.
objects
.
all
()
manual_enrollments
=
ManualEnrollmentAudit
.
objects
.
all
()
self
.
assertEqual
(
manual_enrollments
.
count
(),
2
)
self
.
assertEqual
(
manual_enrollments
.
count
(),
2
)
@patch.object
(
instructor
.
views
.
api
,
'generate_random_string'
,
@patch.object
(
lms
.
djangoapps
.
instructor
.
views
.
api
,
'generate_random_string'
,
Mock
(
side_effect
=
[
'first'
,
'first'
,
'second'
]))
Mock
(
side_effect
=
[
'first'
,
'first'
,
'second'
]))
def
test_generate_unique_password_no_reuse
(
self
):
def
test_generate_unique_password_no_reuse
(
self
):
"""
"""
...
@@ -1419,7 +1419,7 @@ class TestInstructorAPIEnrollment(SharedModuleStoreTestCase, LoginEnrollmentTest
...
@@ -1419,7 +1419,7 @@ class TestInstructorAPIEnrollment(SharedModuleStoreTestCase, LoginEnrollmentTest
)
)
@ddt.data
(
'http'
,
'https'
)
@ddt.data
(
'http'
,
'https'
)
@patch
(
'instructor.enrollment.uses_shib'
)
@patch
(
'
lms.djangoapps.
instructor.enrollment.uses_shib'
)
def
test_enroll_with_email_not_registered_with_shib
(
self
,
protocol
,
mock_uses_shib
):
def
test_enroll_with_email_not_registered_with_shib
(
self
,
protocol
,
mock_uses_shib
):
mock_uses_shib
.
return_value
=
True
mock_uses_shib
.
return_value
=
True
...
@@ -1446,7 +1446,7 @@ class TestInstructorAPIEnrollment(SharedModuleStoreTestCase, LoginEnrollmentTest
...
@@ -1446,7 +1446,7 @@ class TestInstructorAPIEnrollment(SharedModuleStoreTestCase, LoginEnrollmentTest
)
)
)
)
@patch
(
'instructor.enrollment.uses_shib'
)
@patch
(
'
lms.djangoapps.
instructor.enrollment.uses_shib'
)
@patch.dict
(
settings
.
FEATURES
,
{
'ENABLE_MKTG_SITE'
:
True
})
@patch.dict
(
settings
.
FEATURES
,
{
'ENABLE_MKTG_SITE'
:
True
})
def
test_enroll_email_not_registered_shib_mktgsite
(
self
,
mock_uses_shib
):
def
test_enroll_email_not_registered_shib_mktgsite
(
self
,
mock_uses_shib
):
# Try with marketing site enabled and shib on
# Try with marketing site enabled and shib on
...
@@ -1468,7 +1468,7 @@ class TestInstructorAPIEnrollment(SharedModuleStoreTestCase, LoginEnrollmentTest
...
@@ -1468,7 +1468,7 @@ class TestInstructorAPIEnrollment(SharedModuleStoreTestCase, LoginEnrollmentTest
)
)
@ddt.data
(
'http'
,
'https'
)
@ddt.data
(
'http'
,
'https'
)
@patch
(
'instructor.enrollment.uses_shib'
)
@patch
(
'
lms.djangoapps.
instructor.enrollment.uses_shib'
)
def
test_enroll_with_email_not_registered_with_shib_autoenroll
(
self
,
protocol
,
mock_uses_shib
):
def
test_enroll_with_email_not_registered_with_shib_autoenroll
(
self
,
protocol
,
mock_uses_shib
):
mock_uses_shib
.
return_value
=
True
mock_uses_shib
.
return_value
=
True
...
@@ -2954,8 +2954,8 @@ class TestInstructorAPILevelsDataDump(SharedModuleStoreTestCase, LoginEnrollment
...
@@ -2954,8 +2954,8 @@ class TestInstructorAPILevelsDataDump(SharedModuleStoreTestCase, LoginEnrollment
response
=
self
.
client
.
post
(
url
,
{})
response
=
self
.
client
.
post
(
url
,
{})
self
.
assertIn
(
'The detailed enrollment report is being created.'
,
response
.
content
)
self
.
assertIn
(
'The detailed enrollment report is being created.'
,
response
.
content
)
@patch.object
(
instructor
.
views
.
api
,
'anonymous_id_for_user'
,
Mock
(
return_value
=
'42'
))
@patch.object
(
lms
.
djangoapps
.
instructor
.
views
.
api
,
'anonymous_id_for_user'
,
Mock
(
return_value
=
'42'
))
@patch.object
(
instructor
.
views
.
api
,
'unique_id_for_user'
,
Mock
(
return_value
=
'41'
))
@patch.object
(
lms
.
djangoapps
.
instructor
.
views
.
api
,
'unique_id_for_user'
,
Mock
(
return_value
=
'41'
))
def
test_get_anon_ids
(
self
):
def
test_get_anon_ids
(
self
):
"""
"""
Test the CSV output for the anonymized user ids.
Test the CSV output for the anonymized user ids.
...
@@ -3734,7 +3734,9 @@ class TestInstructorAPITaskLists(SharedModuleStoreTestCase, LoginEnrollmentTestC
...
@@ -3734,7 +3734,9 @@ class TestInstructorAPITaskLists(SharedModuleStoreTestCase, LoginEnrollmentTestC
act
.
return_value
=
self
.
tasks
act
.
return_value
=
self
.
tasks
url
=
reverse
(
'list_instructor_tasks'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'list_instructor_tasks'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
mock_factory
=
MockCompletionInfo
()
mock_factory
=
MockCompletionInfo
()
with
patch
(
'instructor.views.instructor_task_helpers.get_task_completion_info'
)
as
mock_completion_info
:
with
patch
(
'lms.djangoapps.instructor.views.instructor_task_helpers.get_task_completion_info'
)
as
mock_completion_info
:
mock_completion_info
.
side_effect
=
mock_factory
.
mock_get_task_completion_info
mock_completion_info
.
side_effect
=
mock_factory
.
mock_get_task_completion_info
response
=
self
.
client
.
post
(
url
,
{})
response
=
self
.
client
.
post
(
url
,
{})
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
status_code
,
200
)
...
@@ -3753,7 +3755,9 @@ class TestInstructorAPITaskLists(SharedModuleStoreTestCase, LoginEnrollmentTestC
...
@@ -3753,7 +3755,9 @@ class TestInstructorAPITaskLists(SharedModuleStoreTestCase, LoginEnrollmentTestC
act
.
return_value
=
self
.
tasks
act
.
return_value
=
self
.
tasks
url
=
reverse
(
'list_background_email_tasks'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'list_background_email_tasks'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
mock_factory
=
MockCompletionInfo
()
mock_factory
=
MockCompletionInfo
()
with
patch
(
'instructor.views.instructor_task_helpers.get_task_completion_info'
)
as
mock_completion_info
:
with
patch
(
'lms.djangoapps.instructor.views.instructor_task_helpers.get_task_completion_info'
)
as
mock_completion_info
:
mock_completion_info
.
side_effect
=
mock_factory
.
mock_get_task_completion_info
mock_completion_info
.
side_effect
=
mock_factory
.
mock_get_task_completion_info
response
=
self
.
client
.
post
(
url
,
{})
response
=
self
.
client
.
post
(
url
,
{})
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
status_code
,
200
)
...
@@ -3772,7 +3776,9 @@ class TestInstructorAPITaskLists(SharedModuleStoreTestCase, LoginEnrollmentTestC
...
@@ -3772,7 +3776,9 @@ class TestInstructorAPITaskLists(SharedModuleStoreTestCase, LoginEnrollmentTestC
act
.
return_value
=
self
.
tasks
act
.
return_value
=
self
.
tasks
url
=
reverse
(
'list_instructor_tasks'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'list_instructor_tasks'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
mock_factory
=
MockCompletionInfo
()
mock_factory
=
MockCompletionInfo
()
with
patch
(
'instructor.views.instructor_task_helpers.get_task_completion_info'
)
as
mock_completion_info
:
with
patch
(
'lms.djangoapps.instructor.views.instructor_task_helpers.get_task_completion_info'
)
as
mock_completion_info
:
mock_completion_info
.
side_effect
=
mock_factory
.
mock_get_task_completion_info
mock_completion_info
.
side_effect
=
mock_factory
.
mock_get_task_completion_info
response
=
self
.
client
.
post
(
url
,
{
response
=
self
.
client
.
post
(
url
,
{
'problem_location_str'
:
self
.
problem_urlname
,
'problem_location_str'
:
self
.
problem_urlname
,
...
@@ -3793,7 +3799,9 @@ class TestInstructorAPITaskLists(SharedModuleStoreTestCase, LoginEnrollmentTestC
...
@@ -3793,7 +3799,9 @@ class TestInstructorAPITaskLists(SharedModuleStoreTestCase, LoginEnrollmentTestC
act
.
return_value
=
self
.
tasks
act
.
return_value
=
self
.
tasks
url
=
reverse
(
'list_instructor_tasks'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'list_instructor_tasks'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
mock_factory
=
MockCompletionInfo
()
mock_factory
=
MockCompletionInfo
()
with
patch
(
'instructor.views.instructor_task_helpers.get_task_completion_info'
)
as
mock_completion_info
:
with
patch
(
'lms.djangoapps.instructor.views.instructor_task_helpers.get_task_completion_info'
)
as
mock_completion_info
:
mock_completion_info
.
side_effect
=
mock_factory
.
mock_get_task_completion_info
mock_completion_info
.
side_effect
=
mock_factory
.
mock_get_task_completion_info
response
=
self
.
client
.
post
(
url
,
{
response
=
self
.
client
.
post
(
url
,
{
'problem_location_str'
:
self
.
problem_urlname
,
'problem_location_str'
:
self
.
problem_urlname
,
...
@@ -3854,7 +3862,7 @@ class TestInstructorEmailContentList(SharedModuleStoreTestCase, LoginEnrollmentT
...
@@ -3854,7 +3862,7 @@ class TestInstructorEmailContentList(SharedModuleStoreTestCase, LoginEnrollmentT
self
.
setup_fake_email_info
(
num_emails
,
with_failures
)
self
.
setup_fake_email_info
(
num_emails
,
with_failures
)
task_history_request
.
return_value
=
self
.
tasks
.
values
()
task_history_request
.
return_value
=
self
.
tasks
.
values
()
url
=
reverse
(
'list_email_content'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'list_email_content'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
with
patch
(
'instructor.views.api.CourseEmail.objects.get'
)
as
mock_email_info
:
with
patch
(
'
lms.djangoapps.
instructor.views.api.CourseEmail.objects.get'
)
as
mock_email_info
:
mock_email_info
.
side_effect
=
self
.
get_matching_mock_email
mock_email_info
.
side_effect
=
self
.
get_matching_mock_email
response
=
self
.
client
.
post
(
url
,
{})
response
=
self
.
client
.
post
(
url
,
{})
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
status_code
,
200
)
...
@@ -3931,7 +3939,7 @@ class TestInstructorEmailContentList(SharedModuleStoreTestCase, LoginEnrollmentT
...
@@ -3931,7 +3939,7 @@ class TestInstructorEmailContentList(SharedModuleStoreTestCase, LoginEnrollmentT
email_info
=
FakeEmailInfo
(
email
,
0
,
10
)
email_info
=
FakeEmailInfo
(
email
,
0
,
10
)
task_history_request
.
return_value
=
[
task_info
]
task_history_request
.
return_value
=
[
task_info
]
url
=
reverse
(
'list_email_content'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
url
=
reverse
(
'list_email_content'
,
kwargs
=
{
'course_id'
:
self
.
course
.
id
.
to_deprecated_string
()})
with
patch
(
'instructor.views.api.CourseEmail.objects.get'
)
as
mock_email_info
:
with
patch
(
'
lms.djangoapps.
instructor.views.api.CourseEmail.objects.get'
)
as
mock_email_info
:
mock_email_info
.
return_value
=
email
mock_email_info
.
return_value
=
email
response
=
self
.
client
.
post
(
url
,
{})
response
=
self
.
client
.
post
(
url
,
{})
self
.
assertEqual
(
response
.
status_code
,
200
)
self
.
assertEqual
(
response
.
status_code
,
200
)
...
@@ -4556,7 +4564,7 @@ class TestCourseRegistrationCodes(SharedModuleStoreTestCase):
...
@@ -4556,7 +4564,7 @@ class TestCourseRegistrationCodes(SharedModuleStoreTestCase):
and
row_data
[
1
]
.
endswith
(
'/shoppingcart/register/redeem/{0}/"'
.
format
(
code
)))
and
row_data
[
1
]
.
endswith
(
'/shoppingcart/register/redeem/{0}/"'
.
format
(
code
)))
index
+=
1
index
+=
1
@patch.object
(
instructor
.
views
.
api
,
'random_code_generator'
,
@patch.object
(
lms
.
djangoapps
.
instructor
.
views
.
api
,
'random_code_generator'
,
Mock
(
side_effect
=
[
'first'
,
'second'
,
'third'
,
'fourth'
]))
Mock
(
side_effect
=
[
'first'
,
'second'
,
'third'
,
'fourth'
]))
def
test_generate_course_registration_codes_matching_existing_coupon_code
(
self
):
def
test_generate_course_registration_codes_matching_existing_coupon_code
(
self
):
"""
"""
...
@@ -4582,7 +4590,7 @@ class TestCourseRegistrationCodes(SharedModuleStoreTestCase):
...
@@ -4582,7 +4590,7 @@ class TestCourseRegistrationCodes(SharedModuleStoreTestCase):
self
.
assertTrue
(
body
.
startswith
(
EXPECTED_CSV_HEADER
))
self
.
assertTrue
(
body
.
startswith
(
EXPECTED_CSV_HEADER
))
self
.
assertEqual
(
len
(
body
.
split
(
'
\n
'
)),
5
)
# 1 for headers, 1 for new line at the end and 3 for the actual data
self
.
assertEqual
(
len
(
body
.
split
(
'
\n
'
)),
5
)
# 1 for headers, 1 for new line at the end and 3 for the actual data
@patch.object
(
instructor
.
views
.
api
,
'random_code_generator'
,
@patch.object
(
lms
.
djangoapps
.
instructor
.
views
.
api
,
'random_code_generator'
,
Mock
(
side_effect
=
[
'first'
,
'first'
,
'second'
,
'third'
]))
Mock
(
side_effect
=
[
'first'
,
'first'
,
'second'
,
'third'
]))
def
test_generate_course_registration_codes_integrity_error
(
self
):
def
test_generate_course_registration_codes_integrity_error
(
self
):
"""
"""
...
@@ -4946,8 +4954,8 @@ class TestBulkCohorting(SharedModuleStoreTestCase):
...
@@ -4946,8 +4954,8 @@ class TestBulkCohorting(SharedModuleStoreTestCase):
response
=
self
.
call_add_users_to_cohorts
(
''
)
response
=
self
.
call_add_users_to_cohorts
(
''
)
self
.
assertEqual
(
response
.
status_code
,
403
)
self
.
assertEqual
(
response
.
status_code
,
403
)
@patch
(
'instructor.views.api.instructor_task.api.submit_cohort_students'
)
@patch
(
'
lms.djangoapps.
instructor.views.api.instructor_task.api.submit_cohort_students'
)
@patch
(
'instructor.views.api.store_uploaded_file'
)
@patch
(
'
lms.djangoapps.
instructor.views.api.store_uploaded_file'
)
def
test_success_username
(
self
,
mock_store_upload
,
mock_cohort_task
):
def
test_success_username
(
self
,
mock_store_upload
,
mock_cohort_task
):
"""
"""
Verify that we store the input CSV and call a background task when
Verify that we store the input CSV and call a background task when
...
@@ -4957,8 +4965,8 @@ class TestBulkCohorting(SharedModuleStoreTestCase):
...
@@ -4957,8 +4965,8 @@ class TestBulkCohorting(SharedModuleStoreTestCase):
'username,cohort
\n
foo_username,bar_cohort'
,
mock_store_upload
,
mock_cohort_task
'username,cohort
\n
foo_username,bar_cohort'
,
mock_store_upload
,
mock_cohort_task
)
)
@patch
(
'instructor.views.api.instructor_task.api.submit_cohort_students'
)
@patch
(
'
lms.djangoapps.
instructor.views.api.instructor_task.api.submit_cohort_students'
)
@patch
(
'instructor.views.api.store_uploaded_file'
)
@patch
(
'
lms.djangoapps.
instructor.views.api.store_uploaded_file'
)
def
test_success_email
(
self
,
mock_store_upload
,
mock_cohort_task
):
def
test_success_email
(
self
,
mock_store_upload
,
mock_cohort_task
):
"""
"""
Verify that we store the input CSV and call the cohorting background
Verify that we store the input CSV and call the cohorting background
...
@@ -4968,8 +4976,8 @@ class TestBulkCohorting(SharedModuleStoreTestCase):
...
@@ -4968,8 +4976,8 @@ class TestBulkCohorting(SharedModuleStoreTestCase):
'email,cohort
\n
foo_email,bar_cohort'
,
mock_store_upload
,
mock_cohort_task
'email,cohort
\n
foo_email,bar_cohort'
,
mock_store_upload
,
mock_cohort_task
)
)
@patch
(
'instructor.views.api.instructor_task.api.submit_cohort_students'
)
@patch
(
'
lms.djangoapps.
instructor.views.api.instructor_task.api.submit_cohort_students'
)
@patch
(
'instructor.views.api.store_uploaded_file'
)
@patch
(
'
lms.djangoapps.
instructor.views.api.store_uploaded_file'
)
def
test_success_username_and_email
(
self
,
mock_store_upload
,
mock_cohort_task
):
def
test_success_username_and_email
(
self
,
mock_store_upload
,
mock_cohort_task
):
"""
"""
Verify that we store the input CSV and call the cohorting background
Verify that we store the input CSV and call the cohorting background
...
@@ -4979,8 +4987,8 @@ class TestBulkCohorting(SharedModuleStoreTestCase):
...
@@ -4979,8 +4987,8 @@ class TestBulkCohorting(SharedModuleStoreTestCase):
'username,email,cohort
\n
foo_username,bar_email,baz_cohort'
,
mock_store_upload
,
mock_cohort_task
'username,email,cohort
\n
foo_username,bar_email,baz_cohort'
,
mock_store_upload
,
mock_cohort_task
)
)
@patch
(
'instructor.views.api.instructor_task.api.submit_cohort_students'
)
@patch
(
'
lms.djangoapps.
instructor.views.api.instructor_task.api.submit_cohort_students'
)
@patch
(
'instructor.views.api.store_uploaded_file'
)
@patch
(
'
lms.djangoapps.
instructor.views.api.store_uploaded_file'
)
def
test_success_carriage_return
(
self
,
mock_store_upload
,
mock_cohort_task
):
def
test_success_carriage_return
(
self
,
mock_store_upload
,
mock_cohort_task
):
"""
"""
Verify that we store the input CSV and call the cohorting background
Verify that we store the input CSV and call the cohorting background
...
@@ -4990,8 +4998,8 @@ class TestBulkCohorting(SharedModuleStoreTestCase):
...
@@ -4990,8 +4998,8 @@ class TestBulkCohorting(SharedModuleStoreTestCase):
'username,email,cohort
\r
foo_username,bar_email,baz_cohort'
,
mock_store_upload
,
mock_cohort_task
'username,email,cohort
\r
foo_username,bar_email,baz_cohort'
,
mock_store_upload
,
mock_cohort_task
)
)
@patch
(
'instructor.views.api.instructor_task.api.submit_cohort_students'
)
@patch
(
'
lms.djangoapps.
instructor.views.api.instructor_task.api.submit_cohort_students'
)
@patch
(
'instructor.views.api.store_uploaded_file'
)
@patch
(
'
lms.djangoapps.
instructor.views.api.store_uploaded_file'
)
def
test_success_carriage_return_line_feed
(
self
,
mock_store_upload
,
mock_cohort_task
):
def
test_success_carriage_return_line_feed
(
self
,
mock_store_upload
,
mock_cohort_task
):
"""
"""
Verify that we store the input CSV and call the cohorting background
Verify that we store the input CSV and call the cohorting background
...
...
lms/djangoapps/instructor/tests/test_certificates.py
View file @
83011e1c
...
@@ -150,7 +150,7 @@ class CertificatesInstructorDashTest(SharedModuleStoreTestCase):
...
@@ -150,7 +150,7 @@ class CertificatesInstructorDashTest(SharedModuleStoreTestCase):
@contextlib.contextmanager
@contextlib.contextmanager
def
_certificate_status
(
self
,
description
,
status
):
def
_certificate_status
(
self
,
description
,
status
):
"""Configure the certificate status by mocking the certificates API. """
"""Configure the certificate status by mocking the certificates API. """
patched
=
'instructor.views.instructor_dashboard.certs_api.example_certificates_status'
patched
=
'
lms.djangoapps.
instructor.views.instructor_dashboard.certs_api.example_certificates_status'
with
mock
.
patch
(
patched
)
as
certs_api_status
:
with
mock
.
patch
(
patched
)
as
certs_api_status
:
cert_status
=
[{
cert_status
=
[{
'description'
:
description
,
'description'
:
description
,
...
...
lms/djangoapps/instructor/tests/test_enrollment.py
View file @
83011e1c
...
@@ -28,7 +28,7 @@ from student.roles import CourseCcxCoachRole
...
@@ -28,7 +28,7 @@ from student.roles import CourseCcxCoachRole
from
student.tests.factories
import
(
from
student.tests.factories
import
(
AdminFactory
AdminFactory
)
)
from
instructor.enrollment
import
(
from
lms.djangoapps.
instructor.enrollment
import
(
EmailEnrollmentState
,
EmailEnrollmentState
,
enroll_email
,
enroll_email
,
get_email_params
,
get_email_params
,
...
...
lms/djangoapps/instructor/tests/test_enrollment_store_provider.py
View file @
83011e1c
...
@@ -3,8 +3,8 @@ Exercises tests on the base_store_provider file
...
@@ -3,8 +3,8 @@ Exercises tests on the base_store_provider file
"""
"""
from
django.test
import
TestCase
from
django.test
import
TestCase
from
instructor.enrollment_report
import
AbstractEnrollmentReportProvider
from
lms.djangoapps.
instructor.enrollment_report
import
AbstractEnrollmentReportProvider
from
instructor.paidcourse_enrollment_report
import
PaidCourseEnrollmentReportProvider
from
lms.djangoapps.
instructor.paidcourse_enrollment_report
import
PaidCourseEnrollmentReportProvider
class
BadImplementationAbstractEnrollmentReportProvider
(
AbstractEnrollmentReportProvider
):
class
BadImplementationAbstractEnrollmentReportProvider
(
AbstractEnrollmentReportProvider
):
...
...
lms/djangoapps/instructor/tests/test_services.py
View file @
83011e1c
...
@@ -6,9 +6,9 @@ import json
...
@@ -6,9 +6,9 @@ import json
from
xmodule.modulestore.tests.django_utils
import
SharedModuleStoreTestCase
from
xmodule.modulestore.tests.django_utils
import
SharedModuleStoreTestCase
from
xmodule.modulestore.tests.factories
import
CourseFactory
from
xmodule.modulestore.tests.factories
import
CourseFactory
from
courseware.models
import
StudentModule
from
courseware.models
import
StudentModule
from
instructor.access
import
allow_access
from
lms.djangoapps.
instructor.access
import
allow_access
from
instructor.services
import
InstructorService
from
lms.djangoapps.
instructor.services
import
InstructorService
from
instructor.tests.test_tools
import
msk_from_problem_urlname
from
lms.djangoapps.
instructor.tests.test_tools
import
msk_from_problem_urlname
from
nose.plugins.attrib
import
attr
from
nose.plugins.attrib
import
attr
from
student.models
import
CourseEnrollment
from
student.models
import
CourseEnrollment
from
student.tests.factories
import
UserFactory
from
student.tests.factories
import
UserFactory
...
@@ -154,7 +154,7 @@ class InstructorServiceTests(SharedModuleStoreTestCase):
...
@@ -154,7 +154,7 @@ class InstructorServiceTests(SharedModuleStoreTestCase):
)
)
tags
=
[
"proctoring"
]
tags
=
[
"proctoring"
]
with
mock
.
patch
(
"instructor.services.create_zendesk_ticket"
)
as
mock_create_zendesk_ticket
:
with
mock
.
patch
(
"
lms.djangoapps.
instructor.services.create_zendesk_ticket"
)
as
mock_create_zendesk_ticket
:
self
.
service
.
send_support_notification
(
self
.
service
.
send_support_notification
(
course_id
=
unicode
(
self
.
course
.
id
),
course_id
=
unicode
(
self
.
course
.
id
),
exam_name
=
"test_exam"
,
exam_name
=
"test_exam"
,
...
...
lms/djangoapps/instructor/tests/views/test_instructor_dashboard.py
View file @
83011e1c
...
@@ -16,7 +16,7 @@ from edxmako.shortcuts import render_to_response
...
@@ -16,7 +16,7 @@ from edxmako.shortcuts import render_to_response
from
courseware.tabs
import
get_course_tab_list
from
courseware.tabs
import
get_course_tab_list
from
courseware.tests.factories
import
UserFactory
,
StudentModuleFactory
from
courseware.tests.factories
import
UserFactory
,
StudentModuleFactory
from
courseware.tests.helpers
import
LoginEnrollmentTestCase
from
courseware.tests.helpers
import
LoginEnrollmentTestCase
from
instructor.views.gradebook_api
import
calculate_page_info
from
lms.djangoapps.
instructor.views.gradebook_api
import
calculate_page_info
from
common.test.utils
import
XssTestMixin
from
common.test.utils
import
XssTestMixin
from
student.tests.factories
import
AdminFactory
,
CourseEnrollmentFactory
from
student.tests.factories
import
AdminFactory
,
CourseEnrollmentFactory
...
@@ -275,7 +275,7 @@ class TestInstructorDashboard(ModuleStoreTestCase, LoginEnrollmentTestCase, XssT
...
@@ -275,7 +275,7 @@ class TestInstructorDashboard(ModuleStoreTestCase, LoginEnrollmentTestCase, XssT
response
=
self
.
client
.
get
(
self
.
url
)
response
=
self
.
client
.
get
(
self
.
url
)
self
.
assertIn
(
'D: 0.5, C: 0.57, B: 0.63, A: 0.75'
,
response
.
content
)
self
.
assertIn
(
'D: 0.5, C: 0.57, B: 0.63, A: 0.75'
,
response
.
content
)
@patch
(
'instructor.views.gradebook_api.MAX_STUDENTS_PER_PAGE_GRADE_BOOK'
,
2
)
@patch
(
'
lms.djangoapps.
instructor.views.gradebook_api.MAX_STUDENTS_PER_PAGE_GRADE_BOOK'
,
2
)
def
test_calculate_page_info
(
self
):
def
test_calculate_page_info
(
self
):
page
=
calculate_page_info
(
offset
=
0
,
total_students
=
2
)
page
=
calculate_page_info
(
offset
=
0
,
total_students
=
2
)
self
.
assertEqual
(
page
[
"offset"
],
0
)
self
.
assertEqual
(
page
[
"offset"
],
0
)
...
@@ -284,8 +284,8 @@ class TestInstructorDashboard(ModuleStoreTestCase, LoginEnrollmentTestCase, XssT
...
@@ -284,8 +284,8 @@ class TestInstructorDashboard(ModuleStoreTestCase, LoginEnrollmentTestCase, XssT
self
.
assertEqual
(
page
[
"previous_offset"
],
None
)
self
.
assertEqual
(
page
[
"previous_offset"
],
None
)
self
.
assertEqual
(
page
[
"total_pages"
],
1
)
self
.
assertEqual
(
page
[
"total_pages"
],
1
)
@patch
(
'instructor.views.gradebook_api.render_to_response'
,
intercept_renderer
)
@patch
(
'
lms.djangoapps.
instructor.views.gradebook_api.render_to_response'
,
intercept_renderer
)
@patch
(
'instructor.views.gradebook_api.MAX_STUDENTS_PER_PAGE_GRADE_BOOK'
,
1
)
@patch
(
'
lms.djangoapps.
instructor.views.gradebook_api.MAX_STUDENTS_PER_PAGE_GRADE_BOOK'
,
1
)
def
test_spoc_gradebook_pages
(
self
):
def
test_spoc_gradebook_pages
(
self
):
for
i
in
xrange
(
2
):
for
i
in
xrange
(
2
):
username
=
"user_
%
d"
%
i
username
=
"user_
%
d"
%
i
...
...
lms/djangoapps/instructor/views/api.py
View file @
83011e1c
...
@@ -36,7 +36,7 @@ from util.file import (
...
@@ -36,7 +36,7 @@ from util.file import (
)
)
from
util.json_request
import
JsonResponse
,
JsonResponseBadRequest
from
util.json_request
import
JsonResponse
,
JsonResponseBadRequest
from
util.views
import
require_global_staff
from
util.views
import
require_global_staff
from
instructor.views.instructor_task_helpers
import
extract_email_features
,
extract_task_features
from
lms.djangoapps.
instructor.views.instructor_task_helpers
import
extract_email_features
,
extract_task_features
from
courseware.access
import
has_access
from
courseware.access
import
has_access
from
courseware.courses
import
get_course_with_access
,
get_course_by_id
from
courseware.courses
import
get_course_with_access
,
get_course_by_id
...
@@ -68,8 +68,8 @@ from student.models import (
...
@@ -68,8 +68,8 @@ from student.models import (
import
instructor_task.api
import
instructor_task.api
from
instructor_task.api_helper
import
AlreadyRunningError
from
instructor_task.api_helper
import
AlreadyRunningError
from
instructor_task.models
import
ReportStore
from
instructor_task.models
import
ReportStore
import
instructor.enrollment
as
enrollment
import
lms.djangoapps.
instructor.enrollment
as
enrollment
from
instructor.enrollment
import
(
from
lms.djangoapps.
instructor.enrollment
import
(
get_user_email_language
,
get_user_email_language
,
enroll_email
,
enroll_email
,
send_mail_to_student
,
send_mail_to_student
,
...
@@ -77,14 +77,14 @@ from instructor.enrollment import (
...
@@ -77,14 +77,14 @@ from instructor.enrollment import (
send_beta_role_email
,
send_beta_role_email
,
unenroll_email
,
unenroll_email
,
)
)
from
instructor.access
import
list_with_level
,
allow_access
,
revoke_access
,
ROLES
,
update_forum_role
from
lms.djangoapps.
instructor.access
import
list_with_level
,
allow_access
,
revoke_access
,
ROLES
,
update_forum_role
import
instructor_analytics.basic
import
instructor_analytics.basic
import
instructor_analytics.distributions
import
instructor_analytics.distributions
import
instructor_analytics.csvs
import
instructor_analytics.csvs
import
csv
import
csv
from
openedx.core.djangoapps.user_api.preferences.api
import
get_user_preference
,
set_user_preference
from
openedx.core.djangoapps.user_api.preferences.api
import
get_user_preference
,
set_user_preference
from
openedx.core.djangolib.markup
import
HTML
,
Text
from
openedx.core.djangolib.markup
import
HTML
,
Text
from
instructor.views
import
INVOICE_KEY
from
lms.djangoapps.
instructor.views
import
INVOICE_KEY
from
submissions
import
api
as
sub_api
# installed from the edx-submissions repository
from
submissions
import
api
as
sub_api
# installed from the edx-submissions repository
...
...
lms/djangoapps/instructor/views/api_urls.py
View file @
83011e1c
...
@@ -8,163 +8,163 @@ urlpatterns = patterns(
...
@@ -8,163 +8,163 @@ urlpatterns = patterns(
''
,
''
,
url
(
r'^students_update_enrollment$'
,
url
(
r'^students_update_enrollment$'
,
'instructor.views.api.students_update_enrollment'
,
name
=
"students_update_enrollment"
),
'
lms.djangoapps.
instructor.views.api.students_update_enrollment'
,
name
=
"students_update_enrollment"
),
url
(
r'^register_and_enroll_students$'
,
url
(
r'^register_and_enroll_students$'
,
'instructor.views.api.register_and_enroll_students'
,
name
=
"register_and_enroll_students"
),
'
lms.djangoapps.
instructor.views.api.register_and_enroll_students'
,
name
=
"register_and_enroll_students"
),
url
(
r'^list_course_role_members$'
,
url
(
r'^list_course_role_members$'
,
'instructor.views.api.list_course_role_members'
,
name
=
"list_course_role_members"
),
'
lms.djangoapps.
instructor.views.api.list_course_role_members'
,
name
=
"list_course_role_members"
),
url
(
r'^modify_access$'
,
url
(
r'^modify_access$'
,
'instructor.views.api.modify_access'
,
name
=
"modify_access"
),
'
lms.djangoapps.
instructor.views.api.modify_access'
,
name
=
"modify_access"
),
url
(
r'^bulk_beta_modify_access$'
,
url
(
r'^bulk_beta_modify_access$'
,
'instructor.views.api.bulk_beta_modify_access'
,
name
=
"bulk_beta_modify_access"
),
'
lms.djangoapps.
instructor.views.api.bulk_beta_modify_access'
,
name
=
"bulk_beta_modify_access"
),
url
(
r'^get_problem_responses$'
,
url
(
r'^get_problem_responses$'
,
'instructor.views.api.get_problem_responses'
,
name
=
"get_problem_responses"
),
'
lms.djangoapps.
instructor.views.api.get_problem_responses'
,
name
=
"get_problem_responses"
),
url
(
r'^get_grading_config$'
,
url
(
r'^get_grading_config$'
,
'instructor.views.api.get_grading_config'
,
name
=
"get_grading_config"
),
'
lms.djangoapps.
instructor.views.api.get_grading_config'
,
name
=
"get_grading_config"
),
url
(
r'^get_students_features(?P<csv>/csv)?$'
,
url
(
r'^get_students_features(?P<csv>/csv)?$'
,
'instructor.views.api.get_students_features'
,
name
=
"get_students_features"
),
'
lms.djangoapps.
instructor.views.api.get_students_features'
,
name
=
"get_students_features"
),
url
(
r'^get_issued_certificates/$'
,
url
(
r'^get_issued_certificates/$'
,
'instructor.views.api.get_issued_certificates'
,
name
=
"get_issued_certificates"
),
'
lms.djangoapps.
instructor.views.api.get_issued_certificates'
,
name
=
"get_issued_certificates"
),
url
(
r'^get_students_who_may_enroll$'
,
url
(
r'^get_students_who_may_enroll$'
,
'instructor.views.api.get_students_who_may_enroll'
,
name
=
"get_students_who_may_enroll"
),
'
lms.djangoapps.
instructor.views.api.get_students_who_may_enroll'
,
name
=
"get_students_who_may_enroll"
),
url
(
r'^get_user_invoice_preference$'
,
url
(
r'^get_user_invoice_preference$'
,
'instructor.views.api.get_user_invoice_preference'
,
name
=
"get_user_invoice_preference"
),
'
lms.djangoapps.
instructor.views.api.get_user_invoice_preference'
,
name
=
"get_user_invoice_preference"
),
url
(
r'^get_sale_records(?P<csv>/csv)?$'
,
url
(
r'^get_sale_records(?P<csv>/csv)?$'
,
'instructor.views.api.get_sale_records'
,
name
=
"get_sale_records"
),
'
lms.djangoapps.
instructor.views.api.get_sale_records'
,
name
=
"get_sale_records"
),
url
(
r'^get_sale_order_records$'
,
url
(
r'^get_sale_order_records$'
,
'instructor.views.api.get_sale_order_records'
,
name
=
"get_sale_order_records"
),
'
lms.djangoapps.
instructor.views.api.get_sale_order_records'
,
name
=
"get_sale_order_records"
),
url
(
r'^sale_validation_url$'
,
url
(
r'^sale_validation_url$'
,
'instructor.views.api.sale_validation'
,
name
=
"sale_validation"
),
'
lms.djangoapps.
instructor.views.api.sale_validation'
,
name
=
"sale_validation"
),
url
(
r'^get_anon_ids$'
,
url
(
r'^get_anon_ids$'
,
'instructor.views.api.get_anon_ids'
,
name
=
"get_anon_ids"
),
'
lms.djangoapps.
instructor.views.api.get_anon_ids'
,
name
=
"get_anon_ids"
),
url
(
r'^get_student_progress_url$'
,
url
(
r'^get_student_progress_url$'
,
'instructor.views.api.get_student_progress_url'
,
name
=
"get_student_progress_url"
),
'
lms.djangoapps.
instructor.views.api.get_student_progress_url'
,
name
=
"get_student_progress_url"
),
url
(
r'^reset_student_attempts$'
,
url
(
r'^reset_student_attempts$'
,
'instructor.views.api.reset_student_attempts'
,
name
=
"reset_student_attempts"
),
'
lms.djangoapps.
instructor.views.api.reset_student_attempts'
,
name
=
"reset_student_attempts"
),
url
(
url
(
r'^rescore_problem$'
,
r'^rescore_problem$'
,
'instructor.views.api.rescore_problem'
,
'
lms.djangoapps.
instructor.views.api.rescore_problem'
,
name
=
"rescore_problem"
name
=
"rescore_problem"
),
url
(
),
url
(
r'^reset_student_attempts_for_entrance_exam$'
,
r'^reset_student_attempts_for_entrance_exam$'
,
'instructor.views.api.reset_student_attempts_for_entrance_exam'
,
'
lms.djangoapps.
instructor.views.api.reset_student_attempts_for_entrance_exam'
,
name
=
"reset_student_attempts_for_entrance_exam"
name
=
"reset_student_attempts_for_entrance_exam"
),
url
(
),
url
(
r'^rescore_entrance_exam$'
,
r'^rescore_entrance_exam$'
,
'instructor.views.api.rescore_entrance_exam'
,
'
lms.djangoapps.
instructor.views.api.rescore_entrance_exam'
,
name
=
"rescore_entrance_exam"
name
=
"rescore_entrance_exam"
),
url
(
),
url
(
r'^list_entrance_exam_instructor_tasks'
,
r'^list_entrance_exam_instructor_tasks'
,
'instructor.views.api.list_entrance_exam_instructor_tasks'
,
'
lms.djangoapps.
instructor.views.api.list_entrance_exam_instructor_tasks'
,
name
=
"list_entrance_exam_instructor_tasks"
name
=
"list_entrance_exam_instructor_tasks"
),
url
(
),
url
(
r'^mark_student_can_skip_entrance_exam'
,
r'^mark_student_can_skip_entrance_exam'
,
'instructor.views.api.mark_student_can_skip_entrance_exam'
,
'
lms.djangoapps.
instructor.views.api.mark_student_can_skip_entrance_exam'
,
name
=
"mark_student_can_skip_entrance_exam"
name
=
"mark_student_can_skip_entrance_exam"
),
),
url
(
r'^list_instructor_tasks$'
,
url
(
r'^list_instructor_tasks$'
,
'instructor.views.api.list_instructor_tasks'
,
name
=
"list_instructor_tasks"
),
'
lms.djangoapps.
instructor.views.api.list_instructor_tasks'
,
name
=
"list_instructor_tasks"
),
url
(
r'^list_background_email_tasks$'
,
url
(
r'^list_background_email_tasks$'
,
'instructor.views.api.list_background_email_tasks'
,
name
=
"list_background_email_tasks"
),
'
lms.djangoapps.
instructor.views.api.list_background_email_tasks'
,
name
=
"list_background_email_tasks"
),
url
(
r'^list_email_content$'
,
url
(
r'^list_email_content$'
,
'instructor.views.api.list_email_content'
,
name
=
"list_email_content"
),
'
lms.djangoapps.
instructor.views.api.list_email_content'
,
name
=
"list_email_content"
),
url
(
r'^list_forum_members$'
,
url
(
r'^list_forum_members$'
,
'instructor.views.api.list_forum_members'
,
name
=
"list_forum_members"
),
'
lms.djangoapps.
instructor.views.api.list_forum_members'
,
name
=
"list_forum_members"
),
url
(
r'^update_forum_role_membership$'
,
url
(
r'^update_forum_role_membership$'
,
'instructor.views.api.update_forum_role_membership'
,
name
=
"update_forum_role_membership"
),
'
lms.djangoapps.
instructor.views.api.update_forum_role_membership'
,
name
=
"update_forum_role_membership"
),
url
(
r'^send_email$'
,
url
(
r'^send_email$'
,
'instructor.views.api.send_email'
,
name
=
"send_email"
),
'
lms.djangoapps.
instructor.views.api.send_email'
,
name
=
"send_email"
),
url
(
r'^change_due_date$'
,
'instructor.views.api.change_due_date'
,
url
(
r'^change_due_date$'
,
'
lms.djangoapps.
instructor.views.api.change_due_date'
,
name
=
'change_due_date'
),
name
=
'change_due_date'
),
url
(
r'^reset_due_date$'
,
'instructor.views.api.reset_due_date'
,
url
(
r'^reset_due_date$'
,
'
lms.djangoapps.
instructor.views.api.reset_due_date'
,
name
=
'reset_due_date'
),
name
=
'reset_due_date'
),
url
(
r'^show_unit_extensions$'
,
'instructor.views.api.show_unit_extensions'
,
url
(
r'^show_unit_extensions$'
,
'
lms.djangoapps.
instructor.views.api.show_unit_extensions'
,
name
=
'show_unit_extensions'
),
name
=
'show_unit_extensions'
),
url
(
r'^show_student_extensions$'
,
'instructor.views.api.show_student_extensions'
,
url
(
r'^show_student_extensions$'
,
'
lms.djangoapps.
instructor.views.api.show_student_extensions'
,
name
=
'show_student_extensions'
),
name
=
'show_student_extensions'
),
# proctored exam downloads...
# proctored exam downloads...
url
(
r'^get_proctored_exam_results$'
,
url
(
r'^get_proctored_exam_results$'
,
'instructor.views.api.get_proctored_exam_results'
,
name
=
"get_proctored_exam_results"
),
'
lms.djangoapps.
instructor.views.api.get_proctored_exam_results'
,
name
=
"get_proctored_exam_results"
),
# Grade downloads...
# Grade downloads...
url
(
r'^list_report_downloads$'
,
url
(
r'^list_report_downloads$'
,
'instructor.views.api.list_report_downloads'
,
name
=
"list_report_downloads"
),
'
lms.djangoapps.
instructor.views.api.list_report_downloads'
,
name
=
"list_report_downloads"
),
url
(
r'calculate_grades_csv$'
,
url
(
r'calculate_grades_csv$'
,
'instructor.views.api.calculate_grades_csv'
,
name
=
"calculate_grades_csv"
),
'
lms.djangoapps.
instructor.views.api.calculate_grades_csv'
,
name
=
"calculate_grades_csv"
),
url
(
r'problem_grade_report$'
,
url
(
r'problem_grade_report$'
,
'instructor.views.api.problem_grade_report'
,
name
=
"problem_grade_report"
),
'
lms.djangoapps.
instructor.views.api.problem_grade_report'
,
name
=
"problem_grade_report"
),
# Financial Report downloads..
# Financial Report downloads..
url
(
r'^list_financial_report_downloads$'
,
url
(
r'^list_financial_report_downloads$'
,
'instructor.views.api.list_financial_report_downloads'
,
name
=
"list_financial_report_downloads"
),
'
lms.djangoapps.
instructor.views.api.list_financial_report_downloads'
,
name
=
"list_financial_report_downloads"
),
# Registration Codes..
# Registration Codes..
url
(
r'get_registration_codes$'
,
url
(
r'get_registration_codes$'
,
'instructor.views.api.get_registration_codes'
,
name
=
"get_registration_codes"
),
'
lms.djangoapps.
instructor.views.api.get_registration_codes'
,
name
=
"get_registration_codes"
),
url
(
r'generate_registration_codes$'
,
url
(
r'generate_registration_codes$'
,
'instructor.views.api.generate_registration_codes'
,
name
=
"generate_registration_codes"
),
'
lms.djangoapps.
instructor.views.api.generate_registration_codes'
,
name
=
"generate_registration_codes"
),
url
(
r'active_registration_codes$'
,
url
(
r'active_registration_codes$'
,
'instructor.views.api.active_registration_codes'
,
name
=
"active_registration_codes"
),
'
lms.djangoapps.
instructor.views.api.active_registration_codes'
,
name
=
"active_registration_codes"
),
url
(
r'spent_registration_codes$'
,
url
(
r'spent_registration_codes$'
,
'instructor.views.api.spent_registration_codes'
,
name
=
"spent_registration_codes"
),
'
lms.djangoapps.
instructor.views.api.spent_registration_codes'
,
name
=
"spent_registration_codes"
),
# Reports..
# Reports..
url
(
r'get_enrollment_report$'
,
url
(
r'get_enrollment_report$'
,
'instructor.views.api.get_enrollment_report'
,
name
=
"get_enrollment_report"
),
'
lms.djangoapps.
instructor.views.api.get_enrollment_report'
,
name
=
"get_enrollment_report"
),
url
(
r'get_exec_summary_report$'
,
url
(
r'get_exec_summary_report$'
,
'instructor.views.api.get_exec_summary_report'
,
name
=
"get_exec_summary_report"
),
'
lms.djangoapps.
instructor.views.api.get_exec_summary_report'
,
name
=
"get_exec_summary_report"
),
url
(
r'get_course_survey_results$'
,
url
(
r'get_course_survey_results$'
,
'instructor.views.api.get_course_survey_results'
,
name
=
"get_course_survey_results"
),
'
lms.djangoapps.
instructor.views.api.get_course_survey_results'
,
name
=
"get_course_survey_results"
),
url
(
r'export_ora2_data'
,
url
(
r'export_ora2_data'
,
'instructor.views.api.export_ora2_data'
,
name
=
"export_ora2_data"
),
'
lms.djangoapps.
instructor.views.api.export_ora2_data'
,
name
=
"export_ora2_data"
),
# Coupon Codes..
# Coupon Codes..
url
(
r'get_coupon_codes'
,
url
(
r'get_coupon_codes'
,
'instructor.views.api.get_coupon_codes'
,
name
=
"get_coupon_codes"
),
'
lms.djangoapps.
instructor.views.api.get_coupon_codes'
,
name
=
"get_coupon_codes"
),
# spoc gradebook
# spoc gradebook
url
(
r'^gradebook$'
,
url
(
r'^gradebook$'
,
'instructor.views.gradebook_api.spoc_gradebook'
,
name
=
'spoc_gradebook'
),
'
lms.djangoapps.
instructor.views.gradebook_api.spoc_gradebook'
,
name
=
'spoc_gradebook'
),
url
(
r'^gradebook/(?P<offset>[0-9]+)$'
,
url
(
r'^gradebook/(?P<offset>[0-9]+)$'
,
'instructor.views.gradebook_api.spoc_gradebook'
,
name
=
'spoc_gradebook'
),
'
lms.djangoapps.
instructor.views.gradebook_api.spoc_gradebook'
,
name
=
'spoc_gradebook'
),
# Cohort management
# Cohort management
url
(
r'add_users_to_cohorts$'
,
url
(
r'add_users_to_cohorts$'
,
'instructor.views.api.add_users_to_cohorts'
,
name
=
"add_users_to_cohorts"
),
'
lms.djangoapps.
instructor.views.api.add_users_to_cohorts'
,
name
=
"add_users_to_cohorts"
),
# Certificates
# Certificates
url
(
r'^generate_example_certificates$'
,
url
(
r'^generate_example_certificates$'
,
'instructor.views.api.generate_example_certificates'
,
'
lms.djangoapps.
instructor.views.api.generate_example_certificates'
,
name
=
'generate_example_certificates'
),
name
=
'generate_example_certificates'
),
url
(
r'^enable_certificate_generation$'
,
url
(
r'^enable_certificate_generation$'
,
'instructor.views.api.enable_certificate_generation'
,
'
lms.djangoapps.
instructor.views.api.enable_certificate_generation'
,
name
=
'enable_certificate_generation'
),
name
=
'enable_certificate_generation'
),
url
(
r'^start_certificate_generation'
,
url
(
r'^start_certificate_generation'
,
'instructor.views.api.start_certificate_generation'
,
'
lms.djangoapps.
instructor.views.api.start_certificate_generation'
,
name
=
'start_certificate_generation'
),
name
=
'start_certificate_generation'
),
url
(
r'^start_certificate_regeneration'
,
url
(
r'^start_certificate_regeneration'
,
'instructor.views.api.start_certificate_regeneration'
,
'
lms.djangoapps.
instructor.views.api.start_certificate_regeneration'
,
name
=
'start_certificate_regeneration'
),
name
=
'start_certificate_regeneration'
),
url
(
r'^certificate_exception_view/$'
,
url
(
r'^certificate_exception_view/$'
,
'instructor.views.api.certificate_exception_view'
,
'
lms.djangoapps.
instructor.views.api.certificate_exception_view'
,
name
=
'certificate_exception_view'
),
name
=
'certificate_exception_view'
),
url
(
r'^generate_certificate_exceptions/(?P<generate_for>[^/]*)'
,
url
(
r'^generate_certificate_exceptions/(?P<generate_for>[^/]*)'
,
'instructor.views.api.generate_certificate_exceptions'
,
'
lms.djangoapps.
instructor.views.api.generate_certificate_exceptions'
,
name
=
'generate_certificate_exceptions'
),
name
=
'generate_certificate_exceptions'
),
url
(
r'^generate_bulk_certificate_exceptions'
,
url
(
r'^generate_bulk_certificate_exceptions'
,
'instructor.views.api.generate_bulk_certificate_exceptions'
,
'
lms.djangoapps.
instructor.views.api.generate_bulk_certificate_exceptions'
,
name
=
'generate_bulk_certificate_exceptions'
),
name
=
'generate_bulk_certificate_exceptions'
),
url
(
r'^certificate_invalidation_view/$'
,
url
(
r'^certificate_invalidation_view/$'
,
'instructor.views.api.certificate_invalidation_view'
,
'
lms.djangoapps.
instructor.views.api.certificate_invalidation_view'
,
name
=
'certificate_invalidation_view'
),
name
=
'certificate_invalidation_view'
),
)
)
lms/djangoapps/instructor/views/gradebook_api.py
View file @
83011e1c
...
@@ -13,7 +13,7 @@ from opaque_keys.edx.keys import CourseKey
...
@@ -13,7 +13,7 @@ from opaque_keys.edx.keys import CourseKey
from
edxmako.shortcuts
import
render_to_response
from
edxmako.shortcuts
import
render_to_response
from
courseware.courses
import
get_course_with_access
from
courseware.courses
import
get_course_with_access
from
instructor.views.api
import
require_level
from
lms.djangoapps.
instructor.views.api
import
require_level
from
lms.djangoapps.grades
import
course_grades
from
lms.djangoapps.grades
import
course_grades
from
xmodule.modulestore.django
import
modulestore
from
xmodule.modulestore.django
import
modulestore
...
...
lms/djangoapps/instructor/views/registration_codes.py
View file @
83011e1c
...
@@ -3,10 +3,10 @@ E-commerce Tab Instructor Dashboard Query Registration Code Status.
...
@@ -3,10 +3,10 @@ E-commerce Tab Instructor Dashboard Query Registration Code Status.
"""
"""
from
django.core.urlresolvers
import
reverse
from
django.core.urlresolvers
import
reverse
from
django.views.decorators.http
import
require_GET
,
require_POST
from
django.views.decorators.http
import
require_GET
,
require_POST
from
instructor.enrollment
import
get_email_params
,
send_mail_to_student
from
lms.djangoapps.
instructor.enrollment
import
get_email_params
,
send_mail_to_student
from
django.utils.translation
import
ugettext
as
_
from
django.utils.translation
import
ugettext
as
_
from
courseware.courses
import
get_course_by_id
from
courseware.courses
import
get_course_by_id
from
instructor.views.api
import
require_level
from
lms.djangoapps.
instructor.views.api
import
require_level
from
student.models
import
CourseEnrollment
from
student.models
import
CourseEnrollment
from
util.json_request
import
JsonResponse
from
util.json_request
import
JsonResponse
from
shoppingcart.models
import
CourseRegistrationCode
,
RegistrationCodeRedemption
from
shoppingcart.models
import
CourseRegistrationCode
,
RegistrationCodeRedemption
...
...
lms/djangoapps/instructor_task/tasks_helper.py
View file @
83011e1c
...
@@ -24,7 +24,7 @@ import dogstats_wrapper as dog_stats_api
...
@@ -24,7 +24,7 @@ import dogstats_wrapper as dog_stats_api
from
pytz
import
UTC
from
pytz
import
UTC
from
StringIO
import
StringIO
from
StringIO
import
StringIO
from
edxmako.shortcuts
import
render_to_string
from
edxmako.shortcuts
import
render_to_string
from
instructor.paidcourse_enrollment_report
import
PaidCourseEnrollmentReportProvider
from
lms.djangoapps.
instructor.paidcourse_enrollment_report
import
PaidCourseEnrollmentReportProvider
from
shoppingcart.models
import
(
from
shoppingcart.models
import
(
PaidCourseRegistration
,
CourseRegCodeItem
,
InvoiceTransaction
,
PaidCourseRegistration
,
CourseRegCodeItem
,
InvoiceTransaction
,
Invoice
,
CouponRedemption
,
RegistrationCodeRedemption
,
CourseRegistrationCode
Invoice
,
CouponRedemption
,
RegistrationCodeRedemption
,
CourseRegistrationCode
...
...
lms/djangoapps/shoppingcart/models.py
View file @
83011e1c
...
@@ -1792,7 +1792,7 @@ class CourseRegCodeItem(OrderItem):
...
@@ -1792,7 +1792,7 @@ class CourseRegCodeItem(OrderItem):
# we should ultimately refactor code to have save_registration_code in this models.py
# we should ultimately refactor code to have save_registration_code in this models.py
# file, but there's also a shared dependency on a random string generator which
# file, but there's also a shared dependency on a random string generator which
# is in another PR (for another feature)
# is in another PR (for another feature)
from
instructor.views.api
import
save_registration_code
from
lms.djangoapps.
instructor.views.api
import
save_registration_code
for
i
in
range
(
total_registration_codes
):
# pylint: disable=unused-variable
for
i
in
range
(
total_registration_codes
):
# pylint: disable=unused-variable
save_registration_code
(
self
.
user
,
self
.
course_id
,
self
.
mode
,
order
=
self
.
order
)
save_registration_code
(
self
.
user
,
self
.
course_id
,
self
.
mode
,
order
=
self
.
order
)
...
...
lms/envs/common.py
View file @
83011e1c
...
@@ -1924,7 +1924,7 @@ INSTALLED_APPS = (
...
@@ -1924,7 +1924,7 @@ INSTALLED_APPS = (
'util'
,
'util'
,
'certificates'
,
'certificates'
,
'dashboard'
,
'dashboard'
,
'instructor'
,
'
lms.djangoapps.
instructor'
,
'instructor_task'
,
'instructor_task'
,
'openedx.core.djangoapps.course_groups'
,
'openedx.core.djangoapps.course_groups'
,
'bulk_email'
,
'bulk_email'
,
...
...
lms/startup.py
View file @
83011e1c
...
@@ -69,7 +69,7 @@ def run():
...
@@ -69,7 +69,7 @@ def run():
# Import these here to avoid circular dependencies of the form:
# Import these here to avoid circular dependencies of the form:
# edx-platform app --> DRF --> django translation --> edx-platform app
# edx-platform app --> DRF --> django translation --> edx-platform app
from
edx_proctoring.runtime
import
set_runtime_service
from
edx_proctoring.runtime
import
set_runtime_service
from
instructor.services
import
InstructorService
from
lms.djangoapps.
instructor.services
import
InstructorService
from
openedx.core.djangoapps.credit.services
import
CreditService
from
openedx.core.djangoapps.credit.services
import
CreditService
set_runtime_service
(
'credit'
,
CreditService
())
set_runtime_service
(
'credit'
,
CreditService
())
...
...
lms/urls.py
View file @
83011e1c
...
@@ -230,12 +230,12 @@ COURSE_URLS = patterns(
...
@@ -230,12 +230,12 @@ COURSE_URLS = patterns(
''
,
''
,
url
(
url
(
r'^look_up_registration_code$'
,
r'^look_up_registration_code$'
,
'instructor.views.registration_codes.look_up_registration_code'
,
'
lms.djangoapps.
instructor.views.registration_codes.look_up_registration_code'
,
name
=
'look_up_registration_code'
,
name
=
'look_up_registration_code'
,
),
),
url
(
url
(
r'^registration_code_details$'
,
r'^registration_code_details$'
,
'instructor.views.registration_codes.registration_code_details'
,
'
lms.djangoapps.
instructor.views.registration_codes.registration_code_details'
,
name
=
'registration_code_details'
,
name
=
'registration_code_details'
,
),
),
)
)
...
@@ -485,7 +485,7 @@ urlpatterns += (
...
@@ -485,7 +485,7 @@ urlpatterns += (
r'^courses/{}/instructor$'
.
format
(
r'^courses/{}/instructor$'
.
format
(
settings
.
COURSE_ID_PATTERN
,
settings
.
COURSE_ID_PATTERN
,
),
),
'instructor.views.instructor_dashboard.instructor_dashboard_2'
,
'
lms.djangoapps.
instructor.views.instructor_dashboard.instructor_dashboard_2'
,
name
=
'instructor_dashboard'
,
name
=
'instructor_dashboard'
,
),
),
...
@@ -494,40 +494,40 @@ urlpatterns += (
...
@@ -494,40 +494,40 @@ urlpatterns += (
r'^courses/{}/set_course_mode_price$'
.
format
(
r'^courses/{}/set_course_mode_price$'
.
format
(
settings
.
COURSE_ID_PATTERN
,
settings
.
COURSE_ID_PATTERN
,
),
),
'instructor.views.instructor_dashboard.set_course_mode_price'
,
'
lms.djangoapps.
instructor.views.instructor_dashboard.set_course_mode_price'
,
name
=
'set_course_mode_price'
,
name
=
'set_course_mode_price'
,
),
),
url
(
url
(
r'^courses/{}/instructor/api/'
.
format
(
r'^courses/{}/instructor/api/'
.
format
(
settings
.
COURSE_ID_PATTERN
,
settings
.
COURSE_ID_PATTERN
,
),
),
include
(
'instructor.views.api_urls'
)),
include
(
'
lms.djangoapps.
instructor.views.api_urls'
)),
url
(
url
(
r'^courses/{}/remove_coupon$'
.
format
(
r'^courses/{}/remove_coupon$'
.
format
(
settings
.
COURSE_ID_PATTERN
,
settings
.
COURSE_ID_PATTERN
,
),
),
'instructor.views.coupons.remove_coupon'
,
'
lms.djangoapps.
instructor.views.coupons.remove_coupon'
,
name
=
'remove_coupon'
,
name
=
'remove_coupon'
,
),
),
url
(
url
(
r'^courses/{}/add_coupon$'
.
format
(
r'^courses/{}/add_coupon$'
.
format
(
settings
.
COURSE_ID_PATTERN
,
settings
.
COURSE_ID_PATTERN
,
),
),
'instructor.views.coupons.add_coupon'
,
'
lms.djangoapps.
instructor.views.coupons.add_coupon'
,
name
=
'add_coupon'
,
name
=
'add_coupon'
,
),
),
url
(
url
(
r'^courses/{}/update_coupon$'
.
format
(
r'^courses/{}/update_coupon$'
.
format
(
settings
.
COURSE_ID_PATTERN
,
settings
.
COURSE_ID_PATTERN
,
),
),
'instructor.views.coupons.update_coupon'
,
'
lms.djangoapps.
instructor.views.coupons.update_coupon'
,
name
=
'update_coupon'
,
name
=
'update_coupon'
,
),
),
url
(
url
(
r'^courses/{}/get_coupon_info$'
.
format
(
r'^courses/{}/get_coupon_info$'
.
format
(
settings
.
COURSE_ID_PATTERN
,
settings
.
COURSE_ID_PATTERN
,
),
),
'instructor.views.coupons.get_coupon_info'
,
'
lms.djangoapps.
instructor.views.coupons.get_coupon_info'
,
name
=
'get_coupon_info'
,
name
=
'get_coupon_info'
,
),
),
...
...
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