Commit Graph

64 Commits

Author SHA1 Message Date
Simon Chen
4c5d56ef06 MST-682 Add external_user_key to the student profile CSV (#27091)
* MST-682 Add external_user_key to the student profile CSV
This is a request from some Masters school partners. They would like to download the student enrolled list with the Masters external_user_key data referenced. This way, the schools can properly match the students enrolled in the course with the students enrolled through Masters enrollment system
2021-03-22 14:25:34 -04:00
M. Zulqarnain
f4a5af29d3 pyupgrade in program_enrollments (#26597) 2021-02-22 12:58:16 +05:00
Aarif
944df92787 replaced unittest assertions pytest assertions (#26548) 2021-02-19 15:58:45 +05:00
Awais Qureshi
ea26268b0a BOM-2285
Apply pylint-amnesty.
2021-02-02 12:09:42 +05:00
Kyle McCormick
151bd13666 Use full names for common.djangoapps imports; warn when using old style (#25477)
* Generate common/djangoapps import shims for LMS
* Generate common/djangoapps import shims for Studio
* Stop appending project root to sys.path
* Stop appending common/djangoapps to sys.path
* Import from common.djangoapps.course_action_state instead of course_action_state
* Import from common.djangoapps.course_modes instead of course_modes
* Import from common.djangoapps.database_fixups instead of database_fixups
* Import from common.djangoapps.edxmako instead of edxmako
* Import from common.djangoapps.entitlements instead of entitlements
* Import from common.djangoapps.pipline_mako instead of pipeline_mako
* Import from common.djangoapps.static_replace instead of static_replace
* Import from common.djangoapps.student instead of student
* Import from common.djangoapps.terrain instead of terrain
* Import from common.djangoapps.third_party_auth instead of third_party_auth
* Import from common.djangoapps.track instead of track
* Import from common.djangoapps.util instead of util
* Import from common.djangoapps.xblock_django instead of xblock_django
* Add empty common/djangoapps/__init__.py to fix pytest collection
* Fix pylint formatting violations
* Exclude import_shims/ directory tree from linting
2020-11-10 07:02:01 -05:00
Michael Roytman
38c255dbd2 Enhance the Link Program Enrollments Support Tool to handle the case of linking a learner to a ProgramEnrollment that is already linked to a different edX account.
In this case,
* unenroll the currently linked learner from the courses associated with related ProgramCourseEnrollments
* for each course the is enrolled in as part of a ProgramCourseEnrollment, if the coures has an audit track, then move the enrollment into the audit track. Otherwise, keep the learner's enrollment in the existing track.
* link the new user to the ProgramEnrollment
* enroll the new user in the Master's track in the courses associated with related ProgramCourseEnrollments
2020-05-06 10:15:42 -04:00
Kyle McCormick
a86576e69b Fix isort and pylint violations in program_enrollments
Run isort -rc lms/djangoapps/program_enrollments
Run pylint lms/djangoapps/program_enrollment and fix messages.

Stop pylint from complaining about DictFactoryBase instances
2020-05-04 09:26:23 -04:00
Aarif
98af9ce418 remove useless-supression warnings 2020-05-01 19:42:15 +05:00
Zachary Hancock
f9bd748169 remove bulk write of CourseAccessRoleAssignment (#23849) 2020-04-30 11:05:15 -04:00
Michael Roytman
316e76f7e9 realize CourseAccessRoles for a user when an LMS user is linked to their external_user_key 2020-04-17 18:16:58 -04:00
Simon Chen
fe1ef21bcd MST-187 return course staff role data for ProgramCourseEnrollment get API 2020-04-14 13:47:12 -04:00
Zachary Hancock
f0d7ff9025 Write course_staff role on enrollment (#23677) 2020-04-13 14:13:24 -04:00
Simon Chen
0b90de1d94 MST-157 PART-2 Complete the functionality of searching for user info on program enrollment. The search result will be displayed on support tool's frontend. 2020-03-19 20:50:47 -04:00
Zachary Hancock
2325b3af7a history on bulk create of enrollments (#23389)
fixes bug where bulk creation of enrollments caused no new history records to be created
2020-03-13 12:55:58 -04:00
Simon Chen
eb3e36b822 MST-121 We should allow the business case where a learner can be enrolled into a program, then unenrolled, then enroll into another program with the same course 2020-03-03 14:39:57 -05:00
Feanil Patel
8a7159a324 Fix other pep8 violations. 2019-12-30 13:01:55 -05:00
Feanil Patel
9cf2f9f298 Run 2to3 -f future . -w
This will remove imports from __future__ that are no longer needed.

https://docs.python.org/3.5/library/2to3.html#2to3fixer-future
2019-12-30 10:35:30 -05:00
Matt Hughes
b14ce70053 Add program enrollment status option: ended
We'd like to add this status to help distinguish between learners
who've graduated from the program and learners who warranted some sort
of removal from the program.

JIRA:EDUCATOR-4702
2019-10-15 12:47:20 -04:00
Chris Pappas
918b70f9a1 ENT-2294 | Removing wrapper api in program_enrollments app that edx-enterprise will no longer use (#21763) 2019-09-25 10:55:43 -04:00
Kyle McCormick
da08357d89 Revert "Revert "Create Python API for program_enrollments: Part IV"" (#21759)
This reverts commit a67b9f70a16a0f16a842aad84754b245a2480b5f,
reinstating commit cf78660ed35712f9bb7c112f70411179070d7382.
The original commit was reverted because I thought I found
bugs in it while verifying it on Stage, but it turns out that
it was simply misconfigured Stage data that causing errors.

The original commit's message has has been copied below:

This commit completes the program_enrollments LMS app
Python API for the time being. It does the following:
* Add bulk-lookup of users by external key in api/reading.py
* Add bulk-writing of program enrollments in api/writing.py
* Move grade-reading to api/grades.py
* Refactor api/linking.py to use api/writing.py
* Refactor signals.py to use api/linking.py
* Update rest_api/v1/views.py to utilize all these changes
* Update linking management command and support tool to use API
* Remove outdated tests from test_models.py
* Misc. cleanup

EDUCATOR-4321
2019-09-24 10:49:54 -04:00
Chris Pappas
4c9af183cb ENT-2294 | Moving utility functions in program enrollments to places … (#21752)
* ENT-2294 | Moving utility functions in program enrollments to places related to the data they manipulate

* updating a mock path

* minor test fix
2019-09-24 10:07:38 -04:00
Kyle McCormick
775d2fd807 Revert "Create Python API for program_enrollments: Part IV"
This reverts commit af4e7a348a.

After merging the above commit, I was seeing 'internal-error's
on Stage in responses to the Registrar API. I am temporarily
reverting it until I can figure out a fix.
2019-09-23 09:39:01 -04:00
Kyle McCormick
af4e7a348a Create Python API for program_enrollments: Part IV
This commit completes the program_enrollments LMS app
Python API for the time being. It does the following:
* Add bulk-lookup of users by external key in api/reading.py
* Add bulk-writing of program enrollments in api/writing.py
* Move grade-reading to api/grades.py
* Refactor api/linking.py to use api/writing.py
* Refactor signals.py to use api/linking.py
* Update rest_api/v1/views.py to utilize all these changes
* Update linking management command and support tool to use API
* Remove outdated tests from test_models.py
* Misc. cleanup

EDUCATOR-4321
2019-09-20 09:55:13 -04:00
Kyle McCormick
14d650a522 Style fix: de-dent docstring in linking.py 2019-09-20 09:55:13 -04:00
Kyle McCormick
358f989131 Create Python API for program_enrollments: Part III
This is the third in a series of commits to create
a Python API for the LMS program_enrollments app.
It does the following:
* Creates api/ folder.
* Moves link_program_enrollments.py to api/linking.py
* Creates api/reading.py for enrollment-fetching
  functions.
* Updates rest of app to use api/reading.py when
  it was going directly through the models before.
* Other misc. cleanup (isorting, unicode_literals,
  line breaks, etc).

Still to do:
* Create api/writing.py and update app to use it instead
  of going directly through models.
* Create api/reset.py and api/expire.py, which the management
  commands call out to.

EDUCATOR-4321
2019-09-12 14:54:03 -04:00
Brittney Exline
90e5fa90b9 ENT-2230 Fix import errors by adding __init__.py file 2019-09-09 13:35:40 -06:00
Kyle McCormick
52be01a577 Document temporary program_enrollments API to edx-enterprise (#21605)
See https://github.com/edx/edx-platform/pull/21511#pullrequestreview-285556560
for more context.
2019-09-09 13:12:31 -04:00
Brittney Exline
d35218a820 ENT-2230 Upgrade edx-enterprise to 1.9.12 2019-09-09 08:52:01 -06:00
Kyle McCormick
ea5652010c Create Python API for program_enrollments: Part I (#21511)
This is the first in a series of commits to create
a Python API for the LMS program_enrollments app.
We do some general refactoring, renaming, and clean-up
in order to move toward the creation of that API.

EDUCATOR-4321
2019-09-04 14:06:00 -04:00
Jansen Kantor
9e97e5107e Jkantor/overview active (#21494)
* filter for active course enrollments
2019-08-28 13:16:09 -04:00
Kyle McCormick
a8e4461ef7 Return absolute URIs from program_enrollments API responses (#21474)
Issues were caused in Learner Portal from inconsistency
in whether URLs returned by API calls were absolute
or relative. This commit standardizes them to all be
absolute.
2019-08-28 12:57:46 -04:00
Kyle McCormick
708e08930f Fix program course enrollment overview docstring (#21472)
The program course enrollment overview endpoint says
it has a field 'course_status' with a possible value 'in-progress'.
Update it to say it has a field 'course_run_status with a
possible value 'in_progress'.
2019-08-27 16:23:06 -04:00
Dave St.Germain
0267b5c85f Fix issue of out of order calls 2019-08-19 10:54:39 -04:00
Zachary Hancock
96f99bc053 reset integration environment endpoint (#21319) 2019-08-14 13:19:45 -04:00
Chris Pappas
4829fd4fde ENT-2117 | Creating new endpoint for enterprise learner portal. Includes small refactor of programs_enrollment GET logic, sowe do not need to duplicate the logic (#21258)
Adding new course_overview internal api

CourseOverview serializer work

Removing enterprise learner portal djangoapp from this repo

Removing ent learner portal url

Minor cleanups

Updating serializers again

typo

adding some tests and quality fixes

more quality fixes

Fixing test

Adding in an import i removed
2019-08-14 11:27:12 -04:00
Kyle McCormick
fff69a9f58 Add course grade listing API for program_enrollments app
This new API endpoint differs from the existing Grades API
in that (i) it only includes grades for users enrolled with a
ProgramCourseEnrollment and (ii) it alters its return code
depending on whether any student's grade failed to load.

EDUCATOR-4529
2019-08-13 13:33:02 -04:00
Simon Chen
1b9cba5cf1 EDUCATOR-4539 update program access so global staff and course staff related cases can be handled 2019-08-07 09:01:37 -04:00
Alex Dusenbery
8a2bf2b60e EDUCATOR-4543 | Let the program_enrollments overview endpoint return course enrollment information for verified and masters mode enrollments, even if they are not directly tied to a ProgramCourseEnrollment. 2019-08-06 16:49:44 -04:00
Alex Dusenbery
70e2aaa95b EDUCATOR-4543 | Add utility functions to the catalog module that picks out all of the course_runs associated with a program, even those that live inside the curriculum of a sub-program. Use these functions to populate the course -> program index of the catalog/programs cache. Also some refactoring of a program_enrollments overview endpoint. 2019-08-05 11:30:19 -04:00
jansenk
8e7b647a4f tests for extra columns 2019-07-10 11:16:25 -04:00
jansenk
4c93bcbf8f Add put endpoint for program enrollments, rework program enrollment view 2019-07-01 09:33:30 -04:00
Simon Chen
d48ba26d50 Update LMS API to send correct response status code 2019-06-25 19:40:42 -04:00
Simon Chen
a86e8d4f19 EDUCATOR-4361 Add PUT api endpoint to the edx-plaform program course enrollment view 2019-06-25 15:12:22 -04:00
Ned Batchelder
b3a731550c Fix problems that drf-yasg uncovered.
These were originally fixed individually, but had to be reverted, and
are now combined in one commit.  The originals were:

7b9040f6b0 This enum was backwards
8774ff1f9b Use ref_name to disambiguate serializers that drf-yasg would otherwise assume are the same.
8a44397139 Is this field missing because it is None?
4a1154a7ca Give a safer buffer for clearing the rate limiting
64c47856dd DRF 3.7.4 changed how you delegate to another view, so don't
7359ca4fb2 Is this right? It fixes two tests
fdd66e5390 Adjust the expected error message for DRF 3.7.7
9257f68fd8 The default TIME_ZONE should be UTC
2019-06-21 18:04:15 -04:00
Ned Batchelder
39c7a2db7c Revert "Use drf-yasg for Open API documentation" 2019-06-11 16:05:00 -04:00
Ned Batchelder
9257f68fd8 The default TIME_ZONE should be UTC
In production, we use UTC as the time zone.  DRF 3.7.7 now puts all
times in the currently set timezone where it used to use UTC.  By
setting TIME_ZONE to UTC, we keep the same results we used to get.

In a few places, we had to change the expected test results to be UTC.
2019-06-10 15:27:39 -04:00
jansenk
e5c3084e8c return 422 on bad input 2019-06-06 15:39:46 -04:00
jansenk
cf32f5bcf9 allow orgs w/o idp configured to enroll students in a program 2019-06-05 12:55:54 -04:00
jansenk
095c420378 check curriculum rather than courses for program course membership 2019-06-04 14:06:00 -04:00
Kyle McCormick
c487b9a384 Change 'withdrawn' status to 'canceled' in program_enrollments
This makes the LMS program_enrollments API compatible with the
Registrar programs API, as specified in the Master's partner
integration guide.

EDUCATOR-4389
2019-06-03 10:16:19 -04:00