Changeset 2590
- Timestamp:
- 08/22/07 12:35:23 (1 year ago)
- Files:
-
- timingandestimationplugin/branches/trac0.10/setup.py (modified) (1 diff)
- timingandestimationplugin/branches/trac0.10/timingandestimationplugin/api.py (modified) (1 diff)
- timingandestimationplugin/branches/trac0.10/timingandestimationplugin/reports.py (modified) (21 diffs)
- timingandestimationplugin/branches/trac0.11/setup.py (modified) (1 diff)
- timingandestimationplugin/branches/trac0.11/timingandestimationplugin/api.py (modified) (3 diffs)
- timingandestimationplugin/branches/trac0.11/timingandestimationplugin/reports.py (modified) (25 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
timingandestimationplugin/branches/trac0.10/setup.py
r2538 r2590 8 8 description='Plugin to make Trac support time estimation and tracking', 9 9 keywords='trac plugin estimation timetracking', 10 version='0.4. 8',10 version='0.4.9', 11 11 url='http://www.trac-hacks.org/wiki/TimingAndEstimationPlugin', 12 12 license='http://www.opensource.org/licenses/mit-license.php', timingandestimationplugin/branches/trac0.10/timingandestimationplugin/api.py
r2390 r2590 50 50 dbhelper.mylog = self.log 51 51 self.db_version_key = 'TimingAndEstimationPlugin_Db_Version' 52 self.db_version = 552 self.db_version = 6 53 53 self.db_installed_version = None 54 54 timingandestimationplugin/branches/trac0.10/timingandestimationplugin/reports.py
r2460 r2590 9 9 "uuid":"b24f08c0-d41f-4c63-93a5-25e18a8513c2", 10 10 "title":"Ticket Work Summary", 11 "version":1 4,11 "version":16, 12 12 "sql":""" 13 SELECT __ticket__ as __group__, __style__, __ticket__,13 SELECT __ticket__ as __group__, __style__, ticket, 14 14 newvalue as Work_added, author, time, _ord 15 15 FROM( 16 SELECT '' as __style__, author, t.id as __ticket__, 17 CAST(newvalue as DECIMAL) as newvalue, ticket_change.time as time, 0 as _ord 16 SELECT '' as __style__, author, 17 t.summary as __ticket__, 18 t.id as ticket, 19 CASE WHEN newvalue = '' OR newvalue IS NULL THEN 0 20 ELSE CAST( newvalue AS DECIMAL ) END AS newvalue, 21 ticket_change.time as time, 0 as _ord 18 22 FROM ticket_change 19 23 JOIN ticket t on t.id = ticket_change.ticket … … 30 34 SELECT 'background-color:#DFE;' as __style__, 31 35 'Total work done on the ticket in the selected time period ' as author, 32 t.id as __ticket__, sum( CAST(newvalue as DECIMAL) ) as newvalue, 36 t.summary as __ticket__, 37 t.id as ticket, 38 SUM( CASE WHEN newvalue = '' OR newvalue IS NULL THEN 0 39 ELSE CAST( newvalue AS DECIMAL ) END ) as newvalue, 40 NULL as time, 1 as _ord 41 FROM ticket_change 42 JOIN ticket t on t.id = ticket_change.ticket 43 LEFT JOIN ticket_custom as billable on billable.ticket = t.id 44 and billable.name = 'billable' 45 WHERE field = 'hours' and 46 t.status IN ($NEW, $ASSIGNED, $REOPENED, $CLOSED) 47 AND billable.value in ($BILLABLE, $UNBILLABLE) 48 AND ticket_change.time >= $STARTDATE 49 AND ticket_change.time < $ENDDATE 50 GROUP By t.id 51 ) as tbl 52 ORDER BY __ticket__, _ord ASC, time ASC 53 54 """ 55 },#END Ticket work summary 56 { 57 "uuid":"af13564f-0e36-4a17-96c0-632dc68d8d14", 58 "title":"Milestone Work Summary", 59 "version":14, 60 "sql":""" 61 62 SELECT 63 milestone as __group__, __style__, ticket, summary, newvalue as Work_added, 64 time, _ord 65 FROM( 66 SELECT '' as __style__, t.id as ticket, 67 SUM( CASE WHEN newvalue = '' OR newvalue IS NULL THEN 0 68 ELSE CAST( newvalue AS DECIMAL ) END) as newvalue, t.summary as summary, 69 MAX(ticket_change.time) as time, t.milestone as milestone, 0 as _ord 70 FROM ticket_change 71 JOIN ticket t on t.id = ticket_change.ticket 72 LEFT JOIN ticket_custom as billable on billable.ticket = t.id 73 and billable.name = 'billable' 74 WHERE field = 'hours' and 75 t.status IN ($NEW, $ASSIGNED, $REOPENED, $CLOSED) 76 AND billable.value in ($BILLABLE, $UNBILLABLE) 77 AND ticket_change.time >= $STARTDATE 78 AND ticket_change.time < $ENDDATE 79 GROUP BY t.milestone, t.id, t.summary 80 81 UNION 82 83 SELECT 'background-color:#DFE;' as __style__, NULL as ticket, 84 sum( CASE WHEN newvalue = '' OR newvalue IS NULL THEN 0 85 ELSE CAST( newvalue AS DECIMAL ) END) as newvalue, 'Total work done' as summary, 86 NULL as time, t.milestone as milestone, 1 as _ord 87 FROM ticket_change 88 JOIN ticket t on t.id = ticket_change.ticket 89 LEFT JOIN ticket_custom as billable on billable.ticket = t.id 90 and billable.name = 'billable' 91 WHERE field = 'hours' and 92 t.status IN ($NEW, $ASSIGNED, $REOPENED, $CLOSED) 93 AND billable.value in ($BILLABLE, $UNBILLABLE) 94 AND ticket_change.time >= $STARTDATE 95 AND ticket_change.time < $ENDDATE 96 GROUP By t.milestone 97 ) as tbl 98 ORDER BY milestone, _ord ASC, ticket, time 99 100 101 102 """ 103 },#END Milestone work summary 104 105 { 106 "uuid":"7bd4b0ce-da6d-4b11-8be3-07e65b540d99", 107 "title":"Developer Work Summary", 108 "version":14, 109 "sql":""" 110 SELECT author as __group__,__style__, ticket, summary, 111 newvalue as Work_added, time as time, _ord 112 FROM( 113 SELECT '' as __style__, author, t.id as ticket, 114 t.summary as summary, 115 CASE WHEN newvalue = '' OR newvalue IS NULL THEN 0 116 ELSE CAST( newvalue AS DECIMAL ) END as newvalue, 117 ticket_change.time as time, 0 as _ord 118 FROM ticket_change 119 JOIN ticket t on t.id = ticket_change.ticket 120 LEFT JOIN ticket_custom as billable on billable.ticket = t.id 121 and billable.name = 'billable' 122 WHERE field = 'hours' and 123 t.status IN ($NEW, $ASSIGNED, $REOPENED, $CLOSED) 124 AND billable.value in ($BILLABLE, $UNBILLABLE) 125 AND ticket_change.time >= $STARTDATE 126 AND ticket_change.time < $ENDDATE 127 128 UNION 129 130 SELECT 'background-color:#DFE;' as __style__, author, NULL as ticket, 131 Null as summary, 132 SUM( CASE WHEN newvalue = '' OR newvalue IS NULL THEN 0 133 ELSE CAST( newvalue AS DECIMAL ) END) as newvalue, 33 134 NULL as time, 1 as _ord 34 135 FROM ticket_change … … 41 142 AND ticket_change.time >= $STARTDATE 42 143 AND ticket_change.time < $ENDDATE 43 GROUP By t.id44 ) as tbl45 ORDER BY __ticket__, _ord ASC, time ASC46 47 """48 },#END Ticket work summary49 {50 "uuid":"af13564f-0e36-4a17-96c0-632dc68d8d14",51 "title":"Milestone Work Summary",52 "version":13,53 "sql":"""54 55 SELECT56 milestone as __group__, __style__, ticket, summary, newvalue as Work_added,57 time, _ord58 FROM(59 SELECT '' as __style__, t.id as ticket,60 SUM(CAST(newvalue as DECIMAL)) as newvalue, t.summary as summary,61 MAX(ticket_change.time) as time, t.milestone as milestone, 0 as _ord62 FROM ticket_change63 JOIN ticket t on t.id = ticket_change.ticket64 LEFT JOIN ticket_custom as billable on billable.ticket = t.id65 and billable.name = 'billable'66 WHERE field = 'hours' and67 t.status IN ($NEW, $ASSIGNED, $REOPENED, $CLOSED)68 AND billable.value in ($BILLABLE, $UNBILLABLE)69 AND ticket_change.time >= $STARTDATE70 AND ticket_change.time < $ENDDATE71 GROUP BY t.milestone, t.id, t.summary72 73 UNION74 75 SELECT 'background-color:#DFE;' as __style__, NULL as ticket,76 sum(CAST(newvalue as DECIMAL)) as newvalue, 'Total work done' as summary,77 NULL as time, t.milestone as milestone, 1 as _ord78 FROM ticket_change79 JOIN ticket t on t.id = ticket_change.ticket80 LEFT JOIN ticket_custom as billable on billable.ticket = t.id81 and billable.name = 'billable'82 WHERE field = 'hours' and83 t.status IN ($NEW, $ASSIGNED, $REOPENED, $CLOSED)84 AND billable.value in ($BILLABLE, $UNBILLABLE)85 AND ticket_change.time >= $STARTDATE86 AND ticket_change.time < $ENDDATE87 GROUP By t.milestone88 ) as tbl89 ORDER BY milestone, _ord ASC, ticket, time90 91 92 93 """94 },#END Milestone work summary95 96 {97 "uuid":"7bd4b0ce-da6d-4b11-8be3-07e65b540d99",98 "title":"Developer Work Summary",99 "version":13,100 "sql":"""101 SELECT author as __group__,__style__, ticket,102 newvalue as Work_added, time as time, _ord103 FROM(104 SELECT '' as __style__, author, cast(t.id as text) as ticket,105 CAST(newvalue as DECIMAL) as newvalue, ticket_change.time as time, 0 as _ord106 FROM ticket_change107 JOIN ticket t on t.id = ticket_change.ticket108 LEFT JOIN ticket_custom as billable on billable.ticket = t.id109 and billable.name = 'billable'110 WHERE field = 'hours' and111 t.status IN ($NEW, $ASSIGNED, $REOPENED, $CLOSED)112 AND billable.value in ($BILLABLE, $UNBILLABLE)113 AND ticket_change.time >= $STARTDATE114 AND ticket_change.time < $ENDDATE115 116 UNION117 118 SELECT 'background-color:#DFE;' as __style__, author, NULL as ticket,119 sum(CAST(newvalue as DECIMAL)) as newvalue, NULL as time, 1 as _ord120 FROM ticket_change121 JOIN ticket t on t.id = ticket_change.ticket122 LEFT JOIN ticket_custom as billable on billable.ticket = t.id123 and billable.name = 'billable'124 WHERE field = 'hours' and125 t.status IN ($NEW, $ASSIGNED, $REOPENED, $CLOSED)126 AND billable.value in ($BILLABLE, $UNBILLABLE)127 AND ticket_change.time >= $STARTDATE128 AND ticket_change.time < $ENDDATE129 144 GROUP By author 130 145 ) as tbl … … 134 149 },#END Hours Per Developer 135 150 ] 151 th_version =12 136 152 ticket_hours_reports = [ 137 153 { 138 154 "uuid":"8d785cdb-dcf5-43c9-b2a6-216997b0011a", 139 155 "title": "Ticket Hours", 140 "version": 10,156 "version":th_version, 141 157 "sql": """ 142 158 SELECT __color__, __style__, ticket, summary, component ,version, severity, … … 147 163 t.id AS ticket, summary AS summary, -- ## Break line here 148 164 component,version, severity, milestone, status, owner, 149 CAST(EstimatedHours.value as DECIMAL) as Estimated_work, 150 CAST(totalhours.value as DECIMAL) as Total_work, 165 CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 166 ELSE CAST( EstimatedHours.value AS DECIMAL ) END as Estimated_work, 167 CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 168 ELSE CAST( totalhours.value AS DECIMAL ) END as Total_work, 151 169 CASE WHEN billable.value = 1 THEN 'Y' else 'N' END as billable, 152 170 time AS created, changetime AS modified, -- ## Dates are formatted … … 175 193 'background-color:#DFE;' as __style__, 176 194 NULL as ticket, 'Total' AS summary, 177 NULL as component,NULL as version, NULL as severity, NULL as milestone, NULL as status, NULL as owner, 178 SUM(CAST(EstimatedHours.value as DECIMAL)) as Estimated_work, 179 SUM(CAST(totalhours.value as DECIMAL)) as Total_work, 195 NULL as component,NULL as version, NULL as severity, NULL as milestone, 196 'Time Remaining: ' as status, 197 CAST( 198 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 199 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) - 200 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 201 ELSE CAST( totalhours.value AS DECIMAL ) END) 202 AS VARCHAR(1024)) as owner, 203 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 204 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) as Estimated_work, 205 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 206 ELSE CAST( totalhours.value AS DECIMAL ) END) as Total_work, 180 207 NULL as billable, 181 208 NULL as created, NULL as modified, -- ## Dates are formatted … … 203 230 """ 204 231 }, 205 #END Ticket Hours 232 #END Ticket Hours 206 233 { 207 234 "uuid":"71e7c36d-e512-4d0b-b499-087d4d20ff0b", 208 235 "title": "Ticket Hours with Description", 209 "version": 11,236 "version":th_version, 210 237 "sql": """ 211 238 SELECT __color__, __style__, ticket, summary, component ,version, severity, … … 222 249 t.id AS ticket, summary AS summary, -- ## Break line here 223 250 component,version, severity, milestone, status, owner, 224 CAST(EstimatedHours.value as DECIMAL) as Estimated_work, 225 CAST(totalhours.value as DECIMAL) as Total_work, 251 CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 252 ELSE CAST( EstimatedHours.value AS DECIMAL ) END as Estimated_work, 253 CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 254 ELSE CAST( totalhours.value AS DECIMAL ) END as Total_work, 226 255 CASE WHEN billable.value = 1 THEN 'Y' 227 256 else 'N' … … 252 281 'background-color:#DFE;' as __style__, 253 282 NULL as ticket, 'Total' AS summary, 254 NULL as component,NULL as version, NULL as severity, NULL as milestone, NULL as status, NULL as owner, 255 SUM(CAST(EstimatedHours.value as DECIMAL)) as Estimated_work, 256 SUM(CAST(totalhours.value as DECIMAL)) as Total_work, 283 NULL as component,NULL as version, NULL as severity, NULL as milestone, 284 'Time Remaining: ' as status, 285 CAST( 286 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 287 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) - 288 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 289 ELSE CAST( totalhours.value AS DECIMAL ) END) 290 AS VARCHAR(1024)) as owner, 291 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 292 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) as Estimated_work, 293 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 294 ELSE CAST( totalhours.value AS DECIMAL ) END) as Total_work, 257 295 NULL as billable, 258 296 NULL as created, NULL as modified, -- ## Dates are formatted … … 285 323 "uuid":"5f33b102-e6a6-47e8-976c-ac7a6794a909", 286 324 "title":"Ticket Hours Grouped By Component", 287 "version": 10,325 "version":th_version, 288 326 "sql": """ 289 327 SELECT __color__, __group__, __style__, ticket, summary, __component__ ,version, … … 297 335 t.id AS ticket, summary AS summary, -- ## Break line here 298 336 component as __component__,version, severity, milestone, status, owner, 299 CAST(EstimatedHours.value as DECIMAL) as Estimated_work, 300 CAST(totalhours.value as DECIMAL) as Total_work, 337 CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 338 ELSE CAST( EstimatedHours.value AS DECIMAL ) END as Estimated_work, 339 CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 340 ELSE CAST( totalhours.value AS DECIMAL ) END as Total_work, 301 341 CASE WHEN billable.value = 1 THEN 'Y' 302 342 else 'N' … … 329 369 NULL as ticket, 'Total work' AS summary, 330 370 t.component as __component__, NULL as version, NULL as severity, 331 NULL as milestone, NULL as status, 332 NULL as owner, 333 SUM(CAST(EstimatedHours.value as DECIMAL)) as Estimated_work, 334 SUM(CAST(totalhours.value as DECIMAL)) as Total_work, 371 NULL as milestone, 'Time Remaining: ' as status, 372 CAST( 373 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 374 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) - 375 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 376 ELSE CAST( totalhours.value AS DECIMAL ) END) 377 AS VARCHAR(1024)) as owner, 378 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 379 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) as Estimated_work, 380 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 381 ELSE CAST( totalhours.value AS DECIMAL ) END) as Total_work, 335 382 NULL as billable, 336 383 NULL as created, … … 365 412 "uuid":"7816f034-a174-4a94-aed6-358fb648b2fc", 366 413 "title":"Ticket Hours Grouped By Component with Description", 367 "version": 9,414 "version":th_version, 368 415 "sql": """ 369 416 SELECT __color__, __group__, __style__, ticket, summary, __component__ , … … 377 424 t.id AS ticket, summary AS summary, -- ## Break line here 378 425 component as __component__, version, severity, milestone, status, owner, 379 CAST(EstimatedHours.value as DECIMAL) as Estimated_work, 380 CAST(totalhours.value as DECIMAL) as Total_work, 426 CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 427 ELSE CAST( EstimatedHours.value AS DECIMAL ) END as Estimated_work, 428 CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 429 ELSE CAST( totalhours.value AS DECIMAL ) END as Total_work, 381 430 CASE WHEN billable.value = 1 THEN 'Y' else 'N' END as billable, 382 431 time AS created, changetime AS modified, -- ## Dates are formatted … … 407 456 NULL as ticket, 'Total work' AS summary, 408 457 t.component as __component__, NULL as version, NULL as severity, 409 NULL as milestone, NULL as status, NULL as owner, 410 SUM(CAST(EstimatedHours.value as DECIMAL)) as Estimated_work, 411 SUM(CAST(totalhours.value as DECIMAL)) as Total_work, 458 NULL as milestone, 'Time Remaining: ' as status, 459 CAST( 460 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 461 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) - 462 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 463 ELSE CAST( totalhours.value AS DECIMAL ) END) 464 AS VARCHAR(1024)) as owner, 465 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 466 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) as Estimated_work, 467 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 468 ELSE CAST( totalhours.value AS DECIMAL ) END) as Total_work, 412 469 NULL as billable, 413 470 NULL as created, NULL as modified, -- ## Dates are formatted … … 440 497 "uuid":"03815803-7688-4f3a-8e65-8d254cc1d1fb", 441 498 "title":"Ticket Hours Grouped By Milestone", 442 "version": 10,499 "version":th_version, 443 500 "sql": """ 444 501 SELECT __color__, __group__, __style__, ticket, summary, component ,version, … … 452 509 t.id AS ticket, summary AS summary, -- ## Break line here 453 510 component,version, severity, milestone as __milestone__, status, owner, 454 CAST(EstimatedHours.value as DECIMAL) as Estimated_work, 455 CAST(totalhours.value as DECIMAL) as Total_work, 511 CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 512 ELSE CAST( EstimatedHours.value AS DECIMAL ) END as Estimated_work, 513 CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 514 ELSE CAST( totalhours.value AS DECIMAL ) END as Total_work, 456 515 CASE WHEN billable.value = 1 THEN 'Y' 457 516 else 'N' … … 483 542 NULL as ticket, 'Total work' AS summary, 484 543 NULL as component,NULL as version, NULL as severity, 485 t.milestone as __milestone__, NULL as status, NULL as owner, 486 SUM(CAST(EstimatedHours.value as DECIMAL)) as Estimated_work, 487 SUM(CAST(totalhours.value as DECIMAL)) as Total_work, 544 t.milestone as __milestone__, 'Time Remaining: ' as status, 545 CAST( 546 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 547 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) - 548 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 549 ELSE CAST( totalhours.value AS DECIMAL ) END) 550 AS VARCHAR(1024)) as owner, 551 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 552 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) as Estimated_work, 553 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 554 ELSE CAST( totalhours.value AS DECIMAL ) END) as Total_work, 488 555 NULL as billable, 489 556 NULL as created, NULL as modified, -- ## Dates are formatted … … 516 583 "uuid":"040c9025-7641-4d18-96ad-2b26b4095566", 517 584 "title":"Ticket Hours Grouped By MileStone with Description", 518 "version": 10,585 "version":th_version, 519 586 "sql": """ 520 587 SELECT __color__, __group__, __style__, ticket, summary, component ,version, severity, … … 528 595 t.id AS ticket, summary AS summary, -- ## Break line here 529 596 component,version, severity, milestone as __milestone__, status, owner, 530 CAST(EstimatedHours.value as DECIMAL) as Estimated_work, 531 CAST(totalhours.value as DECIMAL) as Total_work, 597 CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 598 ELSE CAST( EstimatedHours.value AS DECIMAL ) END as Estimated_work, 599 CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 600 ELSE CAST( totalhours.value AS DECIMAL ) END as Total_work, 532 601 CASE WHEN billable.value = 1 THEN 'Y' 533 602 else 'N' … … 561 630 NULL as component,NULL as version, NULL as severity, 562 631 t.milestone as __milestone__, 563 NULL as status, NULL as owner, 564 SUM(CAST(EstimatedHours.value as DECIMAL)) as Estimated_work, 565 SUM(CAST(totalhours.value as DECIMAL)) as Total_work, 632 'Time Remaining: ' as status, 633 CAST( 634 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 635 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) - 636 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 637 ELSE CAST( totalhours.value AS DECIMAL ) END) 638 AS VARCHAR(1024)) as owner, 639 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 640 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) as Estimated_work, 641 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 642 ELSE CAST( totalhours.value AS DECIMAL ) END) as Total_work, 566 643 NULL as billable, 567 644 NULL as created, NULL as modified, -- ## Dates are formatted timingandestimationplugin/branches/trac0.11/setup.py
r2538 r2590 8 8 description='Plugin to make Trac support time estimation and tracking', 9 9 keywords='trac plugin estimation timetracking', 10 version='0.4. 8',10 version='0.4.9', 11 11 url='http://www.trac-hacks.org/wiki/TimingAndEstimationPlugin', 12 12 license='http://www.opensource.org/licenses/mit-license.php', timingandestimationplugin/branches/trac0.11/timingandestimationplugin/api.py
r2538 r2590 52 52 dbhelper.mylog = self.log 53 53 self.db_version_key = 'TimingAndEstimationPlugin_Db_Version' 54 self.db_version = 554 self.db_version = 6 55 55 self.db_installed_version = None 56 56 … … 127 127 sql = "DROP TABLE report_version" 128 128 dbhelper.execute_non_query(self.env.get_db_cnx(), sql) 129 129 #version 6 upgraded reports 130 130 131 131 # This statement block always goes at the end this method … … 134 134 sql, self.db_version, self.db_version_key) 135 135 self.db_installed_version = self.db_version 136 137 136 138 137 def do_reports_upgrade(self): 139 138 self.log.debug( "Beginning Reports Upgrade"); timingandestimationplugin/branches/trac0.11/timingandestimationplugin/reports.py
r2460 r2590 9 9 "uuid":"b24f08c0-d41f-4c63-93a5-25e18a8513c2", 10 10 "title":"Ticket Work Summary", 11 "version":1 4,11 "version":16, 12 12 "sql":""" 13 SELECT __ticket__ as __group__, __style__, __ticket__,13 SELECT __ticket__ as __group__, __style__, ticket, 14 14 newvalue as Work_added, author, time, _ord 15 15 FROM( 16 SELECT '' as __style__, author, t.id as __ticket__, 17 CAST(newvalue as DECIMAL) as newvalue, ticket_change.time as time, 0 as _ord 16 SELECT '' as __style__, author, 17 t.summary as __ticket__, 18 t.id as ticket, 19 CASE WHEN newvalue = '' OR newvalue IS NULL THEN 0 20 ELSE CAST( newvalue AS DECIMAL ) END AS newvalue, 21 ticket_change.time as time, 0 as _ord 18 22 FROM ticket_change 19 23 JOIN ticket t on t.id = ticket_change.ticket … … 30 34 SELECT 'background-color:#DFE;' as __style__, 31 35 'Total work done on the ticket in the selected time period ' as author, 32 t.id as __ticket__, sum( CAST(newvalue as DECIMAL) ) as newvalue, 36 t.summary as __ticket__, 37 t.id as ticket, 38 SUM( CASE WHEN newvalue = '' OR newvalue IS NULL THEN 0 39 ELSE CAST( newvalue AS DECIMAL ) END ) as newvalue, 33 40 NULL as time, 1 as _ord 34 41 FROM ticket_change … … 50 57 "uuid":"af13564f-0e36-4a17-96c0-632dc68d8d14", 51 58 "title":"Milestone Work Summary", 52 "version":1 3,59 "version":14, 53 60 "sql":""" 54 61 … … 58 65 FROM( 59 66 SELECT '' as __style__, t.id as ticket, 60 SUM(CAST(newvalue as DECIMAL)) as newvalue, t.summary as summary, 67 SUM( CASE WHEN newvalue = '' OR newvalue IS NULL THEN 0 68 ELSE CAST( newvalue AS DECIMAL ) END) as newvalue, t.summary as summary, 61 69 MAX(ticket_change.time) as time, t.milestone as milestone, 0 as _ord 62 70 FROM ticket_change … … 74 82 75 83 SELECT 'background-color:#DFE;' as __style__, NULL as ticket, 76 sum(CAST(newvalue as DECIMAL)) as newvalue, 'Total work done' as summary, 84 sum( CASE WHEN newvalue = '' OR newvalue IS NULL THEN 0 85 ELSE CAST( newvalue AS DECIMAL ) END) as newvalue, 'Total work done' as summary, 77 86 NULL as time, t.milestone as milestone, 1 as _ord 78 87 FROM ticket_change … … 97 106 "uuid":"7bd4b0ce-da6d-4b11-8be3-07e65b540d99", 98 107 "title":"Developer Work Summary", 99 "version":1 3,108 "version":14, 100 109 "sql":""" 101 SELECT author as __group__,__style__, ticket, 110 SELECT author as __group__,__style__, ticket, summary, 102 111 newvalue as Work_added, time as time, _ord 103 112 FROM( 104 SELECT '' as __style__, author, cast(t.id as text) as ticket, 105 CAST(newvalue as DECIMAL) as newvalue, ticket_change.time as time, 0 as _ord 113 SELECT '' as __style__, author, t.id as ticket, 114 t.summary as summary, 115 CASE WHEN newvalue = '' OR newvalue IS NULL THEN 0 116 ELSE CAST( newvalue AS DECIMAL ) END as newvalue, 117 ticket_change.time as time, 0 as _ord 106 118 FROM ticket_change 107 119 JOIN ticket t on t.id = ticket_change.ticket … … 117 129 118 130 SELECT 'background-color:#DFE;' as __style__, author, NULL as ticket, 119 sum(CAST(newvalue as DECIMAL)) as newvalue, NULL as time, 1 as _ord 131 Null as summary, 132 SUM( CASE WHEN newvalue = '' OR newvalue IS NULL THEN 0 133 ELSE CAST( newvalue AS DECIMAL ) END) as newvalue, 134 NULL as time, 1 as _ord 120 135 FROM ticket_change 121 136 JOIN ticket t on t.id = ticket_change.ticket … … 134 149 },#END Hours Per Developer 135 150 ] 151 th_version =12 136 152 ticket_hours_reports = [ 137 153 { 138 154 "uuid":"8d785cdb-dcf5-43c9-b2a6-216997b0011a", 139 155 "title": "Ticket Hours", 140 "version": 10,156 "version":th_version, 141 157 "sql": """ 142 158 SELECT __color__, __style__, ticket, summary, component ,version, severity, … … 147 163 t.id AS ticket, summary AS summary, -- ## Break line here 148 164 component,version, severity, milestone, status, owner, 149 CAST(EstimatedHours.value as DECIMAL) as Estimated_work, 150 CAST(totalhours.value as DECIMAL) as Total_work, 165 CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 166 ELSE CAST( EstimatedHours.value AS DECIMAL ) END as Estimated_work, 167 CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 168 ELSE CAST( totalhours.value AS DECIMAL ) END as Total_work, 151 169 CASE WHEN billable.value = 1 THEN 'Y' else 'N' END as billable, 152 170 time AS created, changetime AS modified, -- ## Dates are formatted … … 175 193 'background-color:#DFE;' as __style__, 176 194 NULL as ticket, 'Total' AS summary, 177 NULL as component,NULL as version, NULL as severity, NULL as milestone, NULL as status, NULL as owner, 178 SUM(CAST(EstimatedHours.value as DECIMAL)) as Estimated_work, 179 SUM(CAST(totalhours.value as DECIMAL)) as Total_work, 195 NULL as component,NULL as version, NULL as severity, NULL as milestone, 196 'Time Remaining: ' as status, 197 CAST( 198 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 199 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) - 200 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 201 ELSE CAST( totalhours.value AS DECIMAL ) END) 202 AS VARCHAR(1024)) as owner, 203 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 204 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) as Estimated_work, 205 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 206 ELSE CAST( totalhours.value AS DECIMAL ) END) as Total_work, 180 207 NULL as billable, 181 208 NULL as created, NULL as modified, -- ## Dates are formatted … … 203 230 """ 204 231 }, 205 #END Ticket Hours 232 #END Ticket Hours 206 233 { 207 234 "uuid":"71e7c36d-e512-4d0b-b499-087d4d20ff0b", 208 235 "title": "Ticket Hours with Description", 209 "version": 11,236 "version":th_version, 210 237 "sql": """ 211 238 SELECT __color__, __style__, ticket, summary, component ,version, severity, … … 222 249 t.id AS ticket, summary AS summary, -- ## Break line here 223 250 component,version, severity, milestone, status, owner, 224 CAST(EstimatedHours.value as DECIMAL) as Estimated_work, 225 CAST(totalhours.value as DECIMAL) as Total_work, 251 CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 252 ELSE CAST( EstimatedHours.value AS DECIMAL ) END as Estimated_work, 253 CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 254 ELSE CAST( totalhours.value AS DECIMAL ) END as Total_work, 226 255 CASE WHEN billable.value = 1 THEN 'Y' 227 256 else 'N' … … 252 281 'background-color:#DFE;' as __style__, 253 282 NULL as ticket, 'Total' AS summary, 254 NULL as component,NULL as version, NULL as severity, NULL as milestone, NULL as status, NULL as owner, 255 SUM(CAST(EstimatedHours.value as DECIMAL)) as Estimated_work, 256 SUM(CAST(totalhours.value as DECIMAL)) as Total_work, 283 NULL as component,NULL as version, NULL as severity, NULL as milestone, 284 'Time Remaining: ' as status, 285 CAST( 286 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 287 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) - 288 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 289 ELSE CAST( totalhours.value AS DECIMAL ) END) 290 AS VARCHAR(1024)) as owner, 291 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 292 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) as Estimated_work, 293 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 294 ELSE CAST( totalhours.value AS DECIMAL ) END) as Total_work, 257 295 NULL as billable, 258 296 NULL as created, NULL as modified, -- ## Dates are formatted … … 285 323 "uuid":"5f33b102-e6a6-47e8-976c-ac7a6794a909", 286 324 "title":"Ticket Hours Grouped By Component", 287 "version": 10,325 "version":th_version, 288 326 "sql": """ 289 327 SELECT __color__, __group__, __style__, ticket, summary, __component__ ,version, … … 297 335 t.id AS ticket, summary AS summary, -- ## Break line here 298 336 component as __component__,version, severity, milestone, status, owner, 299 CAST(EstimatedHours.value as DECIMAL) as Estimated_work, 300 CAST(totalhours.value as DECIMAL) as Total_work, 337 CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 338 ELSE CAST( EstimatedHours.value AS DECIMAL ) END as Estimated_work, 339 CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 340 ELSE CAST( totalhours.value AS DECIMAL ) END as Total_work, 301 341 CASE WHEN billable.value = 1 THEN 'Y' 302 342 else 'N' … … 329 369 NULL as ticket, 'Total work' AS summary, 330 370 t.component as __component__, NULL as version, NULL as severity, 331 NULL as milestone, NULL as status, 332 NULL as owner, 333 SUM(CAST(EstimatedHours.value as DECIMAL)) as Estimated_work, 334 SUM(CAST(totalhours.value as DECIMAL)) as Total_work, 371 NULL as milestone, 'Time Remaining: ' as status, 372 CAST( 373 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 374 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) - 375 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 376 ELSE CAST( totalhours.value AS DECIMAL ) END) 377 AS VARCHAR(1024)) as owner, 378 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 379 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) as Estimated_work, 380 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 381 ELSE CAST( totalhours.value AS DECIMAL ) END) as Total_work, 335 382 NULL as billable, 336 383 NULL as created, … … 365 412 "uuid":"7816f034-a174-4a94-aed6-358fb648b2fc", 366 413 "title":"Ticket Hours Grouped By Component with Description", 367 "version": 9,414 "version":th_version, 368 415 "sql": """ 369 416 SELECT __color__, __group__, __style__, ticket, summary, __component__ , … … 377 424 t.id AS ticket, summary AS summary, -- ## Break line here 378 425 component as __component__, version, severity, milestone, status, owner, 379 CAST(EstimatedHours.value as DECIMAL) as Estimated_work, 380 CAST(totalhours.value as DECIMAL) as Total_work, 426 CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 427 ELSE CAST( EstimatedHours.value AS DECIMAL ) END as Estimated_work, 428 CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 429 ELSE CAST( totalhours.value AS DECIMAL ) END as Total_work, 381 430 CASE WHEN billable.value = 1 THEN 'Y' else 'N' END as billable, 382 431 time AS created, changetime AS modified, -- ## Dates are formatted … … 407 456 NULL as ticket, 'Total work' AS summary, 408 457 t.component as __component__, NULL as version, NULL as severity, 409 NULL as milestone, NULL as status, NULL as owner, 410 SUM(CAST(EstimatedHours.value as DECIMAL)) as Estimated_work, 411 SUM(CAST(totalhours.value as DECIMAL)) as Total_work, 458 NULL as milestone, 'Time Remaining: ' as status, 459 CAST( 460 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 461 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) - 462 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 463 ELSE CAST( totalhours.value AS DECIMAL ) END) 464 AS VARCHAR(1024)) as owner, 465 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 466 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) as Estimated_work, 467 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 468 ELSE CAST( totalhours.value AS DECIMAL ) END) as Total_work, 412 469 NULL as billable, 413 470 NULL as created, NULL as modified, -- ## Dates are formatted … … 440 497 "uuid":"03815803-7688-4f3a-8e65-8d254cc1d1fb", 441 498 "title":"Ticket Hours Grouped By Milestone", 442 "version": 10,499 "version":th_version, 443 500 "sql": """ 444 501 SELECT __color__, __group__, __style__, ticket, summary, component ,version, … … 452 509 t.id AS ticket, summary AS summary, -- ## Break line here 453 510 component,version, severity, milestone as __milestone__, status, owner, 454 CAST(EstimatedHours.value as DECIMAL) as Estimated_work, 455 CAST(totalhours.value as DECIMAL) as Total_work, 511 CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 512 ELSE CAST( EstimatedHours.value AS DECIMAL ) END as Estimated_work, 513 CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 514 ELSE CAST( totalhours.value AS DECIMAL ) END as Total_work, 456 515 CASE WHEN billable.value = 1 THEN 'Y' 457 516 else 'N' … … 483 542 NULL as ticket, 'Total work' AS summary, 484 543 NULL as component,NULL as version, NULL as severity, 485 t.milestone as __milestone__, NULL as status, NULL as owner, 486 SUM(CAST(EstimatedHours.value as DECIMAL)) as Estimated_work, 487 SUM(CAST(totalhours.value as DECIMAL)) as Total_work, 544 t.milestone as __milestone__, 'Time Remaining: ' as status, 545 CAST( 546 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 547 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) - 548 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 549 ELSE CAST( totalhours.value AS DECIMAL ) END) 550 AS VARCHAR(1024)) as owner, 551 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 552 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) as Estimated_work, 553 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 554 ELSE CAST( totalhours.value AS DECIMAL ) END) as Total_work, 488 555 NULL as billable, 489 556 NULL as created, NULL as modified, -- ## Dates are formatted … … 516 583 "uuid":"040c9025-7641-4d18-96ad-2b26b4095566", 517 584 "title":"Ticket Hours Grouped By MileStone with Description", 518 "version": 10,585 "version":th_version, 519 586 "sql": """ 520 587 SELECT __color__, __group__, __style__, ticket, summary, component ,version, severity, … … 528 595 t.id AS ticket, summary AS summary, -- ## Break line here 529 596 component,version, severity, milestone as __milestone__, status, owner, 530 CAST(EstimatedHours.value as DECIMAL) as Estimated_work, 531 CAST(totalhours.value as DECIMAL) as Total_work, 597 CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 598 ELSE CAST( EstimatedHours.value AS DECIMAL ) END as Estimated_work, 599 CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 600 ELSE CAST( totalhours.value AS DECIMAL ) END as Total_work, 532 601 CASE WHEN billable.value = 1 THEN 'Y' 533 602 else 'N' … … 561 630 NULL as component,NULL as version, NULL as severity, 562 631 t.milestone as __milestone__, 563 NULL as status, NULL as owner, 564 SUM(CAST(EstimatedHours.value as DECIMAL)) as Estimated_work, 565 SUM(CAST(totalhours.value as DECIMAL)) as Total_work, 632 'Time Remaining: ' as status, 633 CAST( 634 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 635 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) - 636 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 637 ELSE CAST( totalhours.value AS DECIMAL ) END) 638 AS VARCHAR(1024)) as owner, 639 SUM(CASE WHEN EstimatedHours.value = '' OR EstimatedHours.value IS NULL THEN 0 640 ELSE CAST( EstimatedHours.value AS DECIMAL ) END) as Estimated_work, 641 SUM(CASE WHEN totalhours.value = '' OR totalhours.value IS NULL THEN 0 642 ELSE CAST( totalhours.value AS DECIMAL ) END) as Total_work, 566 643 NULL as billable, 567 644 NULL as created, NULL as modified, -- ## Dates are formatted
