- <tr py:for="record in records">
- <td><span py:replace="record.fecha">usuario</span></td>
- <td align="center">
- <span py:replace="tg.strbool(record.exito)">Si</span>
- </td>
- <td><span py:replace="record.observaciones">fecha corregido</span></td>
- <td>
- <ul>
- <li py:for="i in record.comandos_ejecutados" py:content="i.shortrepr()" />
- </ul>
- </td>
+ <tr py:for="record in records">
+ <?python
+ def contar_comandos_mal(prueba, publico):
+ total = 0
+ tested = 0
+ for c in prueba.comandos_ejecutados:
+ if c.comando.publico == publico:
+ if not c.exito:
+ total += 1
+ tested += 1
+ return (total, tested)
+
+ # Reviso que tan mal esta
+ # si no hay pruebas, esta mal porque no anduvieron los comandos
+ pruebas_pub_mal = 0
+ pruebas_priv_mal = 0
+ if len(record.pruebas) == 0:
+ color = "#ff0000"
+ else:
+ # Veo que onda con las pruebas
+ pri_mal = 0
+ pub_mal = 0
+ pri_total = 0
+ pub_total = 0
+ color = "#000000"
+ for prueba in record.pruebas:
+ (rpub_mal, pub_tested) = contar_comandos_mal(prueba, True)
+ (rpri_mal, pri_tested) = contar_comandos_mal(prueba, False)
+ pri_mal += rpri_mal
+ pub_mal += rpub_mal
+ pri_total += pri_tested
+ pub_total += pub_tested
+ if pri_mal + pub_mal == 0:
+ color = "entregaok"
+ else:
+ (r, g) = ("00", "00")
+ r = hex(int(255 * (pub_mal*1.0 / pub_total)))[2:]
+ g = hex(int(255 * ((pub_total-pub_mal)*1.0 / pub_total)))[2:]
+ if len(r) < 2: r = "0"+r
+ if len(g) < 2: g = "0"+g
+ color = "#" + r + g + "00"
+
+ ?>
+ <td style="background:${color};"><span py:if="record.entregador" py:replace="record.entregador.shortrepr()">usuario</span></td>
+ <td style="background:${color};"><span py:replace="record.exito">fecha asignado</span></td>
+ <td style="background:${color};"><span py:replace="record.inicio">fecha corregido</span></td>
+ <td style="background:${color};"><span py:replace="record.fin">fecha corregido</span></td>
+ <td style="background:${color};"><span py:replace="record.observaciones">nota</span></td>