* Progress on defining team gates.
* Not ready for testing gate yet.
* added tests
* Dont crash on unknown gates
* Keep up with changes to votes return value.
* Update internals/schema_migration.py
Co-authored-by: Kyle Ju <kyleju@google.com>
---------
Co-authored-by: Kyle Ju <kyleju@google.com>
* 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.
* unique field partitioning
* correct prototype/incubate fields
* remove duplicate metadata form definition
* mark stage-specific fields
* reorganize stage field sections
* Change datatypes for field organization (WIP)
* display fields using new structure
* update editall to use stage ID
* Fix and remove irrelevant test
* remove unused process stage calls
* remove incorrect comment
* fix test
* Additional comments
* small wording change
* 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
* Add rollout stage to the edit_all page
- Show the rollout stage in the edit all page for all non-enterprise feature types
- Use STAGE_ENT_ROLLOUT as the id for the piggybacking on the Shipping stage.
* Ensure rollout stage is shown on edit all page
Co-authored-by: Daniel Smith <56164590+DanielRyanSmith@users.noreply.github.com>
* Use copy of forms on edit all page
Co-authored-by: Daniel Smith <56164590+DanielRyanSmith@users.noreply.github.com>
* Exclude enterprise features from search results by default.
* Update internals/search.py
Co-authored-by: Kyle Ju <kyleju@google.com>
Co-authored-by: Kyle Ju <kyleju@google.com>
* Write and delete data for dev environments
* Add 2nd feature entry
* write old Feature entities as well
* More thorough commenting
* Make sure endpoints can only be used locally
* update return statements
* devtrial_instructions is a link
* changes suggested by @jrobbins
* comment change
* Intial code for display of amendments
* tests
* More tests, and avoid showing non-useful amendments
* More tests
* Put Loading... in a paragraph tag.
* Indent amendment details
* basic refactoring
* Use Vote and Gate entities for reading and writing
* update tests
* remove old Approval to JSON function
* type hints
* Add gate_type to Vote entity
* review changes
- Remove stage and gate info from format_for_template()
- Add new Vote index
- Change approvals_api.do_post() to take gate type rather than gate id.
* 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()
* staging fixes 2022-10-19
- Fixed approval_defs.set_vote() to write gate_id properly to Vote entity (previously was erroneously writing gate_type to gate_id).
- Created Gate entities in tests to allow Vote entities to be properly written.
- Incremented stage counts in schema_migration script properly reflect the amount of stages created.
- Removed Vote double-write call in Approval.set_approval() (this is no longer needed).
* Update approval_defs.py
* 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
* 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
* 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
* 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
* Accept either old or new login requests during transition.
* Made suggested edit
* Update api/login_api.py
Co-authored-by: Kyle Ju <kyleju@google.com>
* Starting point
* laid out config display
* Fetching config data
* Implemented save and revised API param requirements
* Always send lists of possible owners.
* Revert unintented index.yaml changes
* address review feedback
* Clarified conditional defaults
* Make fieldId optional in comments API.
* Add index needed for retrieving review comments.
* Add index needed for retrieving review comments.
* Add index needed for retrieving review comments.
* Add index needed for retrieving review comments.
* Add index needed for retrieving review comments.
* 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>
* Map feature to shipping type at the backend
* Frontend no longer maps features to shipping type
* Fixed tests in models_test.py
* Fixed tests in features_api_test.py
* Added support for getting schedule of specified range of channels API
* Loading the next three milestones in advance after loading the first three milestones
* Channels API will send information of only three standard channels
* Added support for binding the properties to the new milestone cards
* Changed variable name to make code more readable
* Made the code DRY w.r.t mapFeaturestoShippingType
* Fetching in advance on second last element
* Added variables instead of static values
* Previous Button will not scroll to versions before stable
* Undo Changes in index.yaml
* Deleted commented lines
* Fixed a comment
* Ask user to reload the page if some error occurs
* Added comments and a constant
* Changed a function name
* Changed variable names
* Removed unnecessary blank lines
* Changed an old variable name
* Changed Implementation of sortFeaturesByName
* Removed two & from query string
* Added space around operators
* Changed implementation of sort function
* Fetching schedule of Dev plus one version
* Added four cards
* Added Slideable cards
* Added timeline controls
* Responsive Design
* Improved implementation
* Timeline Controls should not be displayed in narrow viewports
* Added GreyScale logo for milestones later than dev
* Changed the location of the timeline control buttons to above the container
* Added query-string support for milestones in feature API
* Added tests
* Factored out the call to permissions.can_edit_feature(user, None) to the top of the method
* Resolved error in comment
* Added method for annotating first of each implementation status
* Added tests
* Made version 2 as the default version for api template
* Renamed versions to statuses
* Removed reverse argument
* 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
* Update fetching of API OWNERS from new URL.
* Explicitly convert bytes to unicode string for py3
* Also explicitly convert for py3 when fetching metrics, and fix unit tests that were unexpectedly actually fetching the OWNERS file (and sometimes failing).
* 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