Commit Graph

107 Commits

Author SHA1 Message Date
Usman Khalid
59b452a4b3 Quality fixes. 2016-03-24 02:46:54 +05:00
muzaffaryousaf
bb952e148f Restrice non-staff users to access preview content.
TNL-4194
2016-03-21 20:08:24 +05:00
Kevin Falcone
6f9a3911e5 Implement a BaseStudentModuleHistory
This abstract class contains most of the fields (aside from the id and
foreign key to StudentModule that the subclasses need to manage).  It
also provides a get_history method that abstracts searching across
multiple backends.

Move router code to openedx/core
We need to use it from cms and lms.
Ensure aws_migrate can be used for migrating both the lms and cms.

Handle queries directed to student_module_history vs default and the
extra queries generated by Django 1.8 (SAVEPOINTS, etc).

Additionally, flag testing classes as multi_db so that Django will
flush the non-default database between unit tests.

Further decouple the foreignkey relation between csm and csmhe

When calling StudentModule().delete() Django will try to delete CSMHE
objects, but naively does so in the database, not by consulting the
database router.

Instead, we disable django cascading deletes and listen for post_delete
signals and clean up CSMHE by hand.

Add feature flags for CSMHE
One to turn it on/off so we can control the deploy.
The other will control whether or not we read from two database tables
or one when searching.

Update tests to explicitly use this get_history method rather than
looking directly into StudentModuleHistory or
StudentModuleHistoryExtended.

Inform lettuce to avoid the coursewarehistoryextended app

Otherwise it fails when it can't find features/ in that app.

Add Pg support, this is not tested automatically.
2016-02-29 13:59:27 -05:00
Douglas Hall
37a7fdc0f2 Added subsection gating feature 2016-01-28 14:05:20 -05:00
Amir Qayyum Khan
c0a131e5d6 Allowed ccx coaches to see individual students progress from grade book 2016-01-08 16:05:33 +05:00
Nimisha Asthagiri
44abf7a9a2 Performance enhancement in see_exists: reverse order of checks 2015-12-23 16:40:38 -05:00
Nimisha Asthagiri
2b8441a072 Update Course Catalog to use CourseOverview 2015-12-10 20:37:50 -05:00
Ned Batchelder
f5d0f3ff55 Remove useless pylint suppressions 2015-11-22 07:41:19 -05:00
Nimisha Asthagiri
95fdbd981c Refactor has_access for re-usability. 2015-10-26 16:26: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
tlindaliu
e0840d2d43 MA-849: Change has_access return type
New classes for the return type, and changes to the has_access function and tests to make them compatible.
2015-07-19 20:42:29 -04:00
Kyle McCormick
5b630a7704 MA-779 Make has_access work on CourseOverview objects 2015-07-08 12:05:38 -04:00
Christine Lytwynec
ddb1ae667e Split lms unittests into multiple shards 2015-05-07 09:17:26 -04:00
muzaffaryousaf
f5de0bbf43 Enable unit preview by default.
TNL-1261
2015-05-06 12:40:44 +05:00
stv
2e1400f842 Fix Pylint: W0613(unused-argument) 2015-02-19 19:56:51 -08:00
Calen Pennington
b353ed2ea2 Better support specifying of modulestore configuration in test cases
The existing pattern of using `override_settings(MODULESTORE=...)` prevented
us from having more than one layer of subclassing in modulestore tests.

In a structure like:

    @override_settings(MODULESTORE=store_a)
    class BaseTestCase(ModuleStoreTestCase):
        def setUp(self):
            # use store

    @override_settings(MODULESTORE=store_b)
    class ChildTestCase(BaseTestCase):
        def setUp(self):
            # use store

In this case, the store actions performed in `BaseTestCase` on behalf of
`ChildTestCase` would still use `store_a`, even though the `ChildTestCase`
had specified to use `store_b`. This is because the `override_settings`
decorator would be the innermost wrapper around the `BaseTestCase.setUp` method,
no matter what `ChildTestCase` does.

