• R/O
  • SSH
  • HTTPS

traclight: Commit


Commit MetaInfo

Revision114 (tree)
Time2010-12-05 19:51:37
Authorokamototk

Log Message

support empty component.

Change Summary

Incremental Difference

--- branches/tl3_0/plugins/svn/scrumburndownplugin/burndown/burndown.py (revision 113)
+++ branches/tl3_0/plugins/svn/scrumburndownplugin/burndown/burndown.py (revision 114)
@@ -205,6 +205,19 @@
205205 cursor.execute(sqlBurndown, (selected_milestone['name'], comp['name']))
206206 component_data[comp['name']] = cursor.fetchall()
207207 self.log.debug(component_data[comp['name']])
208+
209+ if len(components)==0:
210+ comp = {'name':'-'}
211+ if selected_component == 'All Components' or comp['name'] == selected_component:
212+ self.log.debug("comp = %s", comp['name'])
213+ self.log.debug("selected_component = %s", selected_component)
214+ sqlBurndown = "SELECT id, hours_remaining "\
215+ "FROM burndown "\
216+ "WHERE milestone_name = %s AND component_name = %s "\
217+ "ORDER BY id"
218+ cursor.execute(sqlBurndown, (selected_milestone['name'], comp['name']))
219+ component_data[comp['name']] = cursor.fetchall()
220+ self.log.debug(component_data[comp['name']])
208221
209222 if len(component_data) > 0 and component_data[component_data.keys()[0]]:
210223 burndown_length = len(component_data[component_data.keys()[0]])
@@ -220,6 +233,13 @@
220233 if (component_data[comp['name']] and len(component_data[comp['name']]) > time_unit):
221234 self.log.debug('hours: %s', component_data[comp['name']][time_unit][1]);
222235 sumHours += component_data[comp['name']][time_unit][1]
236+ if len(components)==0:
237+ comp={'name':'-'}
238+ self.log.debug('component: %s', [comp['name']]);
239+ self.log.debug('time_unit: %s', [time_unit]);
240+ if (component_data[comp['name']] and len(component_data[comp['name']]) > time_unit):
241+ self.log.debug('hours: %s', component_data[comp['name']][time_unit][1]);
242+ sumHours += component_data[comp['name']][time_unit][1]
223243
224244 burndown_data.append((time_unit+1, sumHours))
225245
@@ -261,7 +281,6 @@
261281
262282 milestones = dbhelper.get_milestones(db)
263283 components = dbhelper.get_components(db)
264-
265284 for mile in milestones:
266285 if mile['started'] and not mile['completed']: # milestone started, but not completed
267286 for comp in components:
@@ -306,6 +325,48 @@
306325 cursor.connection.rollback()
307326 else:
308327 db.commit()
328+ if len(components)==0:
329+ comp = {'name':'-'}
330+ sqlSelect = "SELECT est.value AS estimate, ts.value AS spent "\
331+ "FROM ticket t "\
332+ " LEFT OUTER JOIN ticket_custom est ON (t.id = est.ticket AND est.name = 'estimatedhours') "\
333+ " LEFT OUTER JOIN ticket_custom ts ON (t.id = ts.ticket AND ts.name = 'totalhours') "\
334+ "WHERE t.milestone = %s"\
335+ " AND status IN ('new', 'assigned', 'reopened', 'accepted') "
336+ cursor.execute(sqlSelect, [mile['name']])
337+
338+ rows = cursor.fetchall()
339+ hours = 0
340+ estimate = 0
341+ spent = 0
342+ if rows:
343+ for estimate, spent in rows:
344+ if not estimate:
345+ estimate = 0
346+ if not spent:
347+ spent = 0
348+
349+ if (float(estimate) - float(spent)) > 0:
350+ hours += float(estimate) - float(spent)
309351
352+ cursor.execute("SELECT id FROM burndown WHERE date = %s AND milestone_name = %s"\
353+ "AND component_name = %s", [today, mile['name'], comp['name']])
354+
355+ row = cursor.fetchone()
356+
357+ try:
358+ if row:
359+ cursor.execute("UPDATE burndown SET hours_remaining = %s WHERE date = %s AND milestone_name = %s"\
360+ "AND component_name = %s", [hours, today, mile['name'], comp['name']])
361+ else:
362+ cursor.execute("INSERT INTO burndown(component_name, milestone_name, date, hours_remaining) "\
363+ " VALUES(%s,%s,%s,%s)", [comp['name'], mile['name'], today, hours])
364+ except Exception, inst:
365+ self.log.debug(type(inst)) # the exception instance
366+ self.log.debug(inst.args) # arguments stored in .args
367+ self.log.debug(inst) # __str__ allows args to printed directly
368+ cursor.connection.rollback()
369+ else:
370+ db.commit()
310371
311372
Show on old repository browser