Commit Graph

7864 Commits

Author SHA1 Message Date
David Ormsbee
098e047fce Merge pull request #25987 from edx/ormsbee/tnl-7636-xblock-access
Check sequence-level gating in render_xblock (TNL-7636)
2021-01-13 09:35:56 -05:00
David Ormsbee
5f94a082ce Check sequence-level gating in render_xblock (TNL-7636).
There is certain gating logic around pre-reqs, timed exams, etc.
that happen at the SequenceModule level, and should be respected
when rendering descendant XBlocks (like individual problems) that
are in that Sequence. Rather than do a risky refactoring, I'm
keeping that logic where it is and having the render_xblock view
climb up through the ancestor list to call the SequenceModule for
that gating information.

We do _not_ check all descendants (so cousin leaf nodes in the
sequence) for cotent-type-based restrictions because sequences can
become very large (esp. when content libraries are used), and there
is a performance overhead.

If the enclosing sequence is gated in some way, we redirect to the
render_xblock view for that sequence, where hopefully some useful
messaging will be available. This is a stopgap. That redirect
should never happen because we should never be calling the leaf
XBlock for a sequence that is restricted in the MFE. But if somehow
we get there anyway, either by bug or by intrepid user fiddling,
it's better to redirect somewhere that an error _might_ be surfaced
rather than just failing.

This will actually be a little overzealous and lock things down
that should be made visible later. If there's a timed exam and the
exam is completed, it should be the case that content is visible
(just read-only). This commit will block the content before the exam
starts (this is right), open the content while the exam is live
(this is right), but make the content unavailable after the exam
period has finished (this is wrong).

But I am going to go forward with this even knowing it's wrong
because:

1. The render_xblock endpoint should never currently be used in
   timed exams in an intentional way. Neither the mobile experience
   nor the courseware MFE support it.
2. This fix will address security concerns for creative access
   patterns, even if it goes too far.
3. We're going to need to do a lot of work to address both pluggable
   access permissions handling and special exams in the courseware
   MFE, and a better implementation can be done then.
4. I've had multiple failed attempts to get this to work without
   breaking things on and off over the course of weeks, and this
   is a relatively low risk way of doing it that doesn't involve
   a major refactoring (though the bill for that will come due
   when we bring timed exams to the MFE).
