Modify ↓
Opened 14 years ago
Last modified 14 years ago
#9679 new enhancement
Patch to add support for DTEND
| Reported by: | branson | Owned by: | Xavier Pechoultres |
|---|---|---|---|
| Priority: | normal | Component: | IcalViewPlugin |
| Severity: | normal | Keywords: | ical dtend |
| Cc: | Trac Release: | 0.12 |
Description
Created a patch to add support for a dtend field in icalview:
We don't use duration here.. but use ganttcalendar plugin and therefor use due_assign and due_close; So I added support for start/end vs start/duration. This works well for 'leave' type tickets and 'task' type tickets.
Attachments (1)
Change History (2)
Changed 14 years ago by
| Attachment: | icalview.dtend.patch added |
|---|
comment:1 Changed 14 years ago by
Weird .. can't see the patch in this version of trac... attaching as a comment
# diff -p icalviewplugin/0.11/icalview/icalview.py icalviewplugin.mod/0.11/icalview/icalview.py
*** icalviewplugin/0.11/icalview/icalview.py 2009-12-14 09:34:46.000000000 -0500
--- icalviewplugin.mod/0.11/icalview/icalview.py 2012-01-09 15:00:29.000000000 -0500
***************
*** 1,5 ****
! """
! plugin fro Trac 0.11 to provide iCalendar ouput for ticket's queries
author : Xavier Pechoultes <x.pechoultres@clariprint.com>
Licence: GPL
"""
--- 1,4 ----
! """ fro Trac 0.11 to provide iCalendar ouput for ticket's queries
author : Xavier Pechoultes <x.pechoultres@clariprint.com>
Licence: GPL
"""
*************** class iCalViewPlugin(QueryModule):
*** 108,113 ****
--- 107,113 ----
"""
dtstart_key = self.config['icalendar'].get('dtstart','')
duration_key = self.config['icalendar'].get('duration','')
+ dtend_key = self.config['icalendar'].get('dtend','')
self.env.log.debug("dtstart_key=%s" % dtstart_key)
self.env.log.debug("duration_key=%s" % duration_key)
*************** class iCalViewPlugin(QueryModule):
*** 115,120 ****
--- 115,124 ----
self.env.log.debug("use dtstart_key=%s" % dtstart_key)
if dtstart_key not in query.cols:
query.cols.append(dtstart_key)
+ if dtend_key != '':
+ self.env.log.debug("use dtend_key=%s" % dtend_key)
+ if dtend_key not in query.cols:
+ query.cols.append(dtend_key)
if duration_key != '':
if duration_key not in query.cols:
query.cols.append(duration_key)
*************** class iCalViewPlugin(QueryModule):
*** 165,172 ****
--- 169,179 ----
if 'TICKET_VIEW' in req.perm(ticket):
kind = "VEVENT"
dtstart = None
+ dtend = None
if dtstart_key != '':
dtstart = self.parse_date(result[dtstart_key])
+ if dtend_key != '':
+ dtend = self.parse_date(result[dtend_key])
due = None
if dtstart == None :
kind = "VTODO"
*************** class iCalViewPlugin(QueryModule):
*** 182,195 ****
content.write("UID:<%s@%s>\r\n" % (get_resource_url(self.env,ticket,req.href),os.getenv('SERVER_NAME')))
if dtstart != None:
self.format_date(content,"DTSTART",dtstart)
! if duration_key != '':
duration = self.parse_duration(result[duration_key])
if type(duration) == datetime.timedelta :
content.write("DURATION:P%dDT%dS\r\n" % (duration.days, duration.seconds))
! else :
content.write("DURATION:%s\r\n" % duration)
elif due != None:
self.format_date(content,"DUE",due,False)
self.format_date(content,"CREATED",result["time"])
self.format_date(content,"DTSTAMP",result["changetime"])
protocol = "http"
--- 189,205 ----
content.write("UID:<%s@%s>\r\n" % (get_resource_url(self.env,ticket,req.href),os.getenv('SERVER_NAME')))
if dtstart != None:
self.format_date(content,"DTSTART",dtstart)
! if dtend != None:
! self.format_date(content,"DTEND",dtend+datetime.timedelta(days=1))
! elif duration_key != '':
duration = self.parse_duration(result[duration_key])
if type(duration) == datetime.timedelta :
content.write("DURATION:P%dDT%dS\r\n" % (duration.days, duration.seconds))
! else:
content.write("DURATION:%s\r\n" % duration)
elif due != None:
self.format_date(content,"DUE",due,False)
+
self.format_date(content,"CREATED",result["time"])
self.format_date(content,"DTSTAMP",result["changetime"])
protocol = "http"
Note: See
TracTickets for help on using
tickets.



Patch to add support for due_close/DTEND