#731 release notes for Hotfix
Merge pull request #732 from akvo/hotfix/731-releasenotes

No spelling errors it seems :)
[#632] Add simple write permissions

Add rsr_rest_user_<model_name> permissions for all rsr models. This
requires the running of manage.py syncdb --all to get into the DB.

Add IsRestUserOrReadOnly and set BaseRSRViewSet.permission_classes to use
it. This allows users with the rsr_rest_user_<model_name> permission to
use the "write" methods of the API (POST, PUT, PATCH and DELETE).

Suggested use is to create a Group with the rsr_rest_user_<model_name>
permissions and assigin users that are allowed to write to this group.
[#632] More granular API permissions

Having realised the Up app needs permissions to POST to project_update I
decided to implement a first version of more granular permissions for the
API based on one permission per method per model.

Revise akvo.rsr.management.create_rest_api_permissions() to create one
permission for each of the four "writing" request methods POST, PUT,
PATCH and DELETE.

Add RSRModelPermissions which is based on
rest_framework.DjangoModelPermissions, but overrides
RSRModelPermissions.perms_map to match the perms created by
create_rest_api_permissions().

Set BaseRSRViewSet.permission_classes to RSRModelPermissions
[#632] Merge branch 'feature/632_rest_framework' into release/candidate
#731 added api permissions to release notes
Merge pull request #735 from akvo/feature/731-releasenotes

No spelling errors. (y)
[#745] Add exclude keyword option to Akvo Pages

On Akvo Pages, a boolean field 'exclude_keywords' has been added. When set to False (default), the keywords act as usual. However, when set to True, projects with the indicated keywords will be excluded from the project list on the Akvo Page.

E.g. For the YEP Water page, we want to exclude the internal Akvo projects. By setting this option to True and indicating a new keyword ('akvo internal') on both the Akvo Page and the internal Akvo project(s), the project will not be shown on YEP's page.
[#745] Added migration for partnersite.exclude_keywords
[#745] Update help texts about project selection for Sites
[#748] Continent code for 'BQ' added
[#710] Fix ProjectResource.get_object_list()

ProjectResource.get_object_list() does not return unpublished projects
when the API is queried by an authenticated user.

Fix by calling ApiKeyAuthentication.is_authenticated() to check if the
user is authorized to view unpublished projects.
[#710] Fix RainActivity.rsr_id() and RainActivity.internal_id()

The xpath for those two methods is searching from the root (xpath search
string starts with "//") in the belief that the tree only encompassed
one activity. But this seems not to be the case resulting in _all_
activities being searched.

Fix by removing the "//".
[#710] Add more settings

Add settings for the URLs to use when fetching the RAIN organisations
and activities XML.

Add settings for a pair of log labels.
[#710] Add functions for importing XML from file system or internet.

Add load_xml(). This function is moved from rain_project_upload.py

Also add save_xml() to allow saving of the fetched XML for logging
purposes.
[#710] Better logging for organisation_upload.py
[#710] Import organisation XML from URL

Fetch organisation XML from the RAIN website.

The XML fetched is saved for logging/debugging in the same folder as the
import logfiles.
[#710] Import activities XML from URL

Fetch activities XML from the RAIN website.

The XML fetched is saved for logging/debugging in the same folder as the
import logfiles.
[#710] Better logging for post_import.py
[#710] Add category, sync_owner and publishing

Add methods for setting the category, sync_owner and publishing status
of all imported RAIN projects.