* Remove all references to django
Replace any functionality with flask
* more cleanup
* fix template test after removing empty comment
* remove unused test_app
* Replace django templates for email with jinja2 templates
This commit converts the email templates from django templates to jinja2
templates.
It also creates a new helper function: flask_compat_get_template_path
This function uses the existing configuration for django templates and
uses it to return a string used to locate the templates for jinja2.
Fixes#2030
* Add rendered test templates for email notifications
* ignore testdata folder for gcloud
* Refactored reminders and added prepublication notice.
* Added links to references
* Improved tests
* Update internals/reminders.py
Co-authored-by: Daniel Smith <56164590+DanielRyanSmith@users.noreply.github.com>
* Updated comment
Co-authored-by: Daniel Smith <56164590+DanielRyanSmith@users.noreply.github.com>
* 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
* 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
* Add Reply-To header to email notifications.
* Update internals/notifier_test.py
Co-authored-by: Daniel Smith <56164590+DanielRyanSmith@users.noreply.github.com>
Co-authored-by: Daniel Smith <56164590+DanielRyanSmith@users.noreply.github.com>
* 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>
* 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