Commit Graph

274 Commits

Author SHA1 Message Date
Eric Fischer
97ac2845c1 Fix for LoginFailure.MultipleObjectsReturned in is_user_locked_out (replay)
The get_or_create function is vulnerable to race conditions in MySQL, which can
cause the model LoginFailure to, in some cases, have more than one row for the
same user, breaking the login for that user.

Addinf functionality to expect and clean the error by deleting extra rows (by
oldest lockout date), leaving just one entry and allowing the user to login.

Replayed and squashed by @efischer19, initially commited by @laq
2016-02-25 12:03:28 -05:00
Peter Fogg
a7b1f79d3e Better error logging for full courses during enrollment.
ECOM-3685
2016-02-11 09:54:15 -05:00
Zia Fazal
6e861f266b Merge pull request #11352 from edx/ziafazal/WL-209
ziafazal/WL-209:Cert Social Sharing customization
2016-01-29 16:50:17 +05:00
Zia Fazal
463e8c82cf Cert Social Sharing customization
changes after feedback from matte
2016-01-28 14:26:48 +05:00
Nimisha Asthagiri
08a2bc9620 Merge pull request #11358 from edx/release
Hotfix for MA-1981 and safe sessions
2016-01-27 15:53:20 -05:00
Nimisha Asthagiri
f3cb692472 Safe Session Cookies Middleware 2016-01-26 17:23:03 -05:00
Bill DeRusha
77668afa11 Update age calculation to be more conservative. 2016-01-26 13:19:51 -05:00
Bill DeRusha
39b5eccf67 Update isActive column in mailchimp upon activation 2016-01-04 13:00:31 -05:00
Peter Fogg
cb1aa0617d Merge pull request #10966 from edx/peter-fogg/fa-support-tool
WIP for financial support tool.
2015-12-16 15:08:59 -05:00
Peter Fogg
a680919e8c Support tool for changing enrollments.
Allows support staff or global staff to view a list of a learner's
enrollments, and change enrollment modes. We generate a
ManualEnrollmentAudit record for these enrollment changes in order to
track updates. Additionally, enrollment changes are handled through
the enrollment API, which handles bookkeeping such as granting refunds
where appropriate.

ECOM-2825
2015-12-16 14:17:19 -05:00
Bill DeRusha
005e07cb95 Remove default course mode setting in enrollment api 2015-12-09 19:46:04 -05:00
Peter Fogg
497622d4b4 Switch default course mode to 'audit'.
ECOM-2972
2015-11-25 11:22:29 -05:00
Ahsan Ulhaq
bc64c66835 Refund Policy on Prof Ed Receipts
ECOM-2562
2015-11-24 17:42:09 +05:00
Ned Batchelder
f5d0f3ff55 Remove useless pylint suppressions 2015-11-22 07:41:19 -05:00
Usman Khalid
6cb62f2697 Rebase upgrade Django to v1.8.5
Please note that this is a squshed commit and the work of:
Symbolist, macdiesel, nedbat, doctoryes, muzaffaryousaf and muhammad-ammar
2015-11-10 15:00:19 -05:00
Bill DeRusha
6123827ab1 Compare all refund dates in UTC 2015-11-02 20:00:06 -05:00
Bill DeRusha
1f77810fad Add configurable refund window
Add configuration model for enrollment refunds.

Use order info from otto in refund window calculation

Delete dupe tests. Extend tests to include window tests

Move ecom client from lib to djangoapps in openedx
2015-10-30 09:01:53 -04:00
Zia Fazal
9bb6f6e88d use a generic function check if entrance_exam is enabled or not 2015-10-22 16:45:19 +05:00
Ned Batchelder
322ca34b20 Remove pylint pragmas from "class Meta"
Also remove useless docstrings where they were added to keep pylint
quiet.
2015-10-21 07:37:00 -04:00
Sarina Canelake
105d611cc9 Create distinct terms for gender, education sign up terms 2015-10-20 18:55:51 -04:00
Afeef Janjua
713689dffe invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[62dd3f1] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[0246b1b] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[7c4fecf] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[4269e3b] disble protected access in pylint

invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[0246b1b] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[7c4fecf] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[eb32c9a] fixed the python quality issue of accessing protected fields
fixed the failing tests

invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[0246b1b] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[7c4fecf] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[4269e3b] disble protected access in pylint

invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[0246b1b] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[7c4fecf] invalidate UserProfile.country cache when UserProfile is updated (+2 squashed commits)
Squashed commits:
[4bfe22b] remove the delete case because there is none in current scenario
[802c259] moved the test case to user profile properties file

invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[0246b1b] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[7c4fecf] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[4269e3b] disble protected access in pylint

invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[0246b1b] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[7c4fecf] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[eb32c9a] fixed the python quality issue of accessing protected fields
fixed the failing tests

invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[0246b1b] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[7c4fecf] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[4269e3b] disble protected access in pylint

invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[0246b1b] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[7c4fecf] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[98d2415] added better log info message

invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[62dd3f1] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[0246b1b] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[7c4fecf] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[4269e3b] disble protected access in pylint

invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[0246b1b] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[7c4fecf] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[eb32c9a] fixed the python quality issue of accessing protected fields
fixed the failing tests

invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[0246b1b] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[7c4fecf] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[4269e3b] disble protected access in pylint

invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[0246b1b] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[7c4fecf] invalidate UserProfile.country cache when UserProfile is updated (+2 squashed commits)
Squashed commits:
[4bfe22b] remove the delete case because there is none in current scenario
[802c259] moved the test case to user profile properties file

invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[0246b1b] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[7c4fecf] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[4269e3b] disble protected access in pylint

invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[0246b1b] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[7c4fecf] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[eb32c9a] fixed the python quality issue of accessing protected fields
fixed the failing tests

invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[0246b1b] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[7c4fecf] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[4269e3b] disble protected access in pylint

invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[0246b1b] invalidate UserProfile.country cache when UserProfile is updated (+1 squashed commit)
Squashed commits:
[7c4fecf] invalidate UserProfile.country cache when UserProfile is updated
2015-10-20 18:32:21 +05:00
Bill DeRusha
fe23052511 Merge pull request #9979 from edx/bderusha/boardman-traffic
Add IP to all python Segment tracking calls
2015-10-05 14:55:55 -04:00
Bill DeRusha
ca6633bd98 Add IP to all python Segment tracking calls 2015-10-01 21:21:16 -04:00
Bill DeRusha
bcb71a3255 Rename SEGMENT_KEY to have a unique key name for both CMS and LMS 2015-10-01 19:40:27 -04:00
Bill DeRusha
c721ff5a82 Replace SEGMENT_IO_LMS & SEGMENT_IO_LMS_KEY with single key SEGMENT_KEY 2015-09-24 11:49:03 -04:00
Bill DeRusha
ccc43cfe98 Add mailchimp list fields and config for new users 2015-09-22 10:24:24 -04:00
Tasawer
02d4606e57 Fixing IntegrityError happened on concurrent requests for course enrollment
ECOM-1730
2015-09-10 10:51:14 +00:00
Afzal Wali
257aaaee83 Added the ability to change the enrollment mode in the auto_auth API (used for bokchoy and load tests).
Modified some tests to use the modified API.

Quality

Quality

Updated the comment.

Quality
2015-09-02 19:05:34 +05:00
zubair-arbi
ec28a75f14 In-course reverification access control
* Automatically create user partitions on course publish for each ICRV checkpoint.
* Disable partitions for ICRV checkpoints that have been deleted.
* Skip partitions that have been disabled when checking access.
* Add verification access control UI to visibility settings.
* Add verification access control UI to sequential and vertical settings.
* Add partition scheme for verification partition groups.
* Cache information used by verification partition scheme and invalidate the cache on update.
* Add location parameter to UserPartition so the partition scheme can find the associated checkpoint.
* Refactor GroupConfiguration to allow multiple user partitions.
* Add special messaging to ICRV for students in the honor track.

Authors: Zubair Arbi, Awais Qureshi, Aamir Khan, Will Daly
2015-08-20 08:43:55 -07:00
Brandon DeRosier
34526ddf6a Revert "Revert "Merge pull request #8986 from jazkarta/remove-ccx-enrollment""
This reverts commit 42e78463a7.
2015-08-11 13:03:58 -04:00
Peter Fogg
42e78463a7 Revert "Merge pull request #8986 from jazkarta/remove-ccx-enrollment"
This reverts commit 53db053c18, reversing
changes made to 386a8a27dd.
2015-08-07 16:59:56 -04:00
Ned Batchelder
ceb5655b2d Merge pull request #9171 from edx/ned/update-pylint
Update pylint and astroid, reduces pylint count by 400
2015-08-04 09:28:35 -04:00
Ned Batchelder
f54fe787c6 Remove needless 'disable=no-member' pragmas 2015-08-03 17:47:44 -04:00
Jim Abramson
0e3be9de80 Merge pull request #9123 from edx/jsa/xcom-442
Add historical course enrollment table.
2015-08-03 17:06:24 -04:00
Carlos de la Guardia
458ed0a64e Use the standard enrollment table instead of a custom CCX table for CCX
enrollments.

The goal for this PR is to have a single mechanism for registering users and
reducing the number of places where special-casing for ccx courses is needed. The
migration at this point is purposefully limited to convert ccx memberships into
student enrollments when moving forward. No backward migration is in place at the
moment. The ccx membership tables are not removed at this time. It is possible to go
backwards and forwards multiple times with no errors or data loss.
2015-08-01 02:59:10 -05:00
jsa
810d623325 Add historical course enrollment table.
XCOM-442
2015-07-29 17:35:41 -04:00
Renzo Lucioni
b50c905865 Remove modulestore dependency from Enrollment API
Sets the Enrollment API free of the modulestore by replacing modulestore queries with calls to the CourseOverview model. Course deletion invalidates the corresponding CourseOverview. XCOM-462.
2015-07-20 13:41:19 -04:00
Sarina Canelake
8283c07e32 Remove superfluous-parens pylint violations
Skipped 'print' statement violations, as print() is Py3k syntax.
2015-07-13 17:33:28 -04:00
Sarina Canelake
22bbdacee9 Convert Meta classes to new-style classes 2015-07-13 17:33:26 -04:00
Kyle McCormick
1dfe9ed9e8 MA-779 Update student dashboard to use CourseOverview 2015-07-08 12:05:38 -04:00
Ahsan Ulhaq
8d9d4b85d5 LMS: Modification in enrollment API
Changed enrollment api to set enrollment atributes if the course is
credit course

