Commit Graph

4194 Commits

Author SHA1 Message Date
David Ormsbee
d0c764b4d8 Merge pull request #22320 from open-craft/fix-blockstore-field-bug
Improve handling of 'children' field in Blockstore XBlock runtime
2020-01-10 14:32:04 -05:00
Zia Fazal
f9e73da4f7 Merge pull request #22772 from edx/ziafazal/ENT-2524
ENT-2524: Unmarked name field of content gating partition for translation
2020-01-10 12:26:17 +05:00
Matthew Piatetsky
ca7ca033b1 Merge pull request #22768 from edx/REV-1080
add coupon code to discount banner
2020-01-09 10:51:33 -05:00
Guruprasad Lakshmi Narayanan
c9fecb1103 Update the existing 'create_site_configuration' management command
Updates the existing command, after renaming it, to allow:
* Specifying the site ID instead of the domain.
* Updating the existing site configuration parameters.
* Enabling and disabling the SiteConfiguration instance.
2020-01-09 10:34:20 -05:00
zia.fazal@arbisoft.com
5367af07d8 Unmarked name field of content gating partition
Unmarked name field of content gating partition. edX mobile apps expect it in english. If value of name field of content gating partition is not `Feature-based Enrollments` string literal mobile apps ignore gating restriction and try to pull content of the block which cause 404 errors for all those blocks which are gated.
ENT-2524
2020-01-09 16:06:51 +05:00
Braden MacDonald
ac39692a8a Fix: don't store .children usage keys in definition data cache
I needed this change because I found a bug:

1. Create a block with children in a content library
2. Delete that content library
3. Create a new identical block with children in a new content library.
4. If the OLX is identical to the original block, this new block will not load in the LMS.

The reason for the bug is that the .children field contains usage keys (which encode the library, for example), but the values were being stored in BlockstoreFieldData which caches really aggressively and caches based on the hash of the OLX. Since the OLX is identical, it assumes the .children values should be identical as well.

