Commit Graph

41 Commits

Author SHA1 Message Date
Calen Pennington
d23e888316 Revert "Reapply "Improve the performance of access checking for a specific user in CourseViewList by prefetching data""
This reverts commit 6059e21bff.
2019-03-21 14:26:00 -04:00
Calen Pennington
6059e21bff Reapply "Improve the performance of access checking for a specific user in CourseViewList by prefetching data"
This reverts commit d8cd6135a6.
2019-03-18 15:24:40 -04:00
Calen Pennington
d8cd6135a6 Revert "Improve the performance of access checking for a specific user in CourseViewList by prefetching data"
This reverts commit a2a340bcd0.
2019-03-14 10:31:24 -04:00
Calen Pennington
a2a340bcd0 Improve the performance of access checking for a specific user in CourseViewList by prefetching data 2019-03-11 10:37:53 -04:00
Julia Eskew
368f221f0a Initial start on annotations. 2019-02-19 11:24:21 -05:00
Matthew Piatetsky
14a899a65d REVE-104 & REVE-108: Ensure Course Roles' Access 2018-12-07 16:39:09 -05:00
rabiaiftikhar
aac430da34 EDUCATOR-3213 make Global EdX Staff able to view all forum posts 2018-10-10 12:01:23 +05:00
David Ormsbee
ebbd262710 Modify forum roles query for Aurora performance.
This is a fix for the performance issues in EDUCATOR-3374

AWS's Aurora backend for MySQL selects the wrong index on the
django_comment_client_role_users table, leading to performance issues.
This commit replaces that join with individual requests for permissions
for each role (of which there may be several for any given user).
It's dumber SQL, but Aurora will do the right thing.
2018-08-31 16:34:53 -04:00
Alex Dusenbery
e707804670 Revert "EDUCATOR-3374 | Hacky query to fix inline discussions performance."
This reverts commit 4a1caf6c03.
2018-08-30 16:40:49 -04:00
Alex Dusenbery
4a1caf6c03 EDUCATOR-3374 | Hacky query to fix inline discussions performance. 2018-08-29 20:17:54 -04:00
David Ormsbee
72ed987dff Enable model-caching of discussions ID mapping.
Doing modulestore lookups is expensive, so commit 695b036 created a
course_publish listener that would materialize the discussion ID to
XBlock usage key mapping into the CourseDiscussionSettings model.

However, the signal wasn't hooked up to the Studio process, so that
async task was never called. When hooking it up, I also discovered that
bok choy tests related to partitioning were failing because of a race
condition where multiple processes are overwriting the discussion
settings. To make sure this wasn't an issue, I moved the mapping to
its own table.