To remedy this, we move the call to `override_settings` into the
`ModuleStoreTestCase.setUp` method, and use a cleanup to remove the override.
Subclasses can just defined the `MODULESTORE` class attribute to specify which
modulestore to use _for the entire `setUp` chain_.

[PLAT-419]
2015-02-04 09:09:14 -05:00
Calen Pennington
03a05fd9d4 Always call super(..).setUp() from setUp 2015-02-04 09:09:14 -05:00
Zia Fazal
ca3d84a5d4 New pre-requisite course feature via milestones app 2015-01-15 15:17:38 -05:00
Andy Armstrong
561c57dbe9 Extend preview to support cohorted courseware
TNL-651
2015-01-15 10:33:44 -05:00
jsa
6fb3daa772 support group_access. JIRA: TNL-649 2015-01-15 10:33:44 -05:00
Jesse Zoldak
bf3b87bc64 Clean up all modulestore testcases
Move modulestore config for tests to an importable location
Disable pylnt warning for lms imports in common tests
Refactor all testcases that loaded all xml courses
TE-610
TE-489
2014-12-02 07:09:36 -05:00
Sarina Canelake
7229ef92ee s/pylint: disable=W0212/pylint: disable=protected-access/ 2014-12-01 11:22:12 -05:00
Sarina Canelake
e0f1d3f3f3 s/pylint: disable=C0111/pylint: disable=missing-docstring/ 2014-12-01 11:22:09 -05:00
stv
cf9308144d Fix PEP8: E302 expected 2 blank lines, found 1 2014-11-10 11:00:11 -08:00
Chris Dodge
3c36f7cbad Add new course_module field which describes what the catalog visibility should be (both, about, none) 2014-11-09 10:36:00 -05:00
muhammad-ammar
fcaa783e43 Unit Test Improvements
TE-489
2014-10-31 11:55:13 +00:00
Usman Khalid
660cdf79c0 Added instructor persmission to _has_access_error_desc() in courseware.access.
TNL-208
2014-09-11 19:17:57 +05:00
Sarina Canelake
666f563ee6 Merge pull request #4418 from Stanford-Online/dcadams/make_registration_button_conditional
Make text on register button on About page conditional.
2014-07-15 16:37:00 -04:00
David Adams
aa1b623904 Make text on register button on About page conditional.
Added a new advanced setting; invitation_only

 If invitation_only display "Enrollment in this course is by invitation only"
 Otherwise, if outside of enrollment period display "Enrollment is Closed"

 This issue is logged at LMS-2670

 Also fixed in this PR is issue LMS-2717; even though the Register button was greyed out,
 clicking it sent one to the registration page.
2014-07-15 12:51:12 -07:00
cahrens
66173ab9e6 Add "visible_to_staff_only" field to support staff locking in Studio.
STUD-1875
2014-07-14 14:46:40 -04:00
Waheed Ahmed
cb2af13418 Fixed staff debug info endpoints for staff member.
LMS-2737
2014-06-02 12:26:27 +05:00
Calen Pennington
cfcbdc0145 Move to OpaqueKey implementations from the external library
[LMS-2757]
2014-05-29 17:03:35 -04:00
Sarina Canelake
110719deae StaffFactories accept course_keys, not courses. Make that clear in the interface. 2014-05-24 18:49:06 -04:00
Don Mitchell
6834376b8a Don't fetch the course just to find out if the user has access to it. 2014-05-09 10:12:21 -04:00
Calen Pennington
9811926d97 Make course ids and usage ids opaque to LMS and Studio [partial commit]
This commit updates lms/djangoapps/courseware.

These keys are now objects with a limited interface, and the particular
internal representation is managed by the data storage layer (the
modulestore).

For the LMS, there should be no outward-facing changes to the system.
The keys are, for now, a change to internal representation only. For
Studio, the new serialized form of the keys is used in urls, to allow
for further migration in the future.

