Commit Graph

58105 Commits

Author SHA1 Message Date
Matthew Piatetsky
7ec8e0e327 Merge pull request #26988 from edx/AA-461
[AA-461] Add management command to export course metadata for all courses
2021-03-15 10:57:59 -04:00
Alex Dusenbery
854015d18e fix: The update_role_assignments_with_customers command no longer deletes open assignments.
Allowing it to do so left us prone to error when an explicit enterprise_customer_uuid arg is provided.
We should modify this command in the future to perform deletions of open assignments as its only action,
and it should only be invoked this way after we have verified that all
backfilled enterprise_customer fields on the assignments have been set correctly.
enterprise version 3.18.4
2021-03-15 10:13:52 -04:00
David Ormsbee
51811f0c5e Merge pull request #26987 from edx/ormsbee/tnl-8057-malformed-structures
Improved error handling in Course Outline generation.
2021-03-15 10:11:57 -04:00
M. Zulqarnain
8ec2699269 refactor: pyupgrade in openedx ccxcon and certificates (#26852) 2021-03-15 18:30:06 +05:00
M. Zulqarnain
94f14c6b3d refactor: pyupgrade on bookmarks, cache_tools, catalog (#26783) 2021-03-15 18:29:40 +05:00
Justin Hynes
f00f562deb Merge pull request #26989 from edx/jhynes/microba-1011_allowlist-uniqueness
MICROBA-1011 | Remove duplicate allowlist entries and add constraint preventing future occurrences
2021-03-15 09:15:20 -04:00
Usama Sadiq
7108562c87 refactor: ran pyupgrade on openedx/core/djangoapps/credentials (#26847) 2021-03-15 18:09:56 +05:00
Kyle McCormick
8813a61da2 feat!: remove SemanticSectionDescriptor, the final XModule (#26990)
A "section" tag in an OLX upload used to map to the
SemanticSectionDescriptor, which translated it into a Sequence
("sequential" tag). This is both obscure and confusing, since it uses
language that predates Studio. Back in the LMS prototype days,
"section" was inconsistently used to be interchangeable with "sequence"
and "sequential", and what Studio today calls a "section" was called a
"chapter". Bits of this legacy terminology are still around in the
courseware rendering code.

The upshot is that if you make an OLX tag "section" before this commit,
it would not map to what we call a "Section" in all our documentation,
but to a "Subsection"; furthermore, if that <section> only had one child
element, the node would be replaced with its singular child, removing
the <section> node from the course tree entirely.

The fact that you can make a "section" OLX tag
at all is nowhere in our documentation because courses haven't been
written that way since late 2011 or early 2012.

SemanticSectionDescriptor came up as part of the XModule ->
XBlock conversion efforts as a legacy XModule that isn't worth
converting. With the removal of this class, all XBlocks
in edx-platform are "pure" XBlocks, ending our reliance
on the XModule-to-XBlock shimming infrastructure.

This commit also removes the process_includes decorator, which was only
used for "section" tags. This does NOT delete the ProblemBlock-specific
<include> tag, which is still supported (if obscure).

There is a chance that through tribal knowledge or copy-paste, some
section tags survive in the wild of old edX courses. It's difficult for
us to assess because by its nature, this tag doesn't just say
"section", but instead actually does the mutation on import so it's
stored as "sequential" in the modulestore–therefore things like
CourseGraph can't detect it.
The fix for any such XML-authored courses is:
* For instances of <section> that wrap a single child node,
  replace the <section> node in favor of its child node.
* For instances of <section> that wrap a sequence of children,
  substitute <section> with <sequential>
Note that "<section>" is a valid HTML tag
type and so may show up in any component that can contain HTML and is
unrelated to the course structure OLX tag alias "<section>" that this
commit removes.

DEPR-124
2021-03-15 09:04:23 -04:00
Arslan Ashraf
8163d8c772 docs: add annotations for DISABLE_COURSE_CREATION feature flag (#26941) 2021-03-15 08:59:39 -04:00
Azan Bin Zahid
a9a92a3c39 Merge pull request #27001 from edx/azan/PROD-2298
disable xsslint
2021-03-15 16:15:32 +05:00
Azan Bin Zahid
c20f938072 disable xsslint 2021-03-15 15:25:41 +05:00
edX requirements bot
a6528c69d8 Updating Python Requirements (#26997) 2021-03-15 12:10:55 +05:00
David Ormsbee
3a552c4fdf feat: Outline error handling and admin improvements.
* Introduces the idea of content errors into the learning_sequences
  public API, accessible using get_content_errors().
* Makes course outline generation much more resilient to unusual
  structures (e.g. Section -> Unit with no Sequence in between),
  with the understanding that anything that doesn't conform to the
  standard structure will simply be skipped.
* Improves the Django Admin for learning_sequences to display
  content errors and improve sequence data browsing within a course.
* Switches the main table viewed in the Django admin from
  LearningContext to CourseContext, which is appropriate since only
  course runs generate outlines.

This was done as part of TNL-8057, with the end goal of making
course outline generation resilient enough to switch over apps
to using the learning_sequences outline API. The types of course
structure errors that this PR addresses cause display issues even
in the current Outline Page experience, but would break the outline
generation for learning_sequences altogether.

The approach for error messages here is very generic, to keep
modulestore concepts from seeping into learning_sequences (which is
not aware of the modulestore/contentstore). We may need to address
this later, with a more normalized content error data model.

While the Django admin page is backwards compatible with the old
versions of the models, we should run the backfill_course_outlines
management command after deploying this change, to get the full
benefits.
2021-03-15 01:31:36 -04:00
David Ormsbee
36ebb3e124 feat: Add --force option to backfill_course_outlines.
Adding new functionality is going to require running this command
on all courses, not just ones that have it missing.
2021-03-15 01:31:36 -04:00
Manjinder Singh
5b54537c3a fix: six was being used without being imported (#26993)
* fix: six was being used without being imported

Removed usage of the python library six from module. This is fixing an error where the python library six is used in a module without being imported. Multiple PRs merging around same time caused this conflict.
2021-03-12 16:41:48 -05:00
Kyle McCormick
378ebe54a7 Merge pull request #26992 from edx/ciduarte/fix
replace six with str
2021-03-12 16:28:40 -05:00
Carla Duarte
f50b71b03c replace six with str 2021-03-12 15:32:05 -05:00
Justin Hynes
eed9202485 MICROBA-1011 | Remove duplicate allowlist entries and add constraint to model to prevent future occurrences
[MICROBA-1011]
- Add data migration to remove the duplicate certificate allowlist entries before adding the new constraint to the CertificateWhitelist model.
- Add `unique_together` constraint to the CertificateWhitelist model. A learner should only have a single allowlist entry per course-run.
2021-03-12 14:18:39 -05:00
Waheed Ahmed
817adc299f Add custom attribute for SSO auth_entry.
Added custom for SSO auth entries to monitor which auth entries are
still in use.
2021-03-12 23:29:28 +05: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
Matthew Piatetsky
b287940d17 Add management command to export course metadata for all courses 2021-03-12 13:11:51 -05:00
Kyle McCormick
f50a2138e4 fix: masquerading as a role in MFE should not require enrollment (#26975)
The Learning MFE had a bug where instructors selecting
'View As: Audit' would find themselves redirected to the
'Enroll Now' page. This was because the Courseware API,
 which powers the MFE, checked courseware access *after*
setting up masquerading--so, instead of checking whether
the instructor had access to view the course, we checked
whether some arbitrary un-enrolled learner would have
access to the course (the answer is generally No).

We fix this by doing what the Legacy courseware index
does: calculate courseware access *before* setting up
masquerading.

TNL-7989
2021-03-12 12:13:45 -05:00
Michael Terry
c697acec2b Merge pull request #26927 from edx/mikix/ace-braze
feat: update to edx-ace 1.0.0
2021-03-12 11:05:30 -05:00
Michael Terry
570a869bd3 feat: update to edx-ace 1.0.0
The new version switches how you specify recipients, to use
lms_user_id instead of usernames.

AA-489
2021-03-12 10:25:54 -05:00
Carla Duarte
403358e09f AA-213: create progress tab mfe waffle flag 2021-03-12 10:08:34 -05:00
David Ormsbee
bebcbef3dd Merge pull request #26973 from open-craft/symbolist/convert-to-xblock
[BD-04] Create CustomTagTemplateBlock, convert TranslateCustomTagDescriptor to XBlock and remove RawDescriptor
2021-03-12 09:17:59 -05:00
Awais Qureshi
05504e25c5 Merge pull request #26952 from edx/pyupgrade-effort-esi
pyupgrade in enterprise_support
2021-03-12 17:28:22 +05:00
Awais Qureshi
71b38915e8 Merge pull request #26894 from edx/BOM-2375-student-2
BOM-2375-student-part2
2021-03-12 17:02:27 +05:00
Usama Sadiq
46b5f5c24a refactor: ran pyupgrade on openedx/core/djangoapps (#26845)
upgraded course_date_signals & course_groups apps.
2021-03-12 16:44:43 +05:00
Usama Sadiq
32a4c70bef refactor: ran pyugprade on openedx/core/djangoapps/cors_csrf (#26844) 2021-03-12 16:35:43 +05:00
Usama Sadiq
bd9bb424cd refactor: ran pyupgrade on lms/djangoapps/certificates (#26740) 2021-03-12 14:47:30 +05:00
Usama Sadiq
82406e970a reafctor: ran pyupgrade on lms/djangoapps/courseware (#26739) 2021-03-12 14:43:44 +05:00
M. Zulqarnain
6286de8bd1 refactor: pyupgrade on ace_common, api_admin, auth_exchange (#26782) 2021-03-12 14:15:03 +05:00
M. Zulqarnain
2c44315ce0 refactor: pyupgrade on pavelib & scripts (#26769) 2021-03-12 14:14:53 +05:00
Awais Qureshi
b5a6580ecc BOM-2442
pyupgrade in enterprise-support.
2021-03-12 12:39:48 +05:00
Usama Sadiq
b1b3ba9c81 refactor: ran pyugprade on lms/djangoapps/courseware (#26738) 2021-03-12 12:16:46 +05:00
Usama Sadiq
859df03049 refactor: ran pyupgrade on lms/djangoapps/courseware (#26737) 2021-03-12 12:15:58 +05:00
Carla Duarte
dbf2b86f25 Merge pull request #26928 from edx/ciduarte/hack
AA-671: Course Home MFE Progress Tab API cleanup
2021-03-11 16:09:48 -05:00
Alex Dusenbery
bf577ee891 fix: enterprise 3.18.3 | Adds the catalog admin role to roles_api.roles_by_name(). 2021-03-11 15:54:03 -05:00
Carla Duarte
99f73312b8 Progress Tab 2021-03-11 15:43:58 -05:00
Felipe Montoya
52f9c04a55 Merge pull request #26700 from jramnai/tst-automatic_auth_for_testing
[TSD] add annotations for AUTOMATIC_AUTH_FOR_TESTING feature flag
2021-03-11 15:10:21 -05:00
Usman Khalid
23d1e5b654 Remove unused RawDescriptor and EmptyDataRawDescriptor. 2021-03-11 22:20:33 +05:00
Usman Khalid
78cd8be24d XMLModuleStore should use HiddenDescriptor instead of RawDescriptor.
In https://github.com/edx/edx-platform/pull/25955 `HiddenDescriptor`
(which was a subclass of `RawDescriptor` with a custom `student_view()`)
was converted to an XBlock. It is used as the `default_class` by the
`CachingDescriptorSystem` classes. However `RawDescriptor` is still
being used by `XMLModuleStore`. This has been replaced by
`HiddenDescriptor` as well.
2021-03-11 22:20:33 +05:00
Usman Khalid
fb02353719 Convert TranslateCustomTagDescriptor to TranslateCustomTagBlock. 2021-03-11 22:20:33 +05:00
Usman Khalid
556ef4cb39 Created CustomTagTemplateBlock to use with CustomTagBlock instead of RawDescriptor. 2021-03-11 22:20:33 +05:00
alangsto
027704adae Added optional param on submit post request to mark experiment name (#26925) 2021-03-11 10:31:47 -05:00
Felipe Montoya
3ed4c6548e Merge pull request #26942 from mitodl/arslan/243-allow-discussion-annotation
[TSD] Added annotation for ALLOW_HIDING_DISCUSSION_TAB feature flag
2021-03-11 10:29:20 -05:00
David Ormsbee
74ef4664c5 fix: Use fallback when titles are unavailable for outlines.
The Studio UI prevents you from creating a Section or Subsection
with no title (display_name). But OLX import allows you to bypass
these checks and create Sections ("chapter" tag) and Subsections
("sequential" tag) without display_name information specified in
the XML. When this happens, Studio and the LMS fall back to using
the url_name (the last part of the UsageKey) as a title, using the
display_name_with_default method.

This usually works, because url_names are derived from the import
file name, and if you're hand-editing a course in XML, your file
names are probably more intelligible than Mongo object IDs. In any
case, this commit updates get_outline_from_modulestore to match the
behavior of Studio and the LMS with respect to this situation.

This is part of the course outlines backfill rollout. TNL-8056
2021-03-11 09:19:57 -05:00
Awais Qureshi
d24f79a264 BOM-2442
pyupgrade in enterprise_support
2021-03-11 14:54:23 +05:00
stvn
435f2a3f79 Merge PR #26718 bd03/api/init
* Commits:
  feat: Add discussions API endpoint [BD-03]
  docs: Add ADR for DiscussionsConfiguration HTTP API [BD-03]
2021-03-11 00:17:16 -08:00