Initial version of Calendar notification for review, and it includes the calendar event for start workflow.
Please follow steps for installing Google python client library for calendar service API under src/
This needs to be added to deployment step to AppEngine.
Refer to https://developers.google.com/api-client-library/python/start/installation#appengine
Created WorkflowCalendarService in ggrc_workflows/notification and create calendar events for WF/TaskGroup during start workflow cycle
It is ready for integration with UI, REST API is POST /calendar/workflow/<id>.
Currently it sends OK or Error in render response. Needs ot be modified to point to correct HAML template as part of E2E integration with UI.
The reminders and updates to calendar events are pending
Removing session cookie fields such as resource and id for creating calendar event for 2 step flow authorization
Merge with latest code base, use extension modules for notification, add dependencies to http2lib and google python client library
This contains calendar backend for creating calendar events for workgroup/taskgroup at the start of the workflow, also uses extension modules to avoid ggrc.workflows in views, this can be starting point for UI integration for calendar.
Merge remote-tracking branch 'origin/feature/email_notification_task_undo' into feature/calendar_notification

Conflicts:
	src/ggrc/views/notification.py
	src/ggrc_workflows/__init__.py
	src/ggrc_workflows/notification/__init__.py
Merge calendar with latest email notification pull request and dev branch, fix merge conflicts and test
Test using POST /calendar/<resource><id>, e.g. /calendar/workflow/id creates calendar event for workflow and tasks in taskgroup

Merge remote-tracking branch 'origin/feature/email_notification_end_cycle' into feature/calendar_notification

Conflicts:
	src/ggrc/views/notification.py
	src/ggrc_workflows/__init__.py
	src/ggrc_workflows/notification/__init__.py
Integrated oAuth flow for all POST request and trigger calendar events during start of workflow
Prerequisites for Calendar include enabling calendar service API in AppEngine,
The redirect URI in AppEngine deployment must be set to oauth2callback/calendar
Merge remote-tracking branch 'origin/feature/calendar_notification' into feature/calendar_rules
Calendar events with Acl (scope: user, role: writer) is created for each WF member on WF owner calendar "GGRC Calendar"
Also added calendar rules for taskgroup (task assign/reassign) and WF related (add, remove member)
PUT/DELETE will be handled as part of calendar updates (which requires database migration and data model change)
Alternate flow scenarios for handling Calendar ACLs
Fixes to use CalendarEntry in DB model (database) for WF members to make changes to WF/TG related calendar events
Removed restrictions for only workflow owner to create GGRC calendar
The workflow owner is given owner ACL previleges and all workflow members are given writer ACL previleges
The database entry is created one for each WF owner, calendar ID is calendar of user who activated the workflow
Changes to oAuth handling, Added TaskGroup Deletion, Calendar settings rules as part of advanced rules
Added calendar authentication button on workflow info page
Fixes after testing task reassign from another user
Calendar ACL access can be done with owner previleges aka WF owner for now (super user roles pending)
Fix issue related of updating calendar event with NO attendees as a result notification setting OFF for all recipients
Add reminder for Calendar
Merge remote-tracking branch 'origin/feature/calendar_rules' into feature/calendar_ui_integration
Merge remote-tracking branch 'origin/feature/calendar-authentication-button-from-ui' into feature/calendar_ui_integration
Fix minor conflicts in ggrc_workflows/notification/__init__.py, rerun db_migrate, retest calendar feature
Merge remote-tracking branch 'origin/develop' into feature/calendar_ui_integration

Conflicts:
	src/ggrc_workflows/notification/__init__.py