coaster
coaster copied to clipboard
Common patterns for Flask apps
Coaster needs to provide the foundation for API-based access to HasGeek apps. Our current approach has tight coupling between view functions and the rendered output, whether as HTML or JSON....
HasGeek apps now make extensive use of Redis, calling it multiple times in each request. Redis is much faster if we call it just once, pipelining all requests. We use...
Ideally it should.
Ticket #132 was closed prematurely citing existing use. `requestargs` continues to cause confusion as it suggests that `request.args` will be consulted, while actually consulting `request.values`. To fix: 1. Rename `requestargs`...
`rel="nofollow"` is currently added to all links by `markdown` and `sanitize_html`. It should not be added to: 1. Relative links 2. Trusted domains as specified in the app configuration, which...
StateManager currently allows database queries like this: ```python Document.query.filter(Document.state.PUBLISHED).all() ``` Unfortunately, this makes it impossible to examine the `PUBLISHED` workflow state, as any attempt to access it will render a...
A ModelView that implements views for transitions has to do it the manual way: by specifying a route for every transition, each decorated with `requires_roles` (#179). We currently use a...
ClassView currently expects an app in the `init_app` call. It must also accept blueprints, and most support registration with more than one app. The main (known) consideration when using a...
Coaster currently provides much _optional_ functionality that depends on PostgreSQL, providing workarounds for other databases. The `JsonDict` type in `coaster.sqlalchemy`, for instance, does client-side JSON parsing if the server isn't...
Since 0.9.2, SQLAlchemy has supported [an explicit naming convention for foreign keys, indexes and constraints](http://docs.sqlalchemy.org/en/latest/core/metadata.html#sqlalchemy.schema.MetaData.params.naming_convention). Alembic also [supports reading and honouring this naming convention](http://alembic.zzzcomputing.com/en/latest/naming.html). Coaster should supply a naming convention...