Features:
* A connector now can be associated with 'collectivites',
and each of them can have one 'guichet'.
A 'collectivite' have a name and an openADS technical identifier
A 'guichet' allow to define hours and days for when its 'collectivite' is "open"
* Each of those entities have a view to CRUD it
* For entity ForwardFile:
- Added association with a connector, and eventually a 'collectivite'
- Added ForwardFiles 'size' field
- Added updating fields 'content_type', 'file_hash' and 'size' on save()
- Added custom validation on save()
* For entity AtrealOpenads:
- Added permissions on each endpoint
- Added 'email' field support for each type of 'demandeur'
- 'numero_dossier' is now required in the url for some endpoints (previously was a GET param)
- Added 'upload_user_files' as an endpoint (but can still be used as a method with request=None)
- The 'upload_user_files()' method now only handle forward file that have status='pending'
Fixes:
* Added "*args" and "**kwargs" arguments to some connector endpoint methods
* Added 'verbose_name' and 'ordering' on each entity META
* Added decorator '@force_encoded_string_output' to prevent utf-8 issues with python2
* Added __repr__, __str__ and __unicode__ functions to each entities
* Added database indexes for each entity
* Commented out useless JSON schema imports
* Removed unused variable assignations
Refactoring:
* Moved utilities functions to utils.py file
* Added a BaseModel to provide some default functions for Models
* Added enum/translations of hard-coded values for ForwardFile 'upload_status' field
Tests:
* Added test for each entity
* Added tests files specific to utilities, forms and views
* Total code coverage is 99% with only 10 statement missed