weppy changelog
===============

Version 0.8
-----------

Released on October 31st 2016, codename Hadar

- Several bugfixes
- Added readable fields handling in forms
- Enhanced HTTP errors on streaming
- Improved templater performance
- Added `dbset` option to `in` validator
- Ensuring `unique` validation is performed also without forms
- Better implementation for nested selection when using `join` and `including`
- Updated router to allow routes override
- Changed default serialization and validation of `datetime` fields to respect
  RFC3339 standard
- Updated postgres default adapters to latest available from pyDAL
- Changed `has_one` attributes when using `join` and `including`
  to not be lists
- Added support for 'bigint' fields in the migrator


Version 0.7
-----------

Released on June 7th 2016, codename Girtab

- Changed CLI 'shell' command to loads the entire application context
- Added `scope` option to `has_one` and `has_many` relations
- Added `where` option to `has_one` and `has_many` relations
- `@computation` and callbacks helpers now keep definition order
- Allow usage of `has_one` and `has_many` helpers as decorators to customize
  relations' sets generation
- Added default configuration for extensions
- Added `Model.new` method
- Added databse indexing support
- Added default validation for 'password' fields
- Added CLI 'routes' command
- Deprecated `@computation`, `@virtualfield` and `@fieldmethod` in favor of
  `@compute`, `@rowattr` and `@rowmethod`
- Updated `current_model_only` parameter of `@virtualfield` and `@fieldmethod`
  to `bind_to_model` in `@rowattr` and `@rowmethod`


Version 0.6
-----------

Released on January 25th 2016, codename Fornacis

- Several bugfixes
- Added `remove` method to `HasManySet` and `HasManyViaSet`
- Common handlers and helpers are now accessible via application object
- Introduced scopes in models
- Template reloader now checks also `include` and `extend` blocks
- Deprecated `expose()` in favor of `route()`
- Implemented `join` method on `Set`
- Reviewed `Auth` actions depending on user status
- Added support facilities to `Auth` in order to manage user status
- Implemented support for custom naming on `has_many`
- Added `current_model_only` option to `virtualfield` and `fieldmethod`
  decorators, default changed to `True`
- Introduced testing suite for applications
- Added `language` option to `url()`
- Implemented user status resync with database in `Auth` handler
- Implemented `refers_to` in dal apis
- Added 'self' keyword for self-relations in dal
- Changed `has_one` return value to `Set` in order to avoid n+1 queries
- Added `pagination` and `including` options to `Set.select()`
- Caching resultsets on `has_one` and `has_many` realtions calls for select
- Added `where`, `all`, `first`, `last` and `get` methods to `Model`
- Changed `add` method of `HasManySet` and `HasManyViaSet`
- Added `create` method to `HasOneSet`, `HasManySet` and `HasManyViaSet`
- Added `clear` method to session handlers for bulk invalidation
- Implemented a revision based migration engine on the database layer
- Deprecated `Request.vars`, `Request.get_vars` and `Request.post_vars` in
  favor of `Request.params`, `Request.query_params` and `Request.body_params`
- Deprecated `Form.vars` and `Form.input_vars` in favor of `Form.params` and
  `Form.input_params`
- Deprecated `url(vars={})` in favor of `url(params={})`


Version 0.5
-----------

Released on October 2nd 2015, codename Elnath

- Introduced python 3 support
- Introduced multiple inheritance support on `Model` class
- Added optional keyed arguments support to `HasManyViaSet.add` for additional
  columns on join tables
- Minor bugfixes


Version 0.4
-----------

Released on August 3rd 2015, codename Deneb

- Intruduced a real ORM inside weppy:
  - Consequent new features:
    - `belongs_to`, `has_one` and `has_many` apis for relations
    - Automatic joins of attributes defined with new apis
    - Cleaner `Model` definition syntax
    - New naming convention based on singular for model and plural for tables
    - Automatic tablenames based on `Model` classes' names
  - Consequent changes:
    - Fields are now defined as attributes of `Model`
    - Some `Field` types are now procesed also considering the pythonic naming
      ('integer' -> 'int', 'boolean' -> 'bool')
    - `Field` class doesn't accept 'name' (first) parameter anymore
    - `Model.entity` is now the more correct `Model.table`
    - `Form` and `DALForm` classes now accepts dictionaries of fields
      instead of lists
    - `Auth` module has tablenames changed to new naming convention
- Completely refactored validators
- Introduced new validation syntax using dictionaries
- `Auth` now includes virtualfields on session `user` object
- Dropped python 2.6.x support
- Bugfixes in forms
- Refactored `Auth` module
- Added `body` parameter to `abort` helper (optional)
- Updated jQuery to v1.11.3


Version 0.3
-----------

Released on April 1st 2015, codename Caph

- Various bugfixes
- Implemented streaming of pyDAL 'blob' fields
- Better implementation of `@virtualfield` and `@fieldmethod`
- Added caching system to templates
- Added auto-reloader for builtin wsgi server
- Added `on_end` method to `Handler` class
- Updated jQuery to v1.11.2


Version 0.2
-----------

Released on February 11th 2015, codename Bellatrix

- Several bugfixes
- JSON body parsing for incoming requests with POST method and 'application/
  json' headers
- `widget_select()` in forms use `represent` attribute of fields to render
  values
- Moved `Storage` class to new `sdict` one
- Using pyDAL instead of a separated fork inside code
- Unified `DAL`/`ModelsDAL` and `Auth`/`ModelsAuth` into new `DAL` and `Auth`
- `Model` class now has only one `setup` method instead of the old unnecessary
  list of `set_` methods
- Updated validators nomenclature to "camelcase"
- `stream_file()` in helpers now accept a path relative to application, the old
  one is now renamed in the more consistent `stream_dbfile()`
- Added `SessionFSManager` to store sessions' data on filesystem
- `Model` class inherits fields and properties on subclassing
- Added `service.xml` method to serve xml contents


Version 0.1
-----------

Released on October 21st 2014, codename Altair

First public preview release.