ECOM-1719
2015-07-07 00:49:02 +05:00
Will Daly
e2acf3ab87 Credit eligibility/provider refactor
* Remove m2m relation between credit course and credit providers.
* Separate eligibility and provider APIs into different modules.
* Add API call for retrieving a user's eligibilities.
* Cache credit course list.
* Style the dashboard purchase button.
* Display a link for the credit provider on the dashboard.
* Add analytics events for clicks on the purchase button.
* Expose more credit models to Django admin and add search functionality.
2015-07-02 10:03:52 -07:00
Kyle McCormick
1726c136fa MA-772 create app course_overviews for caching course metadata 2015-06-22 18:33:12 -04:00
Ahsan Ulhaq
20e6c7625c LMS: Modification in enrollment API
Added CourseEnrollmentAttribute model

ECOM-1719
2015-06-16 10:39:04 +05:00
cewing
6a0c9aee9d MIT CCX: Use CCX Keys
Implement the use of CCX opaque keys throughout the ccx code base

include the new custom ccx id package in the github checkouts list

update the coach dashboard wrapper to get CCX information from the incoming course_id, if possible

update function signatures for all view functions to expect CCX as passed by the dashboard wrapper (default to None), remove calls to get_ccx_for_coach as the ccx is passed in.

update reverse calls in python view code to use a CCXLocator for the URL instead of a CourseLocator

use CCXLocator where necessary

use course id to find ccx, instead of thread local

remove unused method and related tests

use course id for getting ccx

provide course id to the get_current_ccx method

ensure the course id passed in is a CourseKey instance of some type whether it starts out as a string or not

use the provided block to figure out what the course_id should be, then get the ccx for that

redirect to ccx dashboard using coach ccx if no ccx is passed in

update student dashboard listing for ccx to build an appropriate url from a CCXLocator, not from the course locator.

refactor building the ccx locator so we don't have to do it repeatedly

begin test refactoring after ccx_keys introduction

Ensure that when access checking happens, the course_locator form of a ccx locator is used.  This ensures that the access check happens against the course and it is not necesarry to duplicate the entire access control structure for the course.

pick up api change in ccx-keys

create and conditionally use a wrapper for the mixed modulestore returned by xmodule.modulestore.django.modulestore

the wrapper will strip and restore ccx values from CourseKey and UsageKey objects

fix return values on a few methods

remove unused symbol

pull updated ccx-keys package

set course_id on the caching descriptor system to avoid api incompatibilities in some subsystems

use ccx.course instead of self.course

fix get method to find course keys from blocks that are not themselves keys but have a location attribute (which will be a key)

if an item coming out of the db has children, restore the ccx to them as well

if the block passed in has a CCX key, unwrap that before we try to look up the override, otherwise it will never be found.

pick up a change in the ccx keys package that allows for stripping CCX identity from a usage key

begin writing tests to cover this modulestore wrapper

remove the switch_pocs view, the url pattern for it, and the tests that covered it

remove the ccx context and the middleware responsible for setting the current CCX.  These are no longer needed

all dashboard views should raise 404 if a ccx is not provided by the coach_dashboard decorator

code quality

prevent errors resulting from trying to `get` a ccx based on non-unique criteria.

remove obsolete usage of ACTIVE_CCX_KEY

fix setUp method for grading tests to properly create grades for the ccx rather than for the course.

clean up reverse calls

code quality

adding docstrings to clarify purpose of this patch

fix bug in getting ccx for coach

fix grading views to properly fetch a ccx-ified course so that grades for that version will be calculated

fix small errors in modulestore implementation

fix errant merge marker

update call to get_current_ccx after key refactoring merged with tab changes
2015-06-12 00:01:24 -07:00
Tim Krones
f711a32e3d TNL-1652: Allow instructors to obtain CSV file listing students who may
enroll in a course but have not signed up yet.
2015-06-04 20:50:04 +02:00
Ben McMorran
9d336c33eb TNL-1897 Implement Course Team API 2015-06-03 18:04:17 +00:00
Diana Huang
15291aa43b Merge pull request #8015 from edx/andya/add-tab-extensions
Add extensible course view types for edX platform
2015-06-02 17:08:45 -04:00
Muhammad Shoaib
65c4f1df89 SOL-236 Manual Enrollments 2015-06-02 13:19:32 -04:00
Andy Armstrong
94e1c42314 Add extensible course view types for edX platform 2015-06-02 13:12:40 -04:00