Commit Graph

1582 Commits

Author SHA1 Message Date
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
3b127f8c92 Deprecate WaffleSwitch.override* methods
This allows us to get rid of the custom WaffleSwitch and
WaffleSwitchNamespace classes from waffle_utils in favour of
edx_toggles.toggles classes.
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
sarina
f414fad0cc Change gendered language to gender-neutral 'they/them/their' 2020-11-02 18:23:13 -05:00
Robert Raposa
39a7c6498c remove internal references to edx_django_utils
Tests were referring to internal implementation
details of edx-django-utils. This comment removes
those references to free the library up to be
refactored.

ARCHBOM-1584
2020-11-02 16:46:11 -05:00
Régis Behmo
87b5463d42 Use SettingDictToggle to document ENTRANCE_EXAMS 2020-10-29 11:11:02 +01:00
David Ormsbee
0c61b0d4e2 Re-enable refreshing from library only on initial insertion of lib (#25347)
If the library content block is already in the course, then don't
refresh the children when we re-import it. This lets us address
TNL-7507 (Randomized Content Block Settings Lost in Course Import)
while still avoiding AA-310, where the IDs of the children for an
existing library_content block might be altered, losing student
user state.

When importing, we only copy the default values from content
in a library the first time that library_content block is created.
Future imports ignore what's in the library so as not to disrupt
course state. You can still update to the library via the Studio
UI for updating to the latest version of a library for this block.
2020-10-21 10:49:32 -04:00
Kyle McCormick
a3deb6e317 Sort imports in cms/
Command: `isort --recursive cms/`
2020-10-19 09:34:31 -04:00
Kyle McCormick
538dbf696b Import CMS code using fully qualified module names
or, using proper the proper Python 3 relative imports
(e.g., 'from .views import x') which are standard and
unambiguous.
2020-10-19 09:34:31 -04:00
Kyle McCormick
7538691484 Patch CMS app code in tests using fully qualified names 2020-10-19 09:34:31 -04:00
DawoudSheraz
b80fefdbdd remove VEDA reference from platform 2020-09-28 10:14:32 +05:00
Sid Verma
78045115ab Add filtering and search support to library APIs 2020-09-18 10:25:59 -04:00
Zachary Hancock
33f6d77f31 Alert banner for proctoring settings error (#24960) 2020-09-17 14:15:34 -04:00
Feanil Patel
d264490fb7 Merge pull request #24952 from regisb/regisb/simplify-waffle-module-name
[BD-21] Simplify hack to obtain waffle module names
2020-09-15 11:19:43 -04:00
Usman Khalid
8546fa6b6f Convert LibraryContentModule to LibraryContentBlock. (#24611) 2020-09-15 08:41:29 -04:00
Régis Behmo
307457a255 Simplify hack to obtain waffle module names
Instead of going up the stacktrace to find the module names of waffle
flags and switches, we manually pass the module __name__ whenever the
flag is created. This is similar to `logging.getLogger(__name__)`
standard behaviour.

As the waffle classes are used outside of edx-platform, we make the new
module_name argument an optional keyword argument. This will change once
we pull waffle_utils outside of edx-platform.

Note that the module name is normally only required to view the list of
existing waffle flags and switches. The module name should not be
necessary to verify if a flag is enabled. Thus, maybe it would make
sense to create a `add` class methor similar to:

    class WaffleFlag:
        @classmethod
        def add(cls, namespace, flag, module):
            instance = cls(namespace, flag)
            cls._class_instances.add((instance, module))
2020-09-14 09:30:24 +02:00
Régis Behmo
ba18d48ac3 Get rid of lepl deprecation warning by removing rfc6266 dependency (#24059)
The LEPL dependency was triggering a lot of deprecation warnings of the
form:

    venv/lib/python3.5/site-packages/lepl/matchers/support.py:497:
    DeprecationWarning: inspect.getargspec() is deprecated, use
    inspect.signature() instead
    argspec = getargspec(func)

It turns out that LEPL was only used by the rfc6266_parser package, which
itself was only used in one place to generate utf8-compliant
Content-Disposition headers.

This issue was noticed here:
https://github.com/SWW13/python-rfc6266-parser/issues/2
Unfortunately it is quite difficult to extract LEPL from the
rfc6266-parser package.

The rfc6266-parser package (https://pypi.org/project/rfc6266-parser/) is
itself a fork of the now-unmaintained rfc6266 package
(https://pypi.org/project/rfc6266/). Thus, it became high time to get
rid of this package. The FileResponse object can appropriately set the
Content-Disposition header, and thus replace the rfc6266 functionality,
since Django 2.0: https://code.djangoproject.com/ticket/16470

In our testing, the FileResponse object correctly set the
`filename*=utf-8''` value, following the RFC. The only difference is
that it does not provide "filename" fallback value, as expressed in the
RFC: https://tools.ietf.org/html/rfc6266#appendix-D

With rfc6266_parser:

    >> import rfc6266_parser
    >> rfc6266_parser.build_header("my_file_é.csv", filename_compat="video_urls.csv")
    b"attachment; filename=video_urls.csv; filename*=utf-8''my_file_%C3%A9.csv"

With FileResponse we have:

    >> from django.http import FileResponse
    >> import io
    >> response = FileResponse(io.StringIO(), as_attachment=True, filename="my_file_é.csv", content_type="text/csv")
    >> response.get("Content-Disposition")
    "attachment; filename*=utf-8''my_file_%C3%A9.csv"

We consider that this is a sufficiently minor difference, that will
impact very few browsers.
2020-08-31 09:30:27 -04:00
Dillon Dumesnil
79e96af197 Disable updating Library Content children during import 2020-08-20 07:26:27 -07:00
Adolfo R. Brandes
455dd9db4c New library authoring MFE toggle 2020-08-07 09:22:01 -04:00
DawoudSheraz
12f2e6eb2b remove percentage field from VEM pipeline config model 2020-08-07 10:25:52 +05:00
Sid Verma
99220e0967 Add "Source from library" XBlock
This lets the user import a block from a blockstore-based content library into a (modulestore based) course, by copying the block into the course.
2020-07-24 13:32:37 +05:30
uzairr
fb9ba90efe PROD-1236: Do not expose user id with certificate URL. 2020-07-17 22:59:34 +05:00
alangsto
7ea9714a33 Updated URLs to course-authoring MFE (#24468)
* updated urls to course-authoring MFE

* updates for requested changes

* updated for pylint errors
2020-07-13 16:10:48 -04:00
Sid Verma
c609451d2e [BD-14] Limit number of blocks allowed in content libraries (#24276)
* Enforce limit on number of blocks allowed in library (blockstore)

* Enforce limit on number of blocks allowed in library (modulestore)

* Changes from review feedback
2020-07-13 15:49:47 -04:00
alangsto
90d6b18711 Add link to exam settings page from studio (#24405)
* testing

* updates to drop down

* unit tests. env changes were copied based on other MFEs in LMS

* added exam settings link to other course settings pages

* fixed pylint errors

* updates for requested changes

* updates for requested changes, as well as changes for xss linter
2020-07-09 10:13:18 -04:00
Robert Raposa
77e490f057 ARCHBOM-1305: remove deprecated flag_undefined_default (#24426)
This is the final step in removing the deprecated
flag_undefined_default as explained by the following ADR:
https://github.com/edx/edx-platform/blob/master/openedx/core/djangoapps/waffle_utils/docs/decisions/0001-refactor-waffle-flag-default.rst

Notes:

* All uses of flag_undefined_default=False were always
  supposed to have been no-ops.
* All uses of flag_undefined_default=True that are removed
  in this PR have been replaced by migrations in past PRs.
* The temporary metric temp_flag_default_used id no longer
  reporting any data.

ARCHBOM-1305
2020-07-09 09:31:31 -04:00
Zainab Amir
0b80987ba0 Add vem_enabled_courses_percentage (#24294)
Add a field to VEM config model that will decide the percentage of
courses allowed to go to VEM pipeline. The courses that don't meet the
criteria will go to VEDA.

PROD-1722
2020-06-26 14:30:42 +05:00
Kyle McCormick
4857bd5d1e Disable changing special exam type after release date (#24118)
* Disable changing special exam type after release date

Do some client-side validation to make sure that exams
that *are* or *ever were* special may not be changed
to a special exam type (other than the current one)
after release date.

MST-258

Co-authored-by: Zach Hancock <zhancock@edx.org>
2020-06-11 10:45:04 -04:00
Zainab Amir
cdc1c91980 Integrate Video Encode Manager (#24093)
* Add VEMPipelineIntegration config model
* Add course waffle flag to enable vem pipeline selectively

PROD-1636
2020-06-04 11:45:34 +05:00
asadazam93
86d7725f26 fixed visibility state for self paced 2020-06-03 14:06:54 +05:00
Kyle McCormick
7e3470db42 Expose was_ever_proctored_exam dict entry on xblock_info (#24040)
In a follow-up PR, this entry will be used to validate
on the client-side that a block that *is* or *ever was*
a proctored/practice/onboarding exam cannot be configured
as a different proctored/practice/onboarding exam, as that
has led to problematic exam configuration states between
edX and proctoring providers.

MST-258
2020-06-02 09:44:12 -04:00
Zainab Amir
bfd95c7fbb Remove transcript credential saving in VAL (#24066) 2020-05-27 18:38:01 +05:00
Ahtisham Shahid
675721aa0e fixed linter issue 2020-05-20 15:04:08 +05:00
Ahtisham Shahid
7110b45e85 fixed linter issue 2020-05-20 14:40:56 +05:00
Ahtisham Shahid
4f5496f02c Fixed Import error due to pre tag
Fixed regex for nested pre tags

Updated import export test

fixed quality test issue

fixed No exception type(s) specified

updated tests

fixed linter issue

fixed linter issue

fixed linter issue
2020-05-20 13:17:53 +05:00
Zainab Amir
87a1c06d4b Display encode and transcript status (#23919)
* Have separate column for transcript and encode status
* Display error message sent from VEM

PROD-1432
2020-05-12 16:12:07 +05:00
mariajgrimaldi
6eead791a1 Fix DeprecationWarning: Please use assertNotRegex instead (#23907)
I wanted to make a byte-sized contribution but there were no Jira tickets so we decided, thanks to a conversation with @jmbowman through the Open Edx Community #incr (Slack) channel, to collaborate in the elimination of warnings listed in the Warnings Report at https://build.testeng.edx.org/job/edx-platform-python-pipeline-master/warning_5freport_5fall_2ehtml/

This PR contributes to the elimination of deprecation warnings, specifically the one mentioned above and reported in the Warnings Report.

Changed assertNotRegexpMatches to assertNotRegex in the following files:

    cms/djangoapps/contentstore/views/tests/test_preview.py

    cms/djangoapps/contentstore/views/tests/test_item.py

    lms/djangoapps/commerce/tests/test_views.py

    lms/djangoapps/dashboard/tests/test_sysadmin.py

This warning occurs due to deprecation in python 3.5: https://docs.python.org/3.5/library/unittest.html#unittest.TestCase.assertNotRegex
2020-05-08 11:53:02 -04:00
Syed Muhammad Dawoud Sheraz Ali
6a78c30ac8 add transcript failed status (#23838) 2020-05-06 10:13:13 +05:00
Aarif
98af9ce418 remove useless-supression warnings 2020-05-01 19:42:15 +05:00
Zainab Amir
f10adf5e6a Add new transcription status (#23766)
Added new transcription status to represent *partial failure*,
meaning some jobs failed while others passed

PROD-1486
2020-04-22 13:08:47 +05:00
Ali-D-Akbar
d959a01778 add improved re-write for course updates
add improved re-write for course updates

add improved re-write for course updates

add edge case test for course update re-write

add edge case test for course update re-write

add edge case test for course update re-write

add edge case test for course update re-write

add edge case test for course update re-write
2020-04-20 15:09:28 +05:00
Aarif
6ee2089077 fixed warnings for wrong-import-order 2020-04-08 23:43:06 +05:00
Tim McCormack
2a27fe0915 Remove bad "test_no_file" test case revealed by Django 2.1 upgrade (#23584)
Before Django 2.1, the dict was being stringified as `{'name': 'file.txt'}`
(note the single quotes) and producing a JSON parse error in
https://github.com/edx/edx-platform/blob/9cf2f9f/cms/djangoapps/contentstore/views/assets.py#L541
which was then converted to a 400 error. However, in Django 2.1,
django.test.client starts JSON-encoding request bodies when an appropriate
content-type is set:
https://github.com/django/django/compare/2.0.8..2.1#diff-97160f50594424a40f2621d5a3c581ccR320

This results in the JSON parse succeeding, and the expected error never
occurs; instead, there is a KeyError when the `locked` attribute is
missing from the dict.

For now, removing the test, since it is blocking Django 2 upgrade work,
and we need to get off of (unsupported) Django 1.11 ASAP.
We should probably repair and restore this test, but it is likely that
we'll want to change the code it is testing first, since that code is
insufficiently defensive and handles both multipart form data and JSON
without properly checking which kind it is dealing with, as well as
assuming too much about what keys are present in the JSON.

I've filed ARCHBOM-1090 for this followup work.
2020-04-02 13:59:20 -04:00
Syed Muhammad Dawoud Sheraz Ali
cd6549748b add credentials saving in VAL (#23561) 2020-04-02 11:21:09 +05:00
Tim McCormack
22c963a935 Perform byte/string conversions where Django is no longer tolerant 2020-03-30 13:59:32 +00:00
Ahtisham Shahid
f264e5dd03 fixed \n escape issue in import
updated test

updated test
2020-03-27 12:29:32 +05:00
Zainab Amir
ed25521f61 Enable testing pipeline for video uploads to s3 (#23375)
Add integration settings to enable upload of videos from from studio.
Settings enable user to connect to s3 bucket using mfa and assume role
functionality.

PROD-1214
2020-03-12 12:19:52 +05:00
Dave St.Germain
95abce3830 Fixed the studio breadcrumbs to show the current chapter/section name. 2020-03-10 14:29:56 -04:00
Jeff LaJoie
fa3b1cd835 AA-6: Adds in dates tab and dates dashboard view to courseware 2020-02-25 10:48:45 -05:00
Adeel Khan
d8fb768684 Using Feature flag to disable Mobile Course Available UI
This patch would disable Mobile Course Available
UI field in studio's advanced settings based on
DISABLE_MOBILE_COURSE_AVAILABLE flag..

PROD-1243
2020-02-13 19:49:09 +05:00