The fix was to move children to a children-specific field data store, and only store the part of the child data that is encoded by the OLX (the <xblock-include> data) in BlockstoreFieldData. This is a better match for the way the caching works and cleaned up a hacky part of the runtime (at least it's slightly less hacky now).
2020-01-08 15:28:36 -08:00
Matthew Piatetsky
a47e68321e add coupon code to discount banner 2020-01-08 16:57:04 -05:00
Mahyar Damavand
f1c5981fab Removing deprecated management commands which intended to clear historical data (#21522) 2020-01-08 12:50:34 -05:00
Aarif
7e517a987d Merge pull request #22576 from edx/BOM-1109
Updated the django-waffle to support django 2.2
2020-01-08 18:47:12 +05:00
zia.fazal@arbisoft.com
ffd6f48557 Ignore ResourceWarning
Ignore `ResourceWarning` to clear noise in logs until we replace `EdxRestApiClient` with `OAuthAPIClient`. We have too many warnings like this
unclosed <ssl.SSLSocket fd=33, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6, laddr=('*.*.*', 47040), raddr=('*.*.*.*', 443)
2020-01-08 15:34:29 +05:00
aarif
79bf089406 updated the django-waffle to support django 2.2
made changes to test with previous version of django-waffle

updated the query count to test

testing with version 0.13

testing with version 0.14

testing with version 0.15

added version 0.14

updated the django-waffle version to use 0.18

updated the django-waffle version to use 0.16

updated the query counts to pass tests

ran make upgrade

updated the django-waffle to support django 2.2

made changes to test with previous version of django-waffle

updated the query count to test

testing with version 0.13

testing with version 0.14

testing with version 0.15

added version 0.14

updated the django-waffle version to use 0.18

updated the django-waffle version to use 0.16

updated the query counts to pass tests

removed the pdb statements

ran make upgrade
2020-01-08 14:11:42 +05:00
Hassan
582414842b Merge pull request #22737 from edx/pwnage101/rename-creditrequirement-order-3
Rename order in CreditRequirement (3/3)
2020-01-08 01:38:51 +05:00
Hasnain Naveed
57d14201c0 Merge pull request #22735 from edx/hasnain-naveed/ENT-2524
ENT-2524 | Added the request `PATH_INFO` in exception traceback.
2020-01-07 21:33:51 +05:00
Troy Sankey
1178ad8b8b Rename order in CreditRequirement (3/3)
This stage does the following:

- Includes a migration to delete the old column.
- NO code changes.
2020-01-07 19:17:56 +05:00
hasnain.naveed
447f873924 ENT-2524 | Added the request META in exception traceback.
Only add `PATH_INFO` to log

removed METH from label too
2020-01-07 19:13:53 +05:00
Waheed Ahmed
49abac5812 Remove lang cookie for mobile app requests. (#22731)
* Remove lang cookie for mobile app requests.

Responses for mobile app requests must not include language preference cookie.

PROD-1107
2020-01-07 15:49:36 +05:00
Calen Pennington
a20d511e4e Merge pull request #22702 from cpennington/static-files-s3-configs
Load any AWS_ prefixed settings from ENV_TOKENS to allow S3Boto3Stora…
2020-01-06 14:20:43 -05:00
Waheed Ahmed
78dabaf2b5 Fix update session language endpoint.
PROD-1107
2020-01-06 18:57:46 +05:00
Calen Pennington
e11e9d9073 Allow overriding ProductionStorage and ProductionS3Storage kwargs with a django settings value 2020-01-03 12:14:12 -05:00
Robert Raposa
fca5db3c8a remove temporary metric
Note: This metric is always "None", and was only used temporarily to
prove that no `enrollment_action` was getting through.

ARCH-1253
2020-01-03 11:29:17 -05:00
Troy Sankey
407c8cb076 Rename order in CreditRequirement (2/3)
This stage does the following:

- Includes a data migration to copy the values from old to new field.
- Changes business logic to switch to using new field.
- Deletes all code references of the old field.
2020-01-03 18:07:28 +05:00
Diana Huang
c061a9c4a6 Merge pull request #22596 from edx/diana/upgrade-drf
Upgrade DRF to 3.9.4.
2020-01-02 16:09:02 -05:00
Calen Pennington
de53a434aa Merge pull request #22569 from cpennington/static-files-s3
Static files s3
2020-01-02 15:19:25 -05:00
Calen Pennington
151b309225 Convert custom storage subclasses into mixins so that we can store to either the filesystem or S3 2020-01-02 14:49:19 -05:00
Christian Clauss
6e8b4ccb08 Use ==/!= to compare str, bytes, and int literals
Identity is not the same thing as equality in Python so use ==/!= to compare str, bytes, and int literals. In Python >= 3.8, these instances will raise SyntaxWarnings so it is best to fix them now. https://docs.python.org/3.8/whatsnew/3.8.html#porting-to-python-3-8
2020-01-02 19:26:13 +01:00
Diana Huang
976c6873e5 Upgrade DRF to latest version. 2020-01-02 12:18:03 -05:00
Calen Pennington
0ee1c2f05a Remove S3ReportStorage, because S3BotoStorage already handles a custom_domain argument 2020-01-02 10:25:53 -05:00
Manjinder Singh
6c69b6d435 Adding code to output pytest warnings. (#22570)
* Added pytest-json-report plugin
	- modifying app-opts in setup.cfg
	- adding hook to all conftest.py files in repo
	- setting report to be saved to test_root/log/warnings.json
	- Writing custom logic to save json report to avoid overwrite if pytest called twice
This was created to allow us to easily parse through test warnings in jenkins
2020-01-02 10:01:52 -05:00
hunytalk
e07c2f1c27 Copy values from old to new field in Schedules Model 2020-01-02 18:00:21 +05:00
Matthew Piatetsky
09e62afb99 Merge pull request #22598 from edx/REV-1061
[REV-1061] Set discount on order based on discount that was on basket
2020-01-01 22:53:01 -05:00
Zaman Afzal
363a75cc99 ENT-2518 Fix Enterprise Login Page not showing to the user (#22602) 2020-01-01 15:18:45 +05:00
David Ormsbee
3f0281dd66 Fix test that assumes 2020 is in the future. 2019-12-31 17:25:02 -05:00
Aarif
e607657a73 Merge pull request #22620 from edx/on_delete_parameter
Added on_delete parameter to models
2019-12-31 15:23:47 +05:00
David Ormsbee
2cb2265ffe Add request caching to reduce ORM queries
This adds request caching to the following places:
* course expiration wrapper (displayed in Units)
* offer banner generation (displayed in Units)
* get_enrollment
* user_by_anonymous_id
* youtube_disabled_for_course

On a sample course with edx-val enabled, this reduced the queries
for a large sequence from 450 to 155.
2019-12-30 16:19:25 -05:00
David Ormsbee
db30d8f447 Merge pull request #22631 from appsembler/omar/iexact__in
Safer CourseOverview.org filed matching
2019-12-30 14:59:13 -05:00
Feanil Patel
046feb0cf0 Merge pull request #22649 from edx/feanil/fix_pep8
Fix all E303 pep8 errors.
2019-12-30 13:32:26 -05:00
Feanil Patel
6e3fe00fff Fix all E303 pep8 errors. 2019-12-30 12:25:38 -05:00
Feanil Patel
2df8b8226b Merge pull request #22643 from edx/feanil/2to3_asserts
Run `2to3 -f asserts . -w` on edx-platform.
2019-12-30 12:13:42 -05:00
Feanil Patel
61e1eda20d Merge pull request #22644 from edx/feanil/2to3_imports
Run `2to3 -f future . -w`
2019-12-30 11:21:05 -05:00
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
Feanil Patel
70294b0ad2 Run 2to3 -f asserts . -w on edx-platform.
https://docs.python.org/3.5/library/2to3.html#2to3fixer-asserts
2019-12-30 10:22:19 -05:00
Awais Qureshi
4d310438fa Merge pull request #22605 from edx/awais786/BOM-1117
BOM-1117
2019-12-30 20:15:00 +05:00
Jeremy Bowman
63574e12b8 Remove pytest version constraint (#22626)
Fix the issue that was preventing us from upgrading pytest.  pytest does some manipulation of test packages that prevents `pkg_resources` from loading resources from them, but used to contain a workaround for the problem.  That workaround was [removed](https://github.com/pytest-dev/pytest/issues/5392) in 4.6.0 as a performance enhancement when pytest switched from `pkg_resources` to `importlib-metadata` for its own entrypoint handling.  This tripped up one of our test modules which defined classes that loaded templates from inside a test package.  Moving these resources to the parent package fixes the problem.

More and more, `pkg_resources` is being abandoned in favor of `importlib-metadata` and `importlib_resources` as they have a simpler design with much better performance.  However, `importlib_resources` doesn't support loading files from any directory which isn't itself a Python package (and doesn't allow direct use of paths including directories within the package).  Jinja2 chose a [different approach](https://github.com/pallets/jinja/pull/1082) that we may want to emulate in our resource handling.

Also fixed usage of a removed `pytest.raises()` parameter and a bug in our configuration of the `common/lib` tests that became a problem after the upgrade.
2019-12-30 09:10:57 -05:00
Awais Qureshi
928a84f969 BOM-1117
Specifying a namespace in django.conf.urls.include() without providing an app_name is deprecated.
Adding the app_name attribute in the included module.
2019-12-30 18:08:21 +05:00
Zaman Afzal
c07268d1b5 Fix the broken privacy page link url on enterprise login page (#22528) 2019-12-30 14:57:28 +05:00
Omar Al-Ithawi
99960d7001 Safer CourseOverview.org filed matching
Regular expressions are harder to read and debug
2019-12-30 11:01:50 +03:00
Matthew Piatetsky
2775b67787 Set discount on order based on discount that was on basket 2019-12-27 11:53:56 -05:00
aarif
02350e0fee added on_delete parameter to foreign_key and oneToOne fields
changes made to fix issues with quality
2019-12-27 19:59:45 +05:00
Awais Qureshi
5f6b2db31b BOM-1111
Updating User.is_authenticated and User.is_anonymous as properties
2019-12-23 17:51:27 +05:00
Braden MacDonald
f31dc19887 Support anonymous users in the Blockstore-based XBlock runtime
Implementation details:
* Anonymous users are assigned a unique ID (like 
  `anon42c08f9996194e2a9339`) which gets stored in the django session.
  `block.scope_ids.user_id` and `block.runtime.anonymous_student_id`
  will both return this value.
* User state for anonymous users is stored in the django cache and
  automatically expires as the cache gets pruned. Because user state is
  stored, anonymous users can use interactive blocks like capa problems.
* There is no mechanism for upgrading to a registered account and
  keeping user state since the user state store for anonymous users
  (EphemeralKeyValueStore) is completely different than the one for
  registered users (DjangoKeyValueStore/"CSM"), and has no "list all
  keys" functionality.
* "User State Summary" field values are shared among [recently active]
  anonymous users but are not shared with registered users.
* Anonymous users can only access the `public_view` of XBlocks, not the
  regular `student_view`.
2019-12-19 16:12:24 -08:00