)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12015,"name":"François Magimel","email":"magimel.francois@gmail.com","username":"linkid"},"change_message_id":"d0cdbbc517cdaf95a21c992dcc134e91401d5340","unresolved":true,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"🤖 Generated with [Claude Code](https://claude.com/claude-code)"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Co-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e"},{"line_number":22,"context_line":"Change-Id: I1422135aaa294f4c9e1addd44a3aa70adedcd205"},{"line_number":23,"context_line":"Signed-off-by: Juan Larriba \u003cjlarriba@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"f788a823_e5c7acd2","line":21,"updated":"2026-04-10 05:45:06.000000000","message":"Following https://openinfra.org/legal/ai-policy, you need to use the “Generated-By” (or \"Assisted-By\") label.","commit_id":"fc709b57f7e5b8d65149c5fcd4600d2e3751825c"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"d3b4a8af3a325071dbd91005738bb207bada1d14","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"🤖 Generated with [Claude Code](https://claude.com/claude-code)"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Co-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e"},{"line_number":22,"context_line":"Change-Id: I1422135aaa294f4c9e1addd44a3aa70adedcd205"},{"line_number":23,"context_line":"Signed-off-by: Juan Larriba \u003cjlarriba@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f9a11c0_1dfb3081","line":21,"in_reply_to":"f788a823_e5c7acd2","updated":"2026-04-15 10:53:57.000000000","message":"Done","commit_id":"fc709b57f7e5b8d65149c5fcd4600d2e3751825c"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"0f5c757151a45d33ce37a0de504c6ec6d1b0564d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"19b8ebb5_cf87401a","updated":"2026-01-15 14:17:35.000000000","message":"There are screenshots for this change available: \n\n- https://1drv.ms/i/c/b906192762ac84c0/IQCMbseIne4jRrWo21SgmN1cAZfBsB1s2fqc1GGcJOKy2mA?e\u003dhi39TT\n\n- https://1drv.ms/i/c/b906192762ac84c0/IQDxgWDuwMvsSZIoVe2rMp7oAe39OlyeNsQDe7eQYI0EzRk?e\u003d46fPu7","commit_id":"d6d85350e26a51be44e4d712be2dcebae4073dfa"},{"author":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"change_message_id":"31df9cabee7faaa4f9c17044da304d5ffb7dfc67","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"355b65ee_6f4e91c8","updated":"2026-01-20 23:22:47.000000000","message":"I don\u0027t know how the dashboards looked before, but what about rounding the numbers before displaying?","commit_id":"9755c0f4e958b047ae9b9fe8efdbee96e0b6c7ea"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"e7b7eabdaf958d08dab4e85fa68c1c6a49afb594","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7544fc85_7075eb84","in_reply_to":"355b65ee_6f4e91c8","updated":"2026-01-21 11:12:23.000000000","message":"Thanks for the suggestion. The \"before\" dashboards show the same numbers with the same amount of decimals. However, I think it is very much worth to round them to up to 2 decimals, as they will be prices, and much clearer for the user. I will work on it and have a patch incoming.","commit_id":"9755c0f4e958b047ae9b9fe8efdbee96e0b6c7ea"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"04492cbc73839ec56e14f389e1de9894b5d3779f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"273f8789_34cdcb61","in_reply_to":"7544fc85_7075eb84","updated":"2026-02-03 09:28:45.000000000","message":"Done","commit_id":"9755c0f4e958b047ae9b9fe8efdbee96e0b6c7ea"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"866b9282778a951763a59f0f5fa4869e00129cc7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"eed05f6d_fc83571f","updated":"2026-03-04 10:28:55.000000000","message":"Thanks! This looks good in my testing, happy to merge once the conflicts are resolved. (Looks like this patch is the cause: https://review.opendev.org/c/openstack/cloudkitty-dashboard/+/958033)","commit_id":"568ad799fe1ba4c11706cd29eb2a057e2a70bd72"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"95b785b95052ea0d3be07cfd61ab2dfb110a2097","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d0098025_32b71ab7","in_reply_to":"eed05f6d_fc83571f","updated":"2026-03-31 16:30:15.000000000","message":"Thank you! I have fixed the conflicts now.","commit_id":"568ad799fe1ba4c11706cd29eb2a057e2a70bd72"},{"author":{"_account_id":12015,"name":"François Magimel","email":"magimel.francois@gmail.com","username":"linkid"},"change_message_id":"5d11def873518f4c9b6da43fa7ce95e504ad07fa","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"3b19dcaf_2ba2eba7","updated":"2026-04-21 12:25:43.000000000","message":"Hello. As it is changing the user interface, maybe a release note would be great.","commit_id":"91c2c844103caff5f016c7b7ba31cd9ea7114b75"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"51731ddbc709dcccf0fc7918f6886bd3fbaf74bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"76eaab0a_a9d7cfca","in_reply_to":"3b19dcaf_2ba2eba7","updated":"2026-04-27 14:15:04.000000000","message":"Done","commit_id":"91c2c844103caff5f016c7b7ba31cd9ea7114b75"},{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"fec518aacf401473a2d1906d6ada883c931a97cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"54e552c9_fb3e2789","updated":"2026-04-27 14:39:04.000000000","message":"LGTM","commit_id":"bf9df5acb1655945ea789c64dfca0bb85da19a32"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"c85d393d4ed25db2d9b348d45175e6933838253a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"12ff2f49_b4a6f8ce","updated":"2026-04-28 10:30:01.000000000","message":"Thanks! Tested again, this looks great","commit_id":"bf9df5acb1655945ea789c64dfca0bb85da19a32"},{"author":{"_account_id":4264,"name":"Matthias Runge","email":"mrunge@redhat.com","username":"mrunge"},"change_message_id":"b7b270d5932f6c25d927bf2e2f789e62e067d65f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"c9cb1083_6ce6cbdb","updated":"2026-04-27 15:38:36.000000000","message":"the change between patch set 7 and 8 is adding the release note. This looks good to me. Thank you Juan!","commit_id":"bf9df5acb1655945ea789c64dfca0bb85da19a32"}],"cloudkittydashboard/dashboards/project/rating/templates/rating/index.html":[{"author":{"_account_id":12015,"name":"François Magimel","email":"magimel.francois@gmail.com","username":"linkid"},"change_message_id":"36af6107109cc1ec9e631c6508c753691eff7d88","unresolved":true,"context_lines":[{"line_number":13,"context_line":"  \u003cdiv class\u003d\"col-sm-4\"\u003e"},{"line_number":14,"context_line":"    \u003cdiv class\u003d\"panel panel-default\"\u003e"},{"line_number":15,"context_line":"      \u003cdiv class\u003d\"panel-heading\"\u003e"},{"line_number":16,"context_line":"        \u003ch3 class\u003d\"panel-title\"\u003e{% trans \"Current Month\" %}\u003c/h3\u003e"},{"line_number":17,"context_line":"        \u003csmall class\u003d\"text-muted\"\u003e{{ current_month_name }}\u003c/small\u003e"},{"line_number":18,"context_line":"      \u003c/div\u003e"},{"line_number":19,"context_line":"      \u003cdiv class\u003d\"panel-body\"\u003e"}],"source_content_type":"text/html","patch_set":4,"id":"f489303d_815eba1f","line":16,"updated":"2026-04-10 05:25:43.000000000","message":"Why are you using a h3 here, and a h2 below ?","commit_id":"fc709b57f7e5b8d65149c5fcd4600d2e3751825c"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"d3b4a8af3a325071dbd91005738bb207bada1d14","unresolved":false,"context_lines":[{"line_number":13,"context_line":"  \u003cdiv class\u003d\"col-sm-4\"\u003e"},{"line_number":14,"context_line":"    \u003cdiv class\u003d\"panel panel-default\"\u003e"},{"line_number":15,"context_line":"      \u003cdiv class\u003d\"panel-heading\"\u003e"},{"line_number":16,"context_line":"        \u003ch3 class\u003d\"panel-title\"\u003e{% trans \"Current Month\" %}\u003c/h3\u003e"},{"line_number":17,"context_line":"        \u003csmall class\u003d\"text-muted\"\u003e{{ current_month_name }}\u003c/small\u003e"},{"line_number":18,"context_line":"      \u003c/div\u003e"},{"line_number":19,"context_line":"      \u003cdiv class\u003d\"panel-body\"\u003e"}],"source_content_type":"text/html","patch_set":4,"id":"7c97888a_32c29e29","line":16,"in_reply_to":"f489303d_815eba1f","updated":"2026-04-15 10:53:57.000000000","message":"It was a mistake.","commit_id":"fc709b57f7e5b8d65149c5fcd4600d2e3751825c"}],"cloudkittydashboard/dashboards/project/rating/views.py":[{"author":{"_account_id":12015,"name":"François Magimel","email":"magimel.francois@gmail.com","username":"linkid"},"change_message_id":"a5e3436040156ec8acda8a3470b1fdef2f6c65b3","unresolved":true,"context_lines":[{"line_number":69,"context_line":"        client \u003d api.cloudkittyclient(self.request, version\u003d\u00272\u0027)"},{"line_number":70,"context_line":"        tenant_id \u003d self.request.user.tenant_id"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        now \u003d datetime.utcnow()"},{"line_number":73,"context_line":"        _, days_in_month \u003d monthrange(now.year, now.month)"},{"line_number":74,"context_line":"        days_elapsed \u003d now.day"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"dc0a2441_7a9b6aaf","line":72,"updated":"2026-04-09 18:25:41.000000000","message":"`datetime.now(timezone.utc)`\nhttps://docs.python.org/3/library/datetime.html#datetime.datetime.utcnow","commit_id":"fc709b57f7e5b8d65149c5fcd4600d2e3751825c"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"d3b4a8af3a325071dbd91005738bb207bada1d14","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        client \u003d api.cloudkittyclient(self.request, version\u003d\u00272\u0027)"},{"line_number":70,"context_line":"        tenant_id \u003d self.request.user.tenant_id"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        now \u003d datetime.utcnow()"},{"line_number":73,"context_line":"        _, days_in_month \u003d monthrange(now.year, now.month)"},{"line_number":74,"context_line":"        days_elapsed \u003d now.day"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"d8996a2c_d621ce97","line":72,"in_reply_to":"dc0a2441_7a9b6aaf","updated":"2026-04-15 10:53:57.000000000","message":"Done","commit_id":"fc709b57f7e5b8d65149c5fcd4600d2e3751825c"}],"cloudkittydashboard/dashboards/project/reporting/views.py":[{"author":{"_account_id":12015,"name":"François Magimel","email":"magimel.francois@gmail.com","username":"linkid"},"change_message_id":"a5e3436040156ec8acda8a3470b1fdef2f6c65b3","unresolved":true,"context_lines":[{"line_number":51,"context_line":"                \u0027cumulated\u0027: decimal.Decimal(str(item.get(\u0027rate\u0027, 0))),"},{"line_number":52,"context_line":"                \u0027hourly\u0027: collections.OrderedDict()"},{"line_number":53,"context_line":"            }"},{"line_number":54,"context_line":"    except Exception:"},{"line_number":55,"context_line":"        return {}"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    # Get daily breakdown for time-series chart"}],"source_content_type":"text/x-python","patch_set":4,"id":"a00f23f4_decf0b33","line":54,"updated":"2026-04-09 18:25:41.000000000","message":"Maybe you should reduce the scope of the try / except.","commit_id":"fc709b57f7e5b8d65149c5fcd4600d2e3751825c"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"d3b4a8af3a325071dbd91005738bb207bada1d14","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                \u0027cumulated\u0027: decimal.Decimal(str(item.get(\u0027rate\u0027, 0))),"},{"line_number":52,"context_line":"                \u0027hourly\u0027: collections.OrderedDict()"},{"line_number":53,"context_line":"            }"},{"line_number":54,"context_line":"    except Exception:"},{"line_number":55,"context_line":"        return {}"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    # Get daily breakdown for time-series chart"}],"source_content_type":"text/x-python","patch_set":4,"id":"b7d7cabf_6bbf0e52","line":54,"in_reply_to":"a00f23f4_decf0b33","updated":"2026-04-15 10:53:57.000000000","message":"Done","commit_id":"fc709b57f7e5b8d65149c5fcd4600d2e3751825c"}]}
