Commit Graph

41 Commits

Author SHA1 Message Date
Robert Raposa
7f22041fc1 ARCHBOM-1316: always enable some course_experience flags (#24322)
In order to remove the deprecated flag_undefined_default=True
argument, this commit updates the following flags to always be
enabled using a new temporary class:

- course_experience.course_outline_page
- course_experience.unified_course_tab

Adds a temporary setting `USE_DEFAULT_TRUE_NAMESPACE`,
to enable a monitored rollout of this change.

TNL-7061 is the ticket where these flags will actually be
removed. This requires more careful work including removing
all dead code, and potentially refactoring tests that were
testing shared functionality, but only when the flag was
False.

ARCHBOM-1316
2020-07-02 12:00:23 -04:00
Nimisha Asthagiri
a219381361 Update 0001-refactor-waffle-flag-default.rst (#24308) 2020-06-23 21:03:06 -04:00
Robert Raposa
f060872878 update waffle flag and docs (#24299)
- update ADR to provide more alternatives for updating
the default value of a flag.
- add a `flag_` prefix to the flag metrics
- add module-level note about flag metrics
- add NewRelic query example and warning
- fix typo in toggle annotation

ARCHBOM-1302
2020-06-23 13:55:06 -04:00
Robert Raposa
a1ed944c72 add temp waffle flag default metric (#24284)
The argument flag_undefined_default is soon to be retired
once ARCHBOM-132 is closed. The following will be used to
help ensure the rollout is complete.

- Add a temporary metric if flag_undefined_default is used.
- Add deprecation warning for flag_undefined_default.
- Add minor fix for waffle flag metric when no request found.

ARCHBOM-132
2020-06-22 13:53:17 -04:00
Robert Raposa
5ea9d313ad add ADR for waffle flag default (#24272)
We are changing how we handle updates to a waffle flag
default, and the ADR explains why and how.

ARCHBOM-1303
2020-06-22 10:12:10 -04:00
Robert Raposa
343a5a8a74 update waffle flag custom metrics (#24270)
The previous version of this code used the Django Setting
ENABLE_WAFFLE_FLAG_METRIC to determine whether to add a single
metric with a dict of details about all flags. Due to
NewRelic's 256 character limit on the metric value, this was
getting truncated.

This new version instead uses the Django Setting
WAFFLE_FLAG_CUSTOM_METRICS, a list of waffle flag names to
instrument.

The name of each custom metric will match the name of the flag.
The value of the custom metric could be False, True, or Both.

The value Both would mean that the flag had both a True and False
value at different times during the transaction. This is most
likely due to having a check_before_waffle_callback, as is the
case with CourseWaffleFlag.

ARCHBOM-132
2020-06-22 10:11:40 -04:00
Robert Raposa
a1572dafce add waffle_flag custom metric (#24244)
If setting ENABLE_WAFFLE_FLAG_METRIC is True, a custom
metric will be added with the values of all WaffleFlag
and CourseWaffleFlags seen during the transaction.

Metric flag values could be False, True, or Both.
The value Both would mean that the flag had both
a True and False value at different times through
the transaction. This is most likely due to having a
check_before_waffle_callback, as is the case with
CourseWaffleFlag.

Example metric value:

    "{'another.course.flag': 'False', 'some.flag': 'False', 'some.course.flag': 'Both'}"

Warning: NewRelic does not recommend large custom
metric values due to the potential performance
impact on the agent, so you may just want to
enable when researching usage of a particular flag.
Metric values longer than 255 are truncated.

TODO: A how_to can be added later if we find this
useful, including helpful querying tips.

ARCHBOM-132
2020-06-18 12:21:57 -04:00
Aarif
6ee2089077 fixed warnings for wrong-import-order 2020-04-08 23:43:06 +05:00
Bill DeRusha
c1ebdaf0c3 Fix Deprecation: log.warn -> log.warning 2020-02-28 15:04:07 -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
Ayub khan
49032ba88e BOM-951
waffle_utils: Explicitly Set fields to unicode to avoid migration
2019-10-23 15:11:34 +05:00
Ayub khan
5c47a3b425 BOM Project
Updated __unicode__ to __str__
2019-09-25 18:31:54 +05:00
aliciaerwin
6d3e3bf876 INCR-163 python-modernize on openedx/core/djangoapps/waffle_utils (#20469) 2019-05-09 11:54:17 -04:00
Nimisha Asthagiri
dbde017a9b Order History: Toggled redirection to Microfrontend
ARCH-641
2019-04-11 08:21:49 -04:00
Julia Eskew
368f221f0a Initial start on annotations. 2019-02-19 11:24:21 -05:00
Matthew Piatetsky
444799fb0e fix unicode strings in openedx/ part 2 2019-02-15 10:15:51 -05:00
Nimisha Asthagiri
02ba5fb0e8 Login service support for JWT Cookies 2018-10-01 13:08:40 -04:00
Nimisha Asthagiri
700a902b68 Cleanup and remove deprecated RequestCache Django app
ARCH-223
2018-09-12 14:39:11 -04:00
Robert Raposa
ba4cc62ff8 Retire deprecated RequestCache (Take 2)
ARCH-223
2018-09-08 15:09:28 -04:00
Nimisha Asthagiri
4ca165f690 Revert "ARCH-223: Retire deprecated RequestCache." 2018-08-30 16:33:03 -04:00
Robert Raposa
3df339a56a Retire deprecated RequestCache.
ARCH-223
2018-08-30 08:55:19 -04:00
Michael Youngstrom
8aed0ff719 Clean up after any get_mock_request or set_current_request calls 2018-08-22 17:23:39 -04:00
Jeremy Bowman
380a24f7ef TE-2689 Remove useless pylint suppressions part 6 2018-08-21 13:54:34 -04:00
Christopher Lee
52d2b2de74 Add namespaced_name to WaffleSwitch 2018-06-19 13:51:19 -04:00
Diana Huang
6ceb7e1500 Update TOS and Privacy Policy field on registration from for GDPR. 2018-04-02 10:01:18 -04:00
Robert Raposa
5d9d20e029 Add docs for handling default values. 2018-03-15 09:59:06 -04:00
Jeremy Bowman
bf86b3da98 PLAT-1942 Handle xmodule_django field deprecations 2018-02-05 15:05:54 -05:00
Qubad786
64555c60c0 Move request_cache to openedx.core.djangoapps 2018-01-26 15:09:25 +05:00
Jeremy Bowman
669aa13ad6 PLAT-1873 to_deprecated_string() cleanup part 2 2018-01-08 17:26:55 -05:00
Ned Batchelder
e23e3a0486 Fix a number of unused-import pylint violations 2017-11-21 19:57:06 -05:00
Clinton Blackburn
9782b40751 Updated override_waffle_flag to work as a context manager
override_waffle_flag can now be used as a context manager in addition to its previous role as a decorator. Additionally, the tests have been updated to use standard assertions since we now use py.test.
2017-11-06 15:32:12 -05:00
Andy Armstrong
c55dbb2c61 Allow Waffle flags to work when outside a request context 2017-10-27 16:24:33 -04:00
Nimisha Asthagiri
cd1eaf3010 Dynamic Pacing: Waffle switch 2017-10-23 18:30:36 -04:00
John Eskew
02f26f55ce Remove unused imports. Push model imports down into relevant methods.
Mock out the static_replace modules in the proper location.
2017-10-05 11:12:52 -04:00
Simon Chen
893b7a0060 Stop audit and honor mode creating basket and order
LEARNER-2222
2017-08-15 16:08:08 -04:00
Robert Raposa
db16ec2a04 Merge pull request #15577 from edx/robrap/LEARNER-1896-fix-waffle-flag-cache
Fix course override caching bug.
2017-07-14 18:33:54 -04:00
Robert Raposa
7e8566b4d8 Fix course override caching bug.
LEARNER-1896
2017-07-14 16:45:27 -04:00
Andy Armstrong
aeecf34387 Enable conditional pre-start-date access to courses
LEARNER-1854
2017-07-14 14:00:48 -04:00
Andy Armstrong
a815003b3b Handle anonymous and unenrolled users on the new course home page
LEARNER-1696
2017-07-10 17:52:28 -04:00
Robert Raposa
2e80c1e66b Refactor, enhance, and adjust unified_course_view flag.
This includes several general enhancement in addition
to the fixes for unified_course_view:
1. Add support for default when no waffle flag defined.
2. Add support for table_blacklist to assertNumQueries.
3. Rename flag to 'course_experience.course_outline_page'.
4. Change flag default to True when it is not defined.
2017-06-29 11:04:35 -04:00
Robert Raposa
eaab2cf444 Add course overrides of waffle flags. 2017-06-01 15:12:50 -04:00