* 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()`
* Add accuracy verification page
* remove cron check and fix tests
* More tests added
* change text to match design doc
* fix tests and naming
* refactoring for clarity
* Replace django checkbox with chromedash-form-field generated checkbox field.
* Generate form table row for checkbox in django without the form field
* cleanup. remove unneeded test of 'Unlisted'
* Use light DOM for field and errors.
* Fix chromedash0form-field_test.
* More cleanups.
* Add test of "Unlisted" checkbox to chromedash-form-field_test.
* Remove unused form-controller.
* misc.
* Workarounds for set_stage and feature_type.
* Workaround conflict with Shoelace event listeners.
* Start migrating form field labels to form-field-specs.js
* (stage all the changes)
* Inline use of fieldProps.label
* Check edit permissions by individual feature
* update logic to check permissions
* editors field added
* editors can see edit access in UI
* myfeatures shows editable features
* Make editor field plural
* 1 more plural update
* change var name for site editor
* Editors can delete a feature
* Site editors can now be designated in admin ui
* fix existing tests to work with new changes
* feature and permissions tests
* accounts and models test
* new creator field
* update tests for creator field
* code cleanup
* add creator field to new feature
* unlisted features are displayed in "My Features"
If the user is the creator, an owner, or an editor.
* slight update in unlisted features logic
* My features displays all editable features
in a single dropdown.
* fix web tests
* add test to ensure creator can edit feature
* remove unused _reject_or_proceed() change
* remove mangle and log statement
* Set original permissions
All changes to permissions.py removed.
This commit can be reverted to enable to new permissions system.
* changes suggested by @jrobbins
* update from merge
* remove creator field for later implementation
* changes suggested by @jrobbins
* Migrate remainin help_text to form-field-specs.js.
* Remove test for "help" slot in chromedash-form-field_test.js
* Update help text consistent with #2015.
* Updates/corrections from Jason.
* Change placeholder "Milestone #" to "Milestone number"
* Add name attribute to each chromedash-form-field. Use to look up help text.
* Move help_text for all new and metadata fields.
* Clean up and add comments.
* Add chromedash-form-table and -form-field and use for all form table and field rows.
* Display error text before form field, as it used to.
* Add minimal tests for -form-table and -form-field.
* Add unit tests. Delete commented code.
* Remove unused variables in utils.js
* Undelete showToastMessage and openApprovalsDialog.
* Change the guide form field layout for all tables
* Updates following comments
* Add chromedash-checkbox, just so we can use the label attribute.
* Add missing option close tag: <option></option>
* Add process and fieldDefs APIs and move components
* Add processes, cues, fielddefs tests
* Fix typos
* Add `permissions_api` and clean up `feature.html`
* Add permissions_api test and improve feature page test
* Change TODOs, rename test response variables