This is part of ARCH-111, and the overall Course Structures API
deprecation.
2018-06-13 08:21:08 -04:00
Douglas Hall
695b036282 Store Discussions ID Map on CourseDiscussionSettings model when course publish signal is fired. 2018-05-03 17:23:30 -04:00
Eric Fischer
e18448e27d Silence deprecation warnings
https://docs.djangoproject.com/en/1.11/releases/1.10/#using-user-is-authenticated-and-user-is-anonymous-as-methods
2018-05-02 10:03:50 -04:00
Jeremy Bowman
bf86b3da98 PLAT-1942 Handle xmodule_django field deprecations 2018-02-05 15:05:54 -05:00
Jeremy Bowman
d3d6272d8f PLAT-1873 to_deprecated_string() cleanup part 1 2018-01-08 13:51:42 -05:00
Clinton Blackburn
69eeca61d8 Opening courseware to anonymous users
Anonymous users may now view units in the courseware. This access is limited to units that are not considered problems/graded (e.g. homework, exams).
2017-11-06 16:42:06 -05:00
Eric Fischer
93877890fc EDUCATOR-1635 Log Role Creation 2017-11-06 13:56:27 -05:00
Albert St. Aubin
6cdcf8e9b8 Discussion group moderation 2017-07-06 13:39:03 -04:00
cahrens
8951ac8c61 Refactor server-size code to enable enrollment tracks.
EDUCATOR-11
2017-06-05 12:59:50 -04:00
Andy Armstrong
93235d118d Reorder imports using isort (except lms and cms) 2017-05-30 16:04:54 -04:00
Toby Lawrence
2acb4a6cad [PERF-386] Utilize ForumsConfig to enable and disable forums.
This specifically enables/disables the underlying comment service client
used to make calls to the service.  When disabled, this client will now
throw an exception which can be propagated upwards so that callers can
make the right decision about how to notify users of the error, or
handle retry, etc etc.
2016-11-03 10:20:19 -04:00
John Eskew
3614eb2800 Move xmodule_django app to openedx.core.djangoapps 2016-10-06 14:50:40 -04:00
Matjaz Gregoric
8dc84bec3a Enable discussions on CCX courses.
Discussion is restricted to the CCX course (there is no sharing of
discussions with the parent course or other CCX instances).
2016-09-12 09:51:05 +02:00
David Ormsbee
255267d42c Create forums config model for adjusting connection timeouts. 2016-06-16 13:50:13 -04:00
Ned Batchelder
f5d0f3ff55 Remove useless pylint suppressions 2015-11-22 07:41: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
22bbdacee9 Convert Meta classes to new-style classes 2015-07-13 17:33:26 -04:00
David Ormsbee
b92ad0ad13 TNL-2291 Add caching to discussion forum permissions
Caches all permissions per user per course. Adds caching functionality to has_permission and replaces all instances of cached_has_permission with has_permission.
2015-06-17 21:08:28 +00:00
David Baumgold
4152f5e4e8 Address pylint issue from diff-cover 2014-12-11 13:09:23 -05:00
David Baumgold
36e77c7463 Fixing pep8 issues 2014-12-11 13:04:49 -05:00
stv
829be1e9cb Fix PEP8: E502 the backslash is redundant
between brackets
2014-11-25 10:16:04 -05:00
stv
0d2754d8d1 Fix PEP8: E502 the backslash is redundant
between brackets
2014-11-24 20:48:05 -05:00
jsa
526d4b1d49 forums: fix assign_default_role to use the correct constant. 2014-06-10 12:26:21 -04:00
Calen Pennington
e2bfcf2a36 Make course ids and usage ids opaque to LMS and Studio [partial commit]
This commit updates common/djangoapps.

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-07 12:54:49 -04:00
zubiar-arbi
cf47b6b670 assign default forum role 'Student' to user on course recreate with same name STUD-1140
STUD-1140
2014-02-26 15:40:44 +05:00
jsa
dfa4a03daa i18n: externalize strings in discussion forums templates and python code.
JIRA: FOR-398, FOR-399
2014-01-15 14:26:22 -05:00
Greg Price
88610cb8fb Change forum role granted to staff on enrollment
This applies to global staff (is_staff=True), not course staff.
Previously, staff were granted the Moderator role but not the Student
role upon enrolling in a course. If the Moderator role were later
revoked, then the user would have no role and be unable to post in the
forums, which is confusing for the user. edX staff indicated they would
prefer to not automatically receive the Moderator role, so the Student
role is granted instead. Note that staff will still be able to grant
themselves Moderator privileges through the instructor dashboard if
they wish.

JIRA: FOR-338
2013-12-05 12:54:12 -05:00
David Ormsbee
3ce87583ab Shift enroll/unenroll logic to CourseEnrollment model, add is_active and mode.
Features coming down the pipe will want to be able to:
* Refer to enrollments before they are actually activated (approval step).
* See what courses a user used to be enrolled in for when they re-enroll in
  the same course, or a different run of that course.
* Have different "modes" of enrolling in a course, representing things like
  honor certificate enrollment, auditing (no certs), etc.

This change adds an is_active flag and mode (with default being "honor").
The commit is only as large as it is because many parts of the codebase were
manipulating enrollments by adding and removing CourseEnrollment objects
directly. It was necessary to create classmethods on CourseEnrollment to
encapsulate this functionality and then port everything over to using them.

The migration to add columns has been tested on a prod replica, and seems to be
fine for running on a live system with single digit millions of rows of
enrollments.
2013-08-14 13:23:06 -04:00
Chris Dodge
470569545d add a migrations to the new django_comment_common to keep things a bit more consistent with our normal useage. 2013-05-22 13:32:32 -04:00
Chris Dodge
ae9d13b53a update comment models.py to not have the dependency on get_course_by_id (which is in LMS). Also explicitly set the db_table name because django auto generates table prefixes according to the djangoapp name 2013-05-06 16:04:25 -04:00
Chris Dodge
57eca325d2 move some files from lms/djangoapps/django_comment_client to common/djangoapps/django_comment_common 2013-05-06 15:59:35 -04:00