[[PageOutline(2-5,Contents,pullout)]] = Team calendar == Description This plugin adds a new navigation tab, "Team calendar", that can be used to keep track of team availability in a project. The data is stored in the database, which means it can be used in reports and queries. See also: GoogleCalendarPlugin, GanttCalendarPlugin, CalendarPlugin == Bugs/Feature Requests Existing bugs and feature requests for TeamCalendarPlugin are [report:9?COMPONENT=TeamCalendarPlugin here]. If you have any issues, create a [http://trac-hacks.org/newticket?component=TeamCalendarPlugin&owner=ChrisNelson new ticket]. [[TicketQuery(component=TeamCalendarPlugin&group=type,format=progress)]] == Download Download the zipped source from [download:teamcalendarplugin here]. == Source You can check out TeamCalendarPlugin from [http://trac-hacks.org/svn/teamcalendarplugin here] using Subversion, or [source:teamcalendarplugin browse the source] with Trac. == Installation === Prerequisites Note that the plugin is currently tied to MySQL. Updates to make it more database agnostic would be welcome. See #4243 - MySQL Testers needed! === Installation steps Install [http://trac.edgewall.org/wiki/TracPlugins#InstallingaTracPlugin as usual]. For MySQL, the table can be created as follows: {{{#!sql CREATE TABLE `team_availability` ( `username` VARCHAR(255) NOT NULL DEFAULT '', `ondate` DATE NOT NULL DEFAULT '0000-00-00', `availability` FLOAT UNSIGNED DEFAULT NULL, PRIMARY KEY (`username`, `ondate`) ); }}} For PostgreSQL 8.3, the table can be created as follows: {{{#!sql CREATE TABLE team_availability ( username VARCHAR(255) NOT NULL DEFAULT '', ondate DATE NOT NULL, availability FLOAT DEFAULT NULL, PRIMARY KEY (username, ondate) ); }}} For Sqlite3, the database and table can be created as follows: {{{ sqlite3 trac.db }}} {{{#!sql CREATE TABLE team_availability ( username text not null default '', ondate date not null default (datetime('now')), availability float default null, PRIMARY KEY (username, ondate) ); }}} == Under the hood This plugin adds a new tab, Team Calendar, to users with the `TEAMCALENDAR_VIEW` permission. This shows a simple tables with dates running down the rows and team members across the columns. Users with `TEAMCALENDAR_UPDATE_OWN` permissions can change the state of the tick boxes under their own name, and save the results. Users with `TEAMCALENDAR_UPDATE_OTHERS` permission can update everyone's. The table is populated form the team_availability table in the database. The 'availability' column will contain 0 or 1 if populated through the GUI. It is left as a float to make it possible to store more granular availability, e.g. half-day, but there is no UI for this at present. The calendar does not do anything else by itself. However, the team_availability table can be used in reports. == Recent Changes [[ChangeLog(teamcalendarplugin, 3)]] == Author/Contributors '''Author:''' [wiki:optilude] [[BR]] '''Maintainer:''' [[Maintainer]] [[BR]] '''Contributors:'''