| [%# This Source Code Form is subject to the terms of the Mozilla Public |
| # License, v. 2.0. If a copy of the MPL was not distributed with this |
| # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| # |
| # This Source Code Form is "Incompatible With Secondary Licenses", as |
| # defined by the Mozilla Public License, v. 2.0. |
| #%] |
| BEGIN:VCALENDAR |
| CALSCALE:GREGORIAN |
| [%+ PROCESS ics_prodid +%] |
| VERSION:2.0 |
| [% FOREACH bug = bugs %] |
| BEGIN:VTODO |
| [%+ PROCESS ics_dtstart +%] |
| [%+ PROCESS ics_summary +%] |
| [%+ PROCESS ics_uid base_url=urlbase bug_id=bug.bug_id +%] |
| [%+ PROCESS ics_url base_url=urlbase bug_id=bug.bug_id +%] |
| [%+ PROCESS ics_status bug_status = bug.bug_status +%] |
| [%+ PROCESS ics_dtstamp +%] |
| [%+ ics_priorities.${bug.priority} FILTER ics('PRIORITY') +%] |
| [% IF bug.changeddate %] |
| [%+ bug.changedtime FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('LAST-MODIFIED') +%] |
| [% END %] |
| [% IF bug.deadline %] |
| [%+ bug.deadline FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('DUE') +%] |
| [% END %] |
| [% IF bug.percentage_complete %] |
| [%+ bug.percentage_complete FILTER format('%d') FILTER ics('PERCENT-COMPLETE') +%] |
| [% END %] |
| [% IF bug.product %] |
| [%+ bug.product FILTER ics('X-BUGZILLA-PRODUCT') +%] |
| [% END %] |
| [% IF bug.component %] |
| [%+ bug.component FILTER ics('X-BUGZILLA-COMPONENT') +%] |
| [% END %] |
| [% IF bug.version %] |
| [%+ bug.version FILTER ics('X-BUGZILLA-VERSION') +%] |
| [% END %] |
| [% IF bug.keywords %] |
| [%+ bug.keywords FILTER ics('X-BUGZILLA-KEYWORDS') +%] |
| [% END %] |
| END:VTODO |
| [% END %] |
| END:VCALENDAR |
| |
| [% BLOCK ics_prodid %] |
| [% "-//Mozilla/Bugzilla $constants.BUGZILLA_VERSION//EN" FILTER ics('PRODID') %] |
| [% END %] |
| |
| [% BLOCK ics_uid %] |
| [% "${bug_id}@${base_url}" FILTER uri FILTER ics('UID') %] |
| [% END %] |
| |
| [% BLOCK ics_url %] |
| [% "${base_url}show_bug.cgi?id=${bug_id}" FILTER uri FILTER ics('URL;VALUE=URI') %] |
| [% END %] |
| |
| [% BLOCK ics_dtstart %] |
| [% bug.opentime FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('DTSTART') %] |
| [% END %] |
| |
| [% BLOCK ics_dtstamp %] |
| [% currenttime FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('DTSTAMP') %] |
| [% END %] |
| |
| [% BLOCK ics_status %] |
| [% status = "" %] |
| [% FOREACH state = closedstates %] |
| [% IF bug_status == state %] |
| [% status = 'COMPLETED' %] |
| [% LAST %] |
| [% END %] |
| [% END %] |
| [% IF NOT status %] |
| [% IF bug_status == 'IN_PROGRESS' || bug_status == 'ASSIGNED' %] |
| [% status = 'IN-PROGRESS' %] |
| [% ELSE %] |
| [% status = 'NEEDS-ACTION' %] |
| [% END %] |
| [% END %] |
| [% status FILTER ics('STATUS') %] |
| [% END %] |
| |
| [% BLOCK ics_summary %] |
| [% IF bug.short_desc %] |
| [% summary = bug.short_desc %] |
| [% ELSIF bug.short_short_desc %] |
| [% summary = bug.short_short_desc %] |
| [% ELSE %] |
| [% summary = "$terms.Bug $bug.bug_id" %] |
| [% END %] |
| [% summary FILTER ics('SUMMARY') %] |
| [% END %] |