Commit Graph

65 Commits

Author SHA1 Message Date
Robert Raposa
8ef8b35a54 docs: update toggle docs
A variety of updates were made to improve the toggle documentation:
* Added comments to help ensure that the waffle(), waffle_switches(),
  waffle_flags() anti-pattern won't be contagious (copied).
* Some minor toggle_description updates.
* Removed empty toggle_target_removal_date annotations for
  non-temporary toggles.
* Removed empty optional toggle_warnings annotations.
* Removed empty optional toggle_tickets annotations.
* Removed deprecated toggle_category, toggle_status,
  and toggle_expiration_date annotations.
* Fixed some indents, use cases, and implementations.

ARCHBOM-1721
2021-04-01 21:58:29 -04:00
Braden MacDonald
f99c42fb0c Merge pull request #26667 from BbrSofiane/bbrsofiane/tsd-relative_course_dates
[TSD] Annotate relative_dates waffle flag
2021-03-10 21:38:45 -08:00
Kyle McCormick
9aefd6f986 style: django-not-configured is not a sensible lint-amnesty value (#26862)
django-not-configured is an error raised by pylint (with
the pylint-django plugin) when it's not correctly configured.

We should not be applying lint amnesty for such a violation.
2021-03-05 08:11:58 -05:00
Sofiane Bebert
018786489b doc: annotate relative_dates waffle flag 2021-02-27 12:49:18 +00:00
Awais Qureshi
07b182b3be BOM-2335
Apply pylint-amnesty.
2021-02-04 16:37:41 +05:00
Régis Behmo
d50086a84b Annotate course_experience.calendar_sync
This simply adds code annotations to the course waffle flag, but does not
affect behaviour.
2021-01-29 11:41:40 +01:00
Régis Behmo
a16cd71046 Start waffle namespace deprecation
By explicitly importing the legacy namespace classes, we make it clear
that we are using soon-to-be-deprecated classes. We will then be able to
start removing the legacy classes, one module at a time.
2020-12-03 16:06:14 +01:00
sarina
b8bd4f6310 DEPR-48 Remove CourseTalk integration & Course Reviews functionality 2020-11-17 13:11:54 -05:00
Michael Terry
40fbef4af2 AA-289: rewrite how course updates behave when dismissed
Previously, dismissing one course update would disable all future
updates. But that feels a bit limiting.

Instead, these are the new rules:
- If the newest update has not been dismissed yet, it gets displayed.
- If the newest update has been dismissed, we display nothing.
- Editing the newest update will cause it to be displayed again.
- New updates get displayed, even if previous updates were dismissed.

This commit includes a light refactoring and addition of some utility
methods to help manage the above.

It also notes that the learning MFE does not use the "latest_update"
waffle option, which controls the labeling of the update message.
2020-11-12 09:39:15 -05:00
Manjinder Singh
c74b623948 Fixing code-annotations (#25539)
* Fixing code-annotations
2020-11-06 12:52:08 -05:00
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
474da0c5a5 Refactor WaffleFlag and WaffleFlagNamespace internal API
This simplifies the internals of the waffle flag classes in order to
better move them to edx-toggles later.
2020-10-29 22:59:52 +01:00
Régis Behmo
13a70fcaa6 Deprecate COURSE_OUTLINE_PAGE_FLAG and UNIFIED_COURSE_TAB_FLAG
These flags are deprecated in favor or the DISABLE_* equivalent.
This allows us to get rid of the DefaultTrueWaffleNamespace class.
2020-10-27 10:20:41 +01:00
Tim McCormack
c71c9d4984 Replace s/metric/attribute/g in waffle_utils and in caller
This changes:

- `WAFFLE_FLAG_CUSTOM_METRICS`
- `WaffleFlagNamespace._set_waffle_flag_metric`
- `_get_waffle_flag_custom_metrics_set` and some other unreferenced
  internals
2020-09-22 23:19:23 +00:00
Tim McCormack
ba9ee4e151 ARCHBOM-1494: Refer to custom attributes, not metrics, especially with edx-django-utils (#25010)
This uses the new names introduced in edx-django-utils
3.8.0 (edx/edx-django-utils#59), which we're already using, as
well as updating a few other locations where we incorrectly refer
to New Relic custom metrics instead of custom attributes.

Includes a couple of unrelated lint fixes in a file I modified.
2020-09-18 13:33:50 +00:00
Régis Behmo
a4ba4ae45e Clarify many feature toggle annotations across all applications 2020-09-16 15:20:43 +02:00
Régis Behmo
7d93715880 Rename toggle_expiration_date to toggle_target_removal_date
This is part of the changes brought by code-annotations==0.7.0
2020-09-16 15:19:16 +02:00
Régis Behmo
98a13d6a7e Remove deprecated toggle_status annotation
This annotation is deprecated since code-annotations==0.7.0
2020-09-16 15:19:15 +02:00
Régis Behmo
d1f9e769d0 Simplify the toggle_use_case annotation
Since code-annotations==0.7.0, incremental_release, launch_date,
monitored_rollout, graceful_degradation, beta_testing are all considered
as "temporary" use cases.
2020-09-16 15:16:13 +02:00
Régis Behmo
ab0e21455a Get rid of the toggle_category annotation, now deprecated
Since code-annotations==0.7.0, this annotation is not used anymore.
2020-09-16 15:16:13 +02:00
Régis Behmo
7dc460d50a Wrap toggle annotation lines with multiline comments
This takes advantage of the new multiline annotation format with
single-line comment prefix, from code-annotations.
2020-09-16 15:16:12 +02: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
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
Robert Raposa
10ab63995a remove temporary USE_DEFAULT_TRUE_NAMESPACE (#24404)
Once USE_DEFAULT_TRUE_NAMESPACE is fully rolled out
and proves to return True where we wish, we can
remove this temporary roll-out flag introduced in:
https://github.com/edx/edx-platform/pull/24322

ARCHBOM-1316
2020-07-07 15:07:59 -04:00
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
morenol
41543edd93 Remove course_experience.use_bootstrap waffle flag (#24028)
[BD-10] [DEPR-83]
2020-06-17 13:26:51 -04:00
Carla Duarte
6fd6605eed Remove Shorten Welcome Message flag
Removed use of the 'shorten_welcome_message' waffle flag

AA-108
2020-05-08 15:25:59 -04:00
Michael Terry
7a71356cd2 Cut off long course welcome messages
If a course welcome message is very long, cut it off with an
ellipsis and show a Show More button to reveal the full thing.

AA-46
2020-04-07 10:49:40 -04:00
Dillon Dumesnil
a59155e83c AA-36: Link to toggle calendar sync 2020-03-10 14:45:29 -04:00
Michael Terry
24aaebdfa5 Use relative dates flag for dates widget v2
Switch from a separate waffle flag for the dates widget v2 work
and just use the relative dates experiment flag instead.
2020-03-05 16:38:07 -05:00
Michael Terry
e724a4bcb7 Add ExperimentWaffleFlag
This is a helpful class when running an experiment, to help
bucket users and keep track of which enrollments to consider
as part of the experiment.

AA-53
2020-03-03 14:39:02 -05:00
Dillon Dumesnil
be7ef9804d AA-4: Adding waffle flag for dates widget 2020-02-18 11:20:32 -05:00
Michael Terry
f684d2b541 Add relative dates waffle flag
Specifically, course_experience.relative_dates. This will be used
by future PRs to control our rollout of this new feature.

AA-27
2020-02-10 13:41:40 -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
Stu Young
e229279f3c fix invalid choices in toggle annotations (#22266) 2019-11-07 15:22:46 -05:00
Diana Huang
ff795347dd Annotate a few of the course_experience waffle flags. 2019-10-01 16:03:36 -04:00
Emma Green
c4ae093e75 remove discount banner display flag 2019-06-28 14:46:21 -04:00
Kyle Mulka
4138445ad7 ran modernize on openedx/features/course_search, course_experience, and coursetalk (#20423) 2019-05-06 22:44:04 -04:00
Matthew Piatetsky
75dc4459cd add first purchase discount banner on course home 2019-05-02 16:14:16 -04:00
Paulo Viadanna
c4fc4b5df6 Adds CouseModule.course_visibility and XBlock.public_view() for unenrolled users access to courses.
The course_visiblity field can have one of three values:
1. private (default): This keeps the standard access rules.
2. public_outline: Allows unenrolled and anonymous users access to the outline.
3. public: Allows unenrolled and anonymous users access to both outline and
   course content.

When an unenrolled user accesses course content, instead of student_view(),
public_view() is used. A default implementation is provided for XBlocks
which do not implement this view. The public_view() must not have any
functionality which assumes the presence of a valid User and should show
a readonly only interface for the XBlock content.
2018-12-07 22:17:36 +05:00
Awais Jibran
194c6bacb6 Revert "Merge pull request #18720 from open-craft/paulo/anonymous-views"
This reverts commit f9ae594dfe, reversing
changes made to 7c08e50fde.
2018-11-09 22:49:14 +05:00
Paulo Viadanna
e6e0a02e0a Adds CouseModule.course_visibility and XBlock.public_view() for unenrolled users access to courses.
The course_visiblity field can have one of three values:
1. private (default): This keeps the standard access rules.
2. public_outline: Allows unenrolled and anonymous users access to the outline.
3. public: Allows unenrolled and anonymous users access to both outline and
   course content.

When an unenrolled user accesses course content, instead of student_view(),
public_view() is used. A default implementation is provided for XBlocks
which do not implement this view. The public_view() must not have any
functionality which assumes the presence of a valid User and should show
a readonly only interface for the XBlock content.
2018-11-07 16:18:39 +05:00
Adeel Khan
5a730aa934 Improve CourseListView end point latency by removing CourseWaffleFlag.
This patch would remove CourseListView slow transaction by changing
CourseWaffleFlag to WaffleFlag. This removes extra hit on
WaffleUtil's model (WaffleFlagCourseOverrideModel).

LEARNER-5566
2018-07-13 16:09:05 +05:00
Cole Rogers
623cb0d6ae Removed GDPR flag and its functionality 2018-06-04 10:25:37 -04:00
Diana Huang
4dd164de91 Add new waffle flag for toggling GDPR work. 2018-03-08 14:52:33 -05:00
Matthew Piatetsky
4fdd15a2a2 make unified_course_tab on by default 2018-02-22 08:45:25 -05:00
John Eskew
875a127f84 Pylint fixes to move number below allowed threshold. 2018-01-25 11:38:37 -05:00
Matthew Piatetsky
222b356900 Fix course upsell styling when bootstrap is enabled 2018-01-09 16:09:26 -05:00
Andy Armstrong
374cdb0a3d Convert course home page to Bootstrap
LEARNER-1694

Fix a11y failure

Fix header styling

Fix layout issues

Further layout fixes
2017-10-10 20:18:27 -04:00
Andy Armstrong
7dfe12a1f3 Show course home messages for important course dates
LEARNER-2073
2017-10-02 17:27:51 -04:00