Co-Author: Andy Armstrong <andya@edx.org>
Co-Author: Christina Roberts <christina@edx.org>
Co-Author: David Baumgold <db@edx.org>
Co-Author: Diana Huang <dkh@edx.org>
Co-Author: Don Mitchell <dmitchell@edx.org>
Co-Author: Julia Hansbrough <julia@edx.org>
Co-Author: Nimisha Asthagiri <nasthagiri@edx.org>
Co-Author: Sarina Canelake <sarina@edx.org>

[LMS-2370]
2014-05-06 10:08:32 -04:00
Oleg Marshev
13c19c98e2 Add role parameter to LTI. BLD-583. 2014-01-30 14:37:33 +02:00
Carson Gee
cbb6e5e686 Changed default user to be anonymous in both has_access and student.views.index
Replaced existing test_none_user_index_access_with_startdate_fails
test with new test now that the tested function has changed and
was causing the original test to fail.
2013-12-15 09:56:37 -05:00
Calen Pennington
061a46beef Formalize various access roles as objects
This centralizes the logic for group membership, and means that we
don't need to make queries to find out whether the legacy groups names exist.
2013-11-13 13:42:37 -05:00
Julia Hansbrough
1a3f4cb8f8 Moved can_refund logic to CourseEnrollment 2013-11-04 18:48:43 +00:00
Julia Hansbrough
c375666d88 Added new copy, small CR fixes
* Changed text for "Are you sure you want to refund"...
* Addressed a CR comment adding clarity to student view code
* Converted UTC to pytz.utc
2013-11-04 18:38:46 +00:00
Julia Hansbrough
7ab8142e82 Response to Dave & Diana's CR 2013-11-04 18:38:44 +00:00
Julia Hansbrough
bf916b6624 Fixes from Daian's CR 2013-11-04 18:38:43 +00:00
Julia Hansbrough
fcab46b138 Refactored to use signals; full test coverage 2013-11-04 18:38:42 +00:00
Julia Hansbrough
63940141c8 End-to-end refunding with tests 2013-11-04 18:37:55 +00:00
Julia Hansbrough
045e69f3c5 Can check verified-ness and expiration date 2013-11-04 18:37:54 +00:00
Jason Bau
07e56ac43b Merge pull request #67 from edx/features/jbau/stanford-shib
Shibboleth Auth
2013-06-21 09:32:30 -07:00
Ned Batchelder
61b53713d2 Remove unused imports from lms, as detected by pylint. 2013-06-19 16:56:34 -04:00
Jason Bau
824fb9a311 The bulk of Shibboleth authentication for Stanford
Highlights:
* The url '/shib-login/' interfaces with apache/mod_shib via
  request.META to handle shibboleth login and registrations
* Courses can designate 'enrollment_domains' to limit enrollment
  to users with a linked ExternalAuthMap verified by a particular
  identity provider
* Tests
* Logging

 Changes to be committed:

	new file:   common/djangoapps/external_auth/migrations/0001_initial.py
	new file:   common/djangoapps/external_auth/migrations/__init__.py
	new file:   common/djangoapps/external_auth/tests/test_shib.py
	modified:   common/djangoapps/external_auth/views.py
	modified:   common/djangoapps/student/views.py
	modified:   common/lib/xmodule/xmodule/course_module.py
	modified:   lms/djangoapps/courseware/access.py
	modified:   lms/djangoapps/courseware/tests/test_access.py
	modified:   lms/envs/common.py
	modified:   lms/envs/dev.py
	modified:   lms/envs/test.py
	modified:   lms/templates/courseware/course_about.html
	modified:   lms/templates/dashboard.html
	modified:   lms/templates/extauth_failure.html
	modified:   lms/templates/navigation.html
	modified:   lms/templates/register.html
	modified:   lms/templates/signup_modal.html
	modified:   lms/urls.py
	renamed:    lms/wsgi_apache.py -> lms/wsgi_apache_lms.py
2013-06-19 00:48:18 -07:00
Don Mitchell
d7194e6bec struct_time to datetime conversion. 2013-06-10 17:16:34 -04:00
Calen Pennington
6b64b4214f Make relative imports explicitly relative 2013-03-15 11:23:22 -04:00