Modify ↓
#10041 closed defect (wontfix)
[PATCH] Wrong timestamp conversion for DeleteChanges
| Reported by: | Boris Savelev | Owned by: | Ryan J Ollos |
|---|---|---|---|
| Priority: | normal | Component: | TicketDeletePlugin |
| Severity: | normal | Keywords: | |
| Cc: | Trac Release: | 0.12 |
Description
using to_timestamp is wrong
DB stores full timestamps and we must use to_utimestamp
Index: web_ui.py
===================================================================
--- web_ui.py (revision 11587)
+++ web_ui.py (working copy)
@@ -13,7 +13,7 @@
from trac.web.chrome import ITemplateProvider
from trac.ticket.web_ui import TicketModule
from trac.util import sorted
-from trac.util.datefmt import to_datetime, utc, to_timestamp
+from trac.util.datefmt import to_datetime, utc, to_timestamp, format_datetime, to_utimestamp
import re
import traceback
@@ -102,7 +102,7 @@
ticket_data = {}
for time, author, field, oldvalue, newvalue, perm in t.get_changelog():
- c_data = ticket_data.setdefault(to_timestamp(time), {})
+ c_data = ticket_data.setdefault(to_utimestamp(time), {})
c_data.setdefault('fields', {})[field] = {'old': oldvalue, 'new': newvalue}
c_data['author'] = author
# FIXME: The datetime handling is not working - enable
@@ -198,7 +198,7 @@
cursor.execute("DELETE FROM attachment WHERE type = 'ticket' AND id = %s AND time = %s", (id, ts))
else:
custom_fields = [f['name'] for f in ticket.fields if f.get('custom')]
- if field != "comment" and not [1 for time, author, field2, oldval, newval, _ in ticket.get_changelog() if to_timestamp(time) > int(ts) and field == field2]:
+ if field != "comment" and not [1 for time, author, field2, oldval, newval, _ in ticket.get_changelog() if to_utimestamp(time) > int(ts) and field == field2]:
oldval = [old for _, _, field2, old, _, _ in ticket.get_changelog(to_datetime(int(ts))) if field2 == field][0]
if field in custom_fields:
cursor.execute("UPDATE ticket_custom SET value=%s WHERE ticket=%s AND name=%s", (oldval, id, field))
Attachments (0)
Change History (3)
comment:1 Changed 13 years ago by
| Owner: | changed from Noah Kantrowitz to Ryan J Ollos |
|---|---|
| Status: | new → assigned |
comment:2 Changed 13 years ago by
| Resolution: | → wontfix |
|---|---|
| Status: | assigned → closed |
Note: See
TracTickets for help on using
tickets.



That is true, with Trac 0.12, you must use
to_utimestamp, but did you see the message on the project wiki page? This plugin is no longer need with Trac 0.12. Just enabletracopt.ticket.deleter.