* 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
* Add chromedash-feature-page element
* Add spinner and move styles into page component
* Add autolinks and add js unit tests
* Fix summary autolink
* Add `sinon` and complete feature-page js test
* Update package-lock.json to include `sinon`
* Update package-lock.json to include `sinon`
* Fix css format, move `sinon` to devDep
* Fix feature page bugs
* Move Promise definitions into test body
Co-authored-by: kevinshen56714 <kevinshen56714@hotmail.com.tw>
* Define and use chromedash-textarea. Use sl-input.
* Fix problems. Use setCustomValidity() as intended.
* Add tests of valid and invalid input.
* Add missing newline and remove extra space.
* Improve the summary help text.
* Add missing quotation mark.
* Change wording slightly.
* Add space after comma.
Co-authored-by: Jason Robbins <jrobbins@gmail.com>
* Add styling for invalid form field values
* Apply to all multiple email address fields. Use pattern attr to do better validation
* Simplify and correct the email address regex
* Add field for webview_risks.
* Update pages/guideforms.py
Co-authored-by: Chris Harrelson <chrishtr@gmail.com>
* Update guideforms.py
Fixed an existing spelling error.
Co-authored-by: Chris Harrelson <chrishtr@gmail.com>
* Add html validation for edit.html. Fix 2 html bugs
* Add html validation for guide, intentpreview, and metrics
* Add test of FeaturePopularityHandler
* Add roadmap_test.py and test of RoadmapHandler
* Fix uses of TEMPLATE_PATH. Add blink_handler_test.
* Add template tests for users.html
* Fix some more test class names.
* One more class name fix.
* Easy fixes.
* wrote code
* Added unit tests and removed unwanted CSS.
* Use warning() because warn() is deprecated.
* Update internals/models.py
Co-authored-by: Kyle Ju <kyleju@google.com>
* Incorporated review comments.
Co-authored-by: Kyle Ju <kyleju@google.com>
Currently "DevTrial on android" is not printedd in "Ready for Trial"
mail becaus of the typo in estimated-milestones-table.html.
And the help_text is guideforms.py is not correct.
This PR fixes them.
* Created Upcoming page by duplicating code from schedule page
* The new upcoming page now uses Features and Channels API to fetch data
* Fetching features of each milestone separately
* Using csClient for fetching information
* Removed unreferenced variable set from upcoming-page.js
* Migrated models.py
* Migrated bulkloader_helpers.py
* Migrated accounts_api.py
* Migrated models.py
* Migrated ramcache.py
* Migrated secrets.py
* Migrated basehandlers.py
* Migrated metricsdata.py
* Migrated fetchmetrics.py
* Migrated notifiers
* blink_handler
* guide.py
* users.py
* fix_data.py
* appengine.py
* Migrated all order() function calls
* Fixed filterby[]
* Migrated all filter() queries
* Migrated some left out lines
* Fixed Bug: json_dump would result in TypeError
* Fixed bug - key() is not callable
* Bug Fix: Query Filters were not working
* Fixed Bug: JSON output of feature list would not contain feature id
* Removed unused ndb import
* Fixed Bug: old_val would have properties wrappped in _BaseValue
* Migrated Tests
* Fixed Test: capstone has no attribute delete()
* Fixed Bug: A filter won't work
* Fixed Bug: Index out of range if self.Blink_components length is 0
* Fixed Bug: Some order statements won't work
* Assigning default value to Feature_blink_components
* Fixed Bug: A filter won't work
* Fetching singleton using ancestor for strong consistency
* Moved the ancestor query for strong consistency to replace the correct original query
* Replaced _pre_put_hook with _from_pb
* Fix: NDB picked up old properties while looping over self.properties
* Fix: NDB would generate diffs if None is compared with empty strings
* Added Google Platform Library
* Added Meta Element for Client ID
* Added Google Sign-In Button
* Authenticating the id_token on our backend
* Saving id_token in flask session, using the id_token to fetch the current user and replaced the usages of AppEngine Users API (not from *_tests.py)
* Correct the flow on pressing SignIn and SignOut
* Code refactor
* Added Comment for is_current_user_admin
* Supporting GAE Users library for post request
* Made some fixes
* Changed Admin User condition
* Reloading only on 200 response code
* Do not require sign in and xsrf token while sending post request for login
* Sign Out using Google Sign In if cookie is not set after login
* Clearing the session if the id_token stored in the session variable becomes invalid or expires
* Replaced GAE Users from tests
* Replaced GAE users with framework users in tests.py