* Add screenshot links to the enterprise feature creation page
* Make enterprise pages that require sign in use an intermediate component when not signed in and redirect to the initial page when signed in
* Move Rollout steps help text to the edit all page
* Rename "Start feature rollout" to "Rollout Step"
* Rename "Rollout stages" to "Rollout steps"
* Fix editors not showing on the feature details page for all features
* Fix enterprise categories only using the first category chosen after creating a new feature
* Update summary enterprise help text
* Hide breaking change for enterprise features
* Show only enterprise metadata fields on metadata edit page for enterprise features
* Remove launch_bug_url and breaking change from enterprise features
* Refactor rendering in enterprise and non enterprise functions
* Remove Feature from tests (except guide_tests.py)
* Remove double-writes from guide.py
* remove additional Feature imports
* use key variable in possible locations
* Add type definitions for stage and feature JSON
* remove extra whitespace
* Move TypedDicts to separate file
* Fix rollout merge changes
* TODO comment
* remove unused import
* display "None" for empty intent field values
* Migrate admin/blink.html to SPA
Add implementations of the three new API routes
Remove old code for templated admin/blink.html
* Remove old handler and template
* start of tests
* fix tests
* temp
* separate into smaller elements
* add more python tests
* fix lint for optional values
* add tests
* fix lint error
* update model names
* use global
* fix test
* fix jsdoc from renaming
* address feedback
* update accuracy verification for multiple stages
* Update guide.py to only change fields in form
* fix touched tests
* changes suggested by @jrobbins
* Enable all gates and add reviewers.
* Update approval_defs.py
Add type annotation
* Update core_enums.py
There's no need for all the reviews when shipping something that is just a code change.
* Hide edit button on feature page for enterprises
* After creating an enterprise feature go to the edit all page at the first rollout section
* Open all section on the feature page for enterprise by default
* Adding stage for enterprise features only adds rollout feature
* Remove the action of setting a stage in enterprise features
* Update scrolling behavior to scroll to the element from the hash if no form field is found
* Remove the edit icon from the feature page that navigates to the edit page
* Add an id to the "edit all" section headers to serve as an anchor for navigations
Remove the enterprise feature choice when creating a new feature.
Make enterprise feature creation accessible via url only.
Ensure only the enterprise fields are shown on the feature, edit and edit all pages for enterprise features.
* trial extensions displayed and edited with trials
* edit extension info on editall
Also, display trial info on detail page
* thorough commenting
* concat stageIds
* Add corner case cover
Display only extension info if it exists but the original trial extension information does not.
* Allow users to create trial extension stages
* fix test
* fix gates in test
* remove extension fields from dep trial stage
* trial extensions displayed and edited with trials
* edit extension info on editall
Also, display trial info on detail page
* thorough commenting
* concat stageIds
* Add corner case cover
Display only extension info if it exists but the original trial extension information does not.
* display and edit stages based on stage ID
* fix test
* defensive coding with intent stages
* new routes
* save active_stage_id in guide.py
This change is set to land in a separate PR.
* display active stage on detail page correctly
* Save to specific stage IDs when using edit_all
* remove log
* remove "SHIPPED" stage types
* fix processes and tests
* add shipped form field to shipping form field
* Show matching process stages on process overview
* fix tests
* remove active_stage_id reference
* remove active_stage_id from test
* typo
* update url
* fix web test
* Consolidate "prepare to ship" and "ship"
* add small comment
* organize guide.py
* one process stage per stage entity
* style fix
* form_fields value given as a string
* remove duplicated function
* clear up logic for writing to stages
* backwards-compatible urls and api
* Update tests
* fix merge conflict block removal
* changes suggested by @jrobbins
* display and edit stages based on stage ID
* fix test
* defensive coding with intent stages
* new routes
* save active_stage_id in guide.py
This change is set to land in a separate PR.
* display active stage on detail page correctly
* remove "SHIPPED" stage types
* fix processes and tests
* add shipped form field to shipping form field
* Show matching process stages on process overview
* fix tests
* remove active_stage_id reference
* remove active_stage_id from test
* typo
* update url
* fix web test
* Consolidate "prepare to ship" and "ship"
* add small comment
* remove duplicated function
* clear up logic for writing to stages
* backwards-compatible urls and api
* Update tests
* remove "SHIPPED" stage types
* fix processes and tests
* add shipped form field to shipping form field
* Show matching process stages on process overview
* fix tests
* remove active_stage_id reference
* remove active_stage_id from test
* typo
* Use utils method for finding process stage
* Add function argument
* Progress
* partly fixed tests
* Updated unit tests
* Put back old search specs for open SPA tabs.
* Added some more indexes that NDB says are needed
* Add indexes needed by NDB
* type hints
* Revert "type hints"
This reverts commit 9ffab5aabd.
* Move feature functions to separate helpers file
* remove import
* more import removal
* end of file newline
* mypy ignore ndb
* @jrobbins review changes
- Removed older standardization field logic
- Added TODO for migration script for values in migrate_views()
* Write Stage, Gate, and Vote entities
* More tests for Stage and Gate
* Remove old imports from review_models.py
* revert approval_def constants references
* remove unused imports
* revert cache prefix change
* remove whitespace at end of line
* mypy fix
* fix ndb import
* Remove all references to django
Replace any functionality with flask
* more cleanup
* fix template test after removing empty comment
* remove unused test_app
* Add assertions for the templates in #2355
- Move the TESTDATA functionality to a testing_config to be a test helper.
In this new helper, users can still retreive from it like a dictionary.
In addition, there's a helper function to help make goldens that can be
used to regenerate the golden templates. Add commented out
code to use it.
- Add some clean ups to individual tests or test cases. This was needed
because some of the existing rendering tests would pull from the database.
But since they only asserted for the existence of some values, it did
not matter. In the future, we can add mocks for all of those.
- These cleanups also help for more than the rendering tests. Before these fixes, there were ~15 non-rendering tests that would fail if a developer ran the full suite with a clean db, then re-ran a test indivdually without resetting the database. There are still 2 non-rendering tests that fail without clearing the database first. But this first iteartion got a lot of them.
- Add a missing test for the PrepublicationHandler to increase coverage
* address comments
* more cleanup
* Handle final fields
Add `announcement_url` to the Stage kind, and populate entities in the migration using the `ready_for_trial_url` field. Additionally, migrate the `experiment_timeline` field for FeatureEntry.
* Update guide.py
* Add cc field to features
Closes#2240. Similar implementation as editors.
Users who are cc'd on features can see unlisted features.
internals/core_models.py:
- Add new cc_recipients field. Defaults to empty list if field is not there.
internals/notifier.py
- Adds reason for being notified as a person in the cc_recipients field
internals/search.py
- Add the shorthand query for `cc:me`
internals/search_queries.py
- Add the ability to search the cc_recipients field by adding it to QUERIABLE_FIELDS
static/elements/chromedash-guide-metadata.js
- Add the ability to view the value on the metadata display
- Maps cc_recipients to individual mailto links ccRecipient
- Note: ccRecipient is camelCase
static/elements/form-field-specs.js
- Declare a new form field cc_recipients
static/elements/form-definition.js
- Add the cc_recipients field to the metadata form field
* cc_recipients changes to persist on create/update
These changes allow changes to cc_recipients to persist on feature
create or update
* Check if cc_recipients empty
cc_recipients can be missing from the object due to del_none
in core_models.py
Also fomat_for_template currently returns cc_recipients at a different level
and not inside the chrome object. As a result, need to change
the chromedash-guide-metadata file to look for the data at the right place.
* Use short hand CC instead of carbon copy
* Migrate guide/stage page forms to JS
* Complete migration of forms to JS
* Move display field defs to JS and remove fielddefs API
* Fix line separation bug
* Filter out `['']` values due to the anticipated spec change field change
* Fix typo
* Change anticipated_spec_changes to regular textarea
* Farewell to `guideforms.py`
* Remove Django widgets
* Migrate guide/stage page forms to JS
* Complete migration of forms to JS
* Move display field defs to JS and remove fielddefs API
* Fix line separation bug
* Filter out `['']` values due to the anticipated spec change field change
* Fix typo
* Change anticipated_spec_changes to regular textarea
* Refactor input form fields by specifying attributes
* Remove unsafeHTML and slots in chromedash-form-field
* Update the unit test and remove unused properties
* Fix hard-coded input field name for radios
* Render guide/edit form without unsafeHTML
* Update guide page unit tests
* no longer need to pass in overviewForm
* Refactor verify_accuracy page and migrate its form to js
* Remove unused code
* Resolve web test complaints
* Make changes based on changes from previous PR
* Refactor input form fields by specifying attributes
* Remove unsafeHTML and slots in chromedash-form-field
* Update the unit test and remove unused properties
* Fix hard-coded input field name for radios
* Render guide/edit form without unsafeHTML
* Update guide page unit tests
* no longer need to pass in overviewForm
* Register form submit handler via ref
* Resolve web test complaints
* Format feature for edit in JS
* Convert guide/verify_accuracy page into a component
* Add form_fields hidden input to verify and editall pages
* Correct form_field values and check them in tests
* fix `getFormFields()`