Commit Graph

32 Commits

Author SHA1 Message Date
usamasadiq
3d1f3cea64 Ran pyupgrade on lms/djangoapps/course_blocks
Ran pyupgrade on lms/djangoapps/course_goals
Ran pyugprade on lms/djangoapps/course_home_api
2021-02-19 16:29:52 +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
Kyle McCormick
31a4b761ad Lower 'Mismatch between the children...' message to DEBUG level (#25065)
This message comes from the content library block transformer,
and has been filling up our logs at a rate of 250k instances/hr.

Since we don't need to see this log message in production any more,
we are lowering it to the DEBUG level.
2020-09-24 09:13:48 -04:00
Usman Khalid
8546fa6b6f Convert LibraryContentModule to LibraryContentBlock. (#24611) 2020-09-15 08:41:29 -04:00
Guruprasad Lakshmi Narayanan
149ebfec58 Fix the order randomization behaviour of Randomized Content Block
The Randomized Content Block XBlock only randomizes the selection of
the children blocks and has unpredictable randomization of
the order of the selected child blocks due to the usage of sets, which
are unordered, for storing the selected blocks. This becomes apparent
when all the available child blocks in a library are chosen for a
Randomized Content Block, to randomize just the order of the child
blocks and not just the selection of the blocks. The order of the
selected blocks ends up being similar for multiple learners.

This change modifies the XBlock to store the selected child blocks in
a list, instead of a set, after randomly shuffling them.

A new block structure transformer, ContentLibraryOrderTransformer has
been added to transform the order of the selected children XBlocks to
match the order of the selections made in the
ContentLibraryTransformer. This ensures that same correct randomized order
of blocks is also returned by the course blocks API.
2020-08-11 11:46:49 -04:00
David Ormsbee
4f3a45f444 Revert "[BB-112] Fix the unpredictable order randomization issue with randomized content blocks" 2020-06-08 16:47:35 -04:00
Guruprasad Lakshmi Narayanan
a7bd0050a6 Log the username to help with investigating the edge cases 2020-05-20 13:07:57 +05:30
Guruprasad Lakshmi Narayanan
c739151a27 Select children again when current children don't match the selections
This prevents errors when the current children do not match the
selected children any more.
2020-05-20 13:07:57 +05:30
Guruprasad Lakshmi Narayanan
5a2b607ea6 Fix the order randomization behaviour of Randomized Content Block
The Randomized Content Block XBlock only randomizes the selection of
the children blocks and has unpredictable randomization of
the order of the selected child blocks due to the usage of sets, which
are unordered, for storing the selected blocks. This becomes apparent
when all the available child blocks in a library are chosen for a
Randomized Content Block, to randomize just the order of the child
blocks and not just the selection of the blocks. The order of the
selected blocks ends up being similar for multiple learners.

This change modifies the XBlock to store the selected child blocks in
a list, instead of a set, after randomly shuffling them.
2020-05-20 13:07:57 +05:30
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
Ned Batchelder
efba6e45e8 Finally import courseware properly everywhere to get rid of a warning 2019-09-26 09:40:15 -04:00
David Ormsbee
b1f3d2cef2 Revert "Fix the unpredictable order randomization issue with randomized content blocks" 2019-07-25 13:42:20 -04:00
Guruprasad Lakshmi Narayanan
d7647c66e3 Select children again when current children don't match the selections
This prevents errors when the current children do not match the
selected children any more.
2019-07-25 00:58:11 +05:30
Guruprasad Lakshmi Narayanan
df4aee23b9 Fix the order randomization behaviour of Randomized Content Block
The Randomized Content Block XBlock only randomizes the selection of
the children blocks and has unpredictable randomization of
the order of the selected child blocks due to the usage of sets, which
are unordered, for storing the selected blocks. This becomes apparent
when all the available child blocks in a library are chosen for a
Randomized Content Block, to randomize just the order of the child
blocks and not just the selection of the blocks. The order of the
selected blocks ends up being similar for multiple learners.

This change modifies the XBlock to store the selected child blocks in
a list, instead of a set, after randomly shuffling them.
2019-07-25 00:58:11 +05:30
DawoudSheraz
b37e679c39 remove staff exemption from the library_content transformer 2019-06-24 11:05:11 +05:00
Stu Young
1b2f061b73 incr-299 (#20628)
* run python modernize
* run isort
2019-05-15 21:08:02 -04:00
David Ormsbee
d2af1d4c5b Revert "Fix the unpredictable order randomization issue with randomized content blocks" 2019-05-08 12:42:44 -04:00
David Ormsbee
21cc1f4719 Merge branch 'master' into guruprasad/randomize-question-order-pr 2019-05-06 16:33:51 -04:00
Guruprasad Lakshmi Narayanan
73ab30e342 Fix the order randomization behaviour of Randomized Content Block
The Randomized Content Block XBlock only randomizes the selection of
the children blocks and has unpredictable randomization of
the order of the selected child blocks due to the usage of sets, which
are unordered, for storing the selected blocks. This becomes apparent
when all the available child blocks in a library are chosen for a
Randomized Content Block, to randomize just the order of the child
blocks and not just the selection of the blocks. The order of the
selected blocks ends up being similar for multiple learners.

This change modifies the XBlock to store the selected child blocks in
a list, instead of a set, after randomly shuffling them.
2019-04-25 10:23:46 +05:30
Dave St.Germain
b4ccd03740 This adds a new django app -- edx-when -- that will copy start and due dates to mysql and allow per-learner overrides in the instructor dashboard, using the existing IDDE interface.
It adds a data migration for existing IDDE data.
2019-04-24 12:26:19 -04:00
DawoudSheraz
24d63f25ce add staff exemption for content access in library access 2019-02-18 12:17:19 +05:00
Pooja Kulkarni
9ddb1cc074 Implement public cohort
This PR is based on #19284 and is part of the
series of work related to the proposal #18134.

This PR avoids the assignment of
anonymous/unenrolled users to any cohort when
course is public. Anonymous or unenrolled users
will only see content that does not have a
content group assigned.
The "View Course" link to the course outline
is shown on the course about page for a course
marked public/public outline.
It also makes course handouts available for
public courses (not for public_outline).
This PR also hides the different warnings and
messages asking the user to sign-in and enroll
in the course, when the course is marked public.
It modifies the default public_view text to
include the component display_name when
unenrolled access is not available.
2019-02-07 21:42:21 +05:30
Jeremy Bowman
1a5bf35357 TE-2689 Remove useless pylint suppressions part 2 2018-08-14 17:39:02 -04:00
Andy Armstrong
79acb5c5be Reorder LMS imports using isort 2017-06-11 21:48:06 -04:00
Robert Raposa
3b31270e07 Fix Start Course vs Resume Course using Course Blocks. 2017-05-03 15:02:42 -04:00
Nimisha Asthagiri
00d466224e Consolidate Block Structure folders
TNL-6518
2017-03-01 21:19:28 -05:00
Nimisha Asthagiri
71cce9bb73 Block Transformers: distinguish between READ and WRITE versions
TNL-6522
2017-02-13 12:20:22 -05:00
Sanford Student
1a5e15fd5c add course and user id to library content assigned 2017-02-07 13:52:15 -05:00
Nimisha Asthagiri
b90c21b138 Ensure selected blocks get saved into StudentModule when running
transform phase

TNL-6198
2016-12-21 15:58:41 -05:00
Nimisha Asthagiri
69410948c9 Reduce number of transformer traversals (#12881)
This change improves grading performance by combining what had previously been
multiple course tree traversals into a single traversal with combined
filtering logic.
2016-07-01 12:28:33 -04:00
Nimisha Asthagiri
66397c35b9 Refactor Block Cache to separate Collect and Transform phases 2016-02-03 16:54:29 -05:00
Nimisha Asthagiri
a78b94d83a Transformer: ContentLibraryTransformer 2015-11-05 16:22:06 -05:00