Commit Graph

411 Commits

Author SHA1 Message Date
M. Zulqarnain
d9a91d4c38 BOM-2781: Django codemods on LMS (2) (#28852)
* feat: Django codemods on LMS (2)
2021-11-11 17:52:57 +05:00
jawad khan
9c1fc4cbba feat: LEARNER-8493 Remove upgrade banner from mobile upgrade banner (#29160)
* feat: remove upgrade banner from mobile upgrade banner

After investigating the best way to keep a user logged in, and solve rendering issues, we decided to show the unit page in a full webview within the app. However, in order to comply with app store guidelines, we need to remove the upgrade banner from this page.

LEARNER-8493
2021-11-02 04:47:48 +05:00
Jason Myatt
a916123b04 Merge pull request #28705 from open-craft/mtyaka/FAL-782-course-home-link-to-mfe
Link on course about page should link to the learning MFE
2021-10-04 15:26:20 -04:00
ha-D
d3bc4601ae feat: Add course-wide custom scripts
Imlements OEP-15 by adding two fields to the course settings:
- Course-wide Custom JS
- Course-wide Custom CSS
The resources defined in these fields will be rendered in all course pages.

Rebase b6cb629849..0578e1c4c6 onto b6cb629849:
- Add course-wide resources to API for MFE use
- Revert "Add course-wide resources to API for MFE use" reverts commit 53648dcf0afe3cd171c9dc2eb5e56b871b2bcfb2

Signed-off-by: Gabor Boros <gabor.brs@gmail.com>
2021-10-04 11:24:45 -07:00
Matjaz Gregoric
6434735f0e fix: course about should link to MFE
When not using the legacy frontend, the course about page should link
to the MFE instead of the legacy courseware view.
2021-10-04 10:19:42 +02:00
Matthew Piatetsky
ae618151a9 fix: Remove debugging flag that is no longer necessary and refactor 2021-09-29 15:05:14 -04:00
Sarina Canelake
c699923d03 Merge pull request #28628 from edx/sarina/i18n-tuneup
fix: abstract edX-specific strings
2021-09-21 08:57:58 -04:00
Matthew Piatetsky
ba7518304c Merge pull request #28675 from edx/AA-905
Populate the course goals user activity table when a user visits course-specific pages
2021-09-20 13:52:27 -04:00
Matthew Piatetsky
3200851563 start addressing comments 2021-09-20 13:08:12 -04:00
sarina
0c74d347f7 fix: abstract edX-specific strings 2021-09-19 14:01:20 -04:00
Matthew Piatetsky
bf6e135762 feat: Populate the course goals user activity table when a user visits course-specific pages 2021-09-16 12:30:36 -04:00
Andy Shultz
4b05f23d30 fix: remove now unnecessary course flag for verified names
MST-1020
2021-09-15 13:33:48 -04:00
DawoudSheraz
e986d360c9 refactor: move course location util to common djangoapp instead of xmodule 2021-09-03 12:40:28 +05:00
alangsto
6fa89e610a fix: Allow masquerading users to see content (#28458)
If a user with staff access is masquerading as a specific student, they should be able to see content that would normally be gated for that student.
2021-08-24 09:14:01 -04:00
Matt Tuchfarber
d53d8e45a5 refactor: Merge the openedx certs app with lms one (#28435)
* refactor: Merge the openedx certs app with lms one

Move the certs API from openedx into the lms certificates app.
Functionally, this is a no-op. Cleanup will happen in a subsequent
commit. This is simply a move.
2021-08-11 10:25:55 -04:00
Justin Hynes
7f5cf2fabd refactor: update certificates app Python API functions
[MICROBA-1354]

* Update Python API function named `cert_generated_enabled` to `has_self_generated_certificates_enabled` to more accurately reflect the purpose of the function
2021-08-04 08:43:12 -04:00
Bianca Severino
7fea6d4692 feat: add CourseWaffleFlag for verified name 2021-07-14 16:59:46 -04:00
Christie Rice
b8114ebc59 fix: Remove V2 certificate checks, since V2 has been enabled globally for all course runs (#28077)
MICROBA-1083 DEPR-155
2021-07-06 11:00:54 -04:00
Justin Hynes
c1f7272174 feat!: Remove certificate generation segment event
[MICROBA-1298]
* Remove a Segment certificate event that was, historically, only emit from the courseware.

The Segment event that was previously (only) issued in the courseware doesn't seem to be important or referenced anywhere we could see. Since this event only tracked certificate generation attempts from one (of multiple) paths to initiate certificate generation in v1, I didn't think the historical event data captured is complete. We approached our data teams and I determined this event was not of high importance. For this reason, I am suggesting we just stop using this event and remove the code responsible for sending it.

We will continue to track certificate creation/generation using the existing `edx.certificate.created` event.
2021-06-30 09:23:46 -04:00
Michael Terry
c62626227a fix: jump_to should redirect to first unit on invalid key
Previously, it would 404. While accurate, it's not a great user
experience. Users can be offered invalid jump_to paths in the normal
course of things, if course content disappears or they lose access
to it.

In both cases, they might be offered a resume URL in the courseware
that would be to a now-invalid location.

With this change, that invalid link will at least give them
*something* (the first unit in the course) rather than an error
page.

This also (unrelatedly) fixes an exception when the learning MFE
outline page tries to render a course that contains sequences
with no children.

AA-867
2021-06-28 15:43:12 -04:00
Sofia Yoon
e645d11bba feat: AA-797 switch course home flag to opt out by replacing it with a course home use legacy frontend flag 2021-06-16 10:04:49 -04:00
Sofia Yoon
9cfecdb65c style: AA-796 remove lint-amnesty comment and reorder imported functions alphabetically 2021-06-08 15:44:19 -04:00
Sofia Yoon
87e3ce69b6 refactor: AA-796 remove outline and dates tabs flags 2021-06-08 15:44:19 -04:00
Albert (AJ) St. Aubin
c37e88fdbf refactor: Move CertificateStatuses to data.py file per OEP-49
[MICROBA-678]

To allow access to CertificateStatuses constants in other Django apps we are moving the
CertificateStatuses enum to data.py per OEP-49.
2021-06-08 08:56:21 -04:00
Christie Rice
fa2b1c34f7 fix: Check certificate status in both v1 and v2 of course certificates (#27843)
MICROBA-1082
2021-06-04 13:46:10 -04:00
Albert (AJ) St. Aubin
351228cee4 refactor: Updating cert availability messaging.
[MICROBA-678]

Added cert availability date to the API used to get certificate status
by the learning MFE to support updated messaging.

Updated the cert availability messaging in the Coruse Dashboard,
including a text color change.
2021-05-24 12:42:03 -04:00
Justin Hynes
313a295c95 refactor: update function calls outside of certificates app for updated generate_user_certificates and regenerate_user_certificates functions
[MICROBA-1238]
* remove unused `course` argument from `generate_user_certificates` function in the certificates app
* remove unused `course` argument from `regenerate_user_certificates` functioni n the certificates app
* remove `course` argument if passed in edx-platform apps outside of the certificates app
2021-05-17 09:39:36 -04:00
Julia Eskew
599d21b7bb feat: Deny course staff visibility of legacy courseware. (#27469)
Currently, course staff can always view their courses
in the Legacy courseware experience.

With this change, course staff will *not* be able
to view their courses if the New (MFE) courseware
experience has been enabled for them.

This does not affect global staff, and it does not
affect courses that are still running in the Legacy
experience.

Adds a new parameter returned by the course metadata API
used by the courseware MFE to determine if the button to
show legacy experience should be displayed or not.

TNL-8203
2021-05-04 13:55:34 -04:00
Usama Sadiq
11ec4a9aaa refactor: pyupgrade second iteration (#27441) 2021-05-03 17:11:32 +05:00
Kyle McCormick
3fbaf72601 fix: only show 'View in New Exp.' to global staff if MFE preview enabled (#27399)
Since the ENABLE_COURSEWARE_MICROFRONTEND Django setting
was removed, the "View in New Experience" button began
to always appear in Legacy courseware for global staff
members in *all* environments.

This was OK for edx.org's purposes, since the Learning MFE
is deployed in all of our production environments.
However, many (perhaps most) Lilac Open edX instances will
*not* deploy the Learning MFE. So, we need to make sure that
this button is not shown by default.

Since we cannot programmatically tell from LMS whether
or not the Learning MFE is deployed, we will depend on
the value of the `courseware.microfrontend_course_team_preview`
flag, which is already being used to decide whether
course staff can see the "View in New Experience" button.

Whether or not the button is shown, global staff will
still be permitted to browse courses in the Learning
MFE if it is deployed.

https://github.com/openedx/build-test-release-wg/issues/49
2021-04-28 09:17:18 -04:00
Asad Iqbal
80298ae31e feat: add COURSES_INVITE_ONLY setting (#27252)
Setting COURSES_INVITE_ONLY to True overrides the INVITE_ONLY setting across all courses in a given deployment.

Co-authored-by: tasawernawaz <tasawer.nawaz@arbisoft.com>
Co-authored-by: asadiqbal08 <asad.iqbal@arbisoft.com>
2021-04-14 08:06:46 -04:00
Kyle McCormick
a69567b18b feat: default staff to courseware MFE if active (via jump_to)
The /jump_to/ LMS endpoint is used in a number of places
to direct users to courseware. It currently only redirects to
Legacy courseware URLs, which then conditionally may
redirect to the Learning MFE.

Two issues with this:
1. Performance Impact: In most cases, going to Legacy first
   is just an extra redirect.
2. Confusion for Privileged Users: Neither course nor global
   staff are auto-redirected from the Legacy experience to the
   MFE. Thus, these priviliged users confusingly never see the
   MFE by default; they must always manually click into it.

This commit makes it so that /jump_to/ directs
users to whatever the default courseware experience is
for them. For staff of courses active in the new experience,
this will impact (at a minimum) the "View Live"
links in Studio, all links on the old and new LMS
course outline, and the "Resume" links on the course
dashboard. Learners should see no difference other than
a performance improvement when following courseware links
from the LMS.

This also adds an optional 'experience=[legacy|new]'
query param to /jump_to/, allowing us to specifically
generate Legacy courseware URLs for the
"View in Legacy Experience" tool.

TNL-7796
2021-04-07 10:24:58 -04:00
Christie Rice
8f50edea6f feat: Implement generation of regular V2 course certificates (#27189)
MICROBA-1039
2021-03-31 14:12:19 -04:00
Asad Iqbal
d5e13195b7 Fix: Find the submission history using learner's email address along with username (#25642)
Co-authored-by: asadiqbal <aiqbal@edx.org>
Co-authored-by: asadiqbal08 <asad.iqbal@arbisoft.com>
2021-03-31 08:46:55 -04:00
Christie Rice
8198606138 feat: Refactor code to check both regular and allowlist V2 certs (#27156)
MICROBA-1039
2021-03-30 10:23:23 -04:00
Kyle McCormick
1f392bdc3e fix: render_xblock was denying access to staff masquerading as learners (#27017)
The render_xblock view, which powers the Learning
MFE (among other things) returned a 404 when un-
enrolled course staff users tried to load it while
masquerading as learners. This was because we
checked course access after enabling the
masquerading context, which triggered a redirect-
to-enrollment exception.

The fix is simply to enable the masquerading
context after checking course access.
Content-level behavior and access is still
calculated within the masquerading context,
as intended.

TNL-7989
2021-03-15 16:50:33 -04:00
Carla Duarte
c996f58e9d Merge pull request #26978 from edx/ciduarte/AA-213
AA-213: create progress tab mfe waffle flag
2021-03-12 13:27:06 -05:00
Carla Duarte
403358e09f AA-213: create progress tab mfe waffle flag 2021-03-12 10:08:34 -05:00
Usama Sadiq
859df03049 refactor: ran pyupgrade on lms/djangoapps/courseware (#26737) 2021-03-12 12:15:58 +05:00
Kyle McCormick
9b37e7d0fe refactor: centralize checks for canonical courseware experience & URL (#26815)
Centralize the logic for choosing between
MFE and Legacy-frontend courseware within
three new functions:
* courseware_mfe_is_active
* courseware_mfe_is_visible
* courseware_legacy_is_visible

This allows us to create another new function:
* get_courseware_url
which can be called anywhere in LMS/Studio
to get the canonical URL to courseware
content (whether it be MFE or Legacy).

In future commits we we begin using
get_courseware_url throughout the platform.

TNL-7796
2021-03-08 15:24:16 -05:00
Justin Hynes
07837cf54e MICROBA-1024 | Move the allowlist and blocklist checks to certificates app
[MICROBA-1024]
- Move some of the recently added logic from the instructor app to the certificates app
- Attempt to not use other certificate models directly in the code I am touching, moving this logic to certificates as well.
2021-03-02 14:58:20 -05:00
Kyle McCormick
e792242b5f refactor!: remove redundant ENABLE_COURSEWARE_MICROFRONTEND toggle (#26792)
The Django setting
FEATURES['ENABLE_COURSEWARE_MICROFRONTEND']
has been an additional gate to activating
usage of the Learning MFE for an Open edX
instance.

The toggle is redundant with the
`courseware.courseware_mfe`
Waffle flag. By removing it, we simplify our config
and simplify our path towards making the Learning MFE
the default courseware experience.

TNL-7796
2021-03-02 11:36:43 -05:00
Usman Khalid
dd96a2aa72 Convert Course, Section and Sequence XModules to XBlocks. (#25965) 2021-03-02 10:29:33 -05:00
Christie Rice
57f9005e57 MICROBA-918 Add allowlist check (#26584) 2021-02-24 09:07:04 -05:00
Kyle McCormick
558d2eb52c refactor: centralize learning MFE URL-building logic (#26689)
In preparation for switching LMS/Studio over
from serving legacy courseware URLs in certain
places (for example, resume_course_url) to serving
learning micro-frontend URLs.

TNL-7796
2021-02-24 08:50:15 -05:00
M. Zulqarnain
42fc6aef03 Upgrade django-ipware (#24827) 2021-02-23 18:14:17 +05:00
David Ormsbee
691472e475 [feat]: Don't use Mathjax if an HTMLBlock has no math. (#26478)
Mobile apps load HTML (and other) XBlocks individually using the
render_xblock endpoint. This is an attmept to reduce the number
of requests and JS processing needed to do so by detecting when
we have math content in HTMLBlocks and only adding the Mathjax
resources when necessary.

This is controlled by the "courseware.optimized_render_xblock"
CourseWaffleFlag. For maximum safety, we currently only optimize
in this way when directly hitting HTMLBlocks, and not for
ProblemBlock or VerticalBlock.

This was made as part of edX's Hackathon XXV.
2021-02-11 13:31:17 -05:00
Jawayria
03e6a874d0 Applied pylint-amnesty to courseware 2021-02-03 21:56:24 +05:00
Kshitij Sobti
6769a280a9 Added a new LTI-based course tab, and LtiDiscussion tab
This PR lays the groundwork for a an LTI tab that can embed any LTI1.1-based
tool as an course tab. It also adds another tab based on this LTI Tab that
offers special support for embedding LTI-based discussion tools in a course
tab. If enabled this will replace the existing discussion tab.
2021-01-20 16:24:55 +05:30
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