2021-01-12 12:57:22 -05:00
Nizar
1e872d4e10 Adds support for enabling custom tinymce plugins in Studio's HTML editor (#25695) 2021-01-11 11:28:20 -05:00
Ali Akbar
0e2d12fc7c Merge pull request #213 from edx/IM/security-fixes-4
Incident Management Security Fixes 4
2021-01-08 21:46:05 +05:00
Usman Khalid
9e38b17202 Convert ErrorModule and NonStaffErrorModule to XBlocks. (#25570) 2021-01-07 10:51:33 -05:00
Dillon Dumesnil
e17e691d54 AA-501: Use hidden blocks to determine past due status
Blocks that were hidden by access checks would not be used when
calculating past due status for a unit. This adds in a check to
still look at those blocks, but will maintain not rendering them
when being accessed via the MFE
2021-01-06 14:11:03 +00:00
Ali-D-Akbar
a5982c7e09 PROD-2160 2021-01-06 11:36:36 +05:00
Ali-D-Akbar
4a54aa8054 PROD-2157 2021-01-06 11:36:36 +05:00
azanbinzahid
e26f8f223a PROD-2210 2021-01-06 11:36:36 +05:00
Michael Terry
c3baf5c19e Merge pull request #25972 from edx/mikix/banner-cta-tweaks
AA-505: Some design updates for courseware "shift dates" UI
2021-01-05 13:28:37 -05:00
Usman Khalid
75391262da [BD-04] Convert SplitTest XModule to XBlock. (#25696) 2021-01-05 09:55:14 -05:00
Michael Terry
d000eb4f67 AA-505: Some design updates for courseware "shift dates" UI
- Makes the action buttons underneath problems into link buttons
  instead of push buttons. Per UI team
- Updates some colors of status pills like "Past due" or "Completed"
2021-01-04 13:29:58 -05:00
Ali Akbar
d93abb8d6e Merge pull request #212 from edx/IM/security-fixes-3
Incident Management Security Fixes 3
2021-01-04 18:41:49 +05:00
Awais Jibran
90776770dc Revert ".is-hidden" CSS hack and related hint fix (#25938)
Reverts two PRs:
* "Fix hiding of completion/bookmark indicators in legacy courseware (#25919)"
* "Fix hint show" (#25930)

TNL-7845
2020-12-23 11:35:25 -05:00
Awais Jibran
409a3c799f Update display.js
fixes quality
2020-12-22 16:19:15 +05:00
Awais Jibran
278a5d0e5c Fix hint show 2020-12-22 15:31:15 +05:00
Ali-D-Akbar
5b44c8007e PROD-2209 2020-12-18 20:48:05 +05:00
Dillon Dumesnil
dce0778b94 Merge pull request #25905 from edx/ddumesnil/aa-496
AA-496: Don't show reset deadlines banner if no graded problem is pas…
2020-12-17 12:29:39 -08:00
Dillon Dumesnil
6237bce0e7 AA-496: Don't show reset deadlines banner if no graded problem is past due
When determining completion status to show on the vertical, we take
into account if the problems are graded and scored (have a score
and weight). Now we take that into account in regards to showing the
banner inside the vertical too
2020-12-17 20:00:14 +00:00
Bianca Severino
c589601b5b Merge pull request #25900 from edx/bseverino/timed-exams
[MST-575] Enable timed exams by default
2020-12-17 12:31:23 -05:00
Bianca Severino
4984fa73c6 Enable timed exams by default 2020-12-17 12:07:57 -05:00
Carla Duarte
99163bdf2c AA-131: Allow anonymous users through course home MFE 2020-12-16 12:58:33 -05:00
David Ormsbee
6ff64369f4 Merge pull request #25694 from open-craft/s0b0lev/lx-1640-video
SE-3492: Video Xblock API handler: student_view_state
2020-12-15 13:58:12 -05:00
Dillon Dumesnil
d58a080236 Merge pull request #25865 from edx/ddumesnil/aa-260
AA-260/AA-500: Improvements to in course shift deadlines
2020-12-14 12:25:23 -08:00
Dillon Dumesnil
3c1de16eba AA-260/AA-500: Improvements to in course shift deadlines
As part of AA-500, we added a completeness check to showing the
banner since we didn't before. As part of AA-260, we now take into
account if a learner has more attempts left on a problem (regardless
of completeness) and allow them to shift their dates to try again.
2020-12-14 19:05:30 +00:00
Aleksandr Sobolev
7ac6d47382 Added student_view_user_state video Xblock handler 2020-12-14 04:05:38 +06:00
Pooja Kulkarni
e9cba8c282 Fix the theme compilation issue since juniper (#24990)
Replaces the deprecated CachedFilesMixin with ManifestFilesMixin.
Also sorts xmodules and xblocks js bundles to make theme assets
compilation hashes consistent across different machines.
2020-12-11 09:36:31 -05:00
Ali Akbar
e209d892c1 Merge pull request #210 from edx/IM/security-fixes-2
Incident Management security fixes 2
2020-12-10 14:26:25 +05:00
Ali-D-Akbar
3aa0f7e2e8 disable xsslint 2020-12-09 12:41:47 +05:00
Zachary Hancock
e2d9c34d5c Expose proctoring waffle to edx-proctoring templates (#25704)
* pass proctoring waffle flag on render
2020-12-07 16:30:26 -05:00
azanbinzahid
467459439f PROD-2159 2020-12-07 16:24:27 +05:00
Régis Behmo
a16cd71046 Start waffle namespace deprecation
By explicitly importing the legacy namespace classes, we make it clear
that we are using soon-to-be-deprecated classes. We will then be able to
start removing the legacy classes, one module at a time.
2020-12-03 16:06:14 +01:00
Kyle McCormick
4dda73d797 [BD-14] Migrate all environments to use database-backed organizations (#25153)
* Install `organizations` app into LMS and Studio non-optionally.
* Add toggle `ORGANIZATIONS_AUTOCREATE` to Studio.
* Remove the `FEATURES["ORGANIZATIONS_APP"]` toggle.
* Use the new `organizations.api.ensure_organization` function to
  either validate or get-or-create organizations, depending
  on the value of `ORGANIZATIONS_AUTOCREATE`,
  when creating course runs and V2 content libraries.
  We'll soon use it for V1 content libraries as well.
* Remove the `util.organizations_helpers` wrapper layer
  that had to exist because `organizations` was an optional app.
* Add `.get_library_keys()` method to the Split modulestore.
* Add Studio management command for backfilling organizations tables
  (`backfill_orgs_and_org_courses`).

For full details, see
https://github.com/edx/edx-organizations/blob/master/docs/decisions/0001-phase-in-db-backed-organizations-to-all.rst

TNL-7646
2020-12-02 13:58:40 -05:00
David Ormsbee
f096f5d685 Merge pull request #25618 from open-craft/symbolist/convert-annotatable-xmodule-to-xblock
[BD-4] Convert Annotatable XModule to XBlock. [SE-3640]
2020-12-02 13:37:20 -05:00
Samuel Walladge
1432dee97c SE-3243 Remove injected edxnotes from AboutBlock (#24930)
This is required to stop get_course_about_section
html content from using the edxnotes version of
get_html, which injects the edxnotes html into it.
We don't want this injected into the html here,
because these are snippets meant to be displayed
in original form on the course about page.
2020-11-30 09:40:37 -05:00
DawoudSheraz
1b490d5ea4 add course_import_failure newRelic custom attribute for better alerting conditions in import flow 2020-11-24 20:45:41 +05:00
Usman Khalid
4a6f2b81a9 Convert Annotatable XModule to XBlock. 2020-11-24 04:58:59 +05:00
Kyle McCormick
9f239ffe8f Add reset_course_content Studio management command (#25653)
Given a course key and a split-mongo version GUID,
it resets the course run's draft branch to a specified
version and publishes.

The purpose of this is to allow us to restore overwritten
course content without having to write to Mongo via a
dbshell.

Adds `reset_course_to_version` method to modulestore API.

TNL-7705
2020-11-23 15:14:10 -05:00
0x29a
c83a505635 Replace 'multi_db = True' with 'databases = {alias for alias in connections}'
Check this ticket for details: https://code.djangoproject.com/ticket/29513
2020-11-19 14:06:51 +01:00
Robert Raposa
8eef18710d set code_owner for celery tasks
ARCHBOM-1260

Co-authored-by: Tim McCormack <tmccormack@edx.org>
2020-11-17 15:33:33 -05:00
Feanil Patel
ae81d3347f Remove a deprecation warning.
DeprecationWarning: The unescape method is deprecated and will be
removed in 3.5, use html.unescape() instead.
2020-11-13 14:40:52 -05:00
David Ormsbee
d83241e503 Merge pull request #24809 from open-craft/symbolist/convert-randomize-module-to-xblock
[BD-04] Convert Randomize XModule to XBlock
2020-11-12 13:06:57 -05:00
David Ormsbee
2086f11a22 Merge pull request #24838 from open-craft/symbolist/convert-conditional-module-to-xblock
[BD-04] Convert Conditional XModule to XBlock
2020-11-12 13:04:26 -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
Usman Khalid
f62b5de6b1 Convert ConditionalModule to ConditionalBlock. 2020-11-07 20:02:02 +05:00
Usman Khalid
8e4a9d2ba1 Convert RandomizeModule to RandomizeBlock. 2020-11-04 23:15:35 +05:00
Kyle McCormick
d1a775d3cd Use full names for lms.djangoapps imports (#25401)
* Use full LMS imports paths in LMS settings and urls modules
* Use full LMS import paths in Studio settings and urls modules
* Import from lms.djangoapps.badges instead of badges
* Import from lms.djangoapps.branding instead of branding
* Import from lms.djangoapps.bulk_email instead of bulk_email
* Import from lms.djangoapps.bulk_enroll instead of bulk_enroll
* Import from lms.djangoapps.ccx instead of ccx
* Import from lms.djangoapps.course_api instead of course_api
* Import from lms.djangoapps.course_blocks instead of course_blocks
* Import from lms.djangoapps.course_wiki instead of course_wiki
* Import from lms.djangoapps.courseware instead of courseware
* Import from lms.djangoapps.dashboard instead of dashboard
* Import from lms.djangoapps.discussion import discussion
* Import from lms.djangoapps.email_marketing instead of email_marketing
* Import from lms.djangoapps.experiments instead of experiments
* Import from lms.djangoapps.gating instead of gating
* Import from lms.djangoapps.grades instead of grades
* Import from lms.djangoapps.instructor_analytics instead of instructor_analytics
* Import form lms.djangoapps.lms_xblock instead of lms_xblock
* Import from lms.djangoapps.lti_provider instead of lti_provider
* Import from lms.djangoapps.mobile_api instead of mobile_api
* Import from lms.djangoapps.rss_proxy instead of rss_proxy
* Import from lms.djangoapps.static_template_view instead of static_template_view
* Import from lms.djangoapps.survey instead of survey
* Import from lms.djangoapps.verify_student instead of verify_student
* Stop suppressing EdxPlatformDeprecatedImportWarnings
2020-11-04 08:48:33 -05:00
Sarina Canelake
18059c20e7 Merge pull request #25505 from edx/sarina/gender-neutral-language
Change gendered language to gender-neutral 'they/them/their'
2020-11-03 16:16:59 -05:00
Régis Behmo
4586002956 Import waffle classes from edx_toggles instead of waffle_utils
Those classes were ported to edx_toggles. The imports remain in
waffle_utils.__init__ for backward compatibility.
2020-11-03 19:25:37 +01:00
Régis Behmo
2307dff4c9 Deprecate WaffleFlag.override method
This allows us to get rid of waffle_utils' custom WaffleFlag method.
2020-11-03 19:25:37 +01:00