)]}'
{"openstack_dashboard/dashboards/project/loadbalancers/tables.py":[{"author":{"_account_id":5733,"name":"Kieran Spear","email":"kispear@gmail.com","username":"kspear"},"change_message_id":"da49fb9e0f429f6c1fca034df0525f4d5c5f8ea7","unresolved":false,"context_lines":[{"line_number":193,"context_line":"                             filters\u003d(lambda v: filters.default(v, _(\u0027N/A\u0027)),))"},{"line_number":194,"context_line":"    subnet_name \u003d tables.Column(\u0027subnet_name\u0027, verbose_name\u003d_(\"Subnet\"))"},{"line_number":195,"context_line":"    protocol \u003d tables.Column(\u0027protocol\u0027, verbose_name\u003d_(\"Protocol\"))"},{"line_number":196,"context_line":"    status \u003d tables.Column(\u0027status\u0027, verbose_name\u003d_(\"Status\"))"},{"line_number":197,"context_line":"    vip_name \u003d tables.Column(\u0027vip_name\u0027, verbose_name\u003d_(\"VIP\"),"},{"line_number":198,"context_line":"                             link\u003dget_vip_link)"},{"line_number":199,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2FOEk%3D","line":196,"updated":"2013-10-21 07:07:53.000000000","message":"Should display_choices be used here (like in the instances table) to map API values to something human-readable so that status values could be translated?\n\nIt turns out that they\u0027re not translatable on the instances table either.\n\nhttps://bugs.launchpad.net/horizon/+bug/1242541","commit_id":"ef244d89b3d4f4c8f4af67e033b6e7dc439680e5"},{"author":{"_account_id":5733,"name":"Kieran Spear","email":"kispear@gmail.com","username":"kspear"},"change_message_id":"92a5e086e9a2395369a2e005a8eb62c639fb3ebb","unresolved":false,"context_lines":[{"line_number":193,"context_line":"                             filters\u003d(lambda v: filters.default(v, _(\u0027N/A\u0027)),))"},{"line_number":194,"context_line":"    subnet_name \u003d tables.Column(\u0027subnet_name\u0027, verbose_name\u003d_(\"Subnet\"))"},{"line_number":195,"context_line":"    protocol \u003d tables.Column(\u0027protocol\u0027, verbose_name\u003d_(\"Protocol\"))"},{"line_number":196,"context_line":"    status \u003d tables.Column(\u0027status\u0027, verbose_name\u003d_(\"Status\"))"},{"line_number":197,"context_line":"    vip_name \u003d tables.Column(\u0027vip_name\u0027, verbose_name\u003d_(\"VIP\"),"},{"line_number":198,"context_line":"                             link\u003dget_vip_link)"},{"line_number":199,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2FLuA%3D","line":196,"in_reply_to":"AAAATH%2F%2FNkM%3D","updated":"2013-10-21 19:58:36.000000000","message":"I think status strings in particular are a good candidate for translation since they are generally well defined in the API and not subject to change. But I agree this can be done in another patch.","commit_id":"ef244d89b3d4f4c8f4af67e033b6e7dc439680e5"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e578f6b9166e11fa3e8d3e06a7c254cb55f731b8","unresolved":false,"context_lines":[{"line_number":193,"context_line":"                             filters\u003d(lambda v: filters.default(v, _(\u0027N/A\u0027)),))"},{"line_number":194,"context_line":"    subnet_name \u003d tables.Column(\u0027subnet_name\u0027, verbose_name\u003d_(\"Subnet\"))"},{"line_number":195,"context_line":"    protocol \u003d tables.Column(\u0027protocol\u0027, verbose_name\u003d_(\"Protocol\"))"},{"line_number":196,"context_line":"    status \u003d tables.Column(\u0027status\u0027, verbose_name\u003d_(\"Status\"))"},{"line_number":197,"context_line":"    vip_name \u003d tables.Column(\u0027vip_name\u0027, verbose_name\u003d_(\"VIP\"),"},{"line_number":198,"context_line":"                             link\u003dget_vip_link)"},{"line_number":199,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2FNkM%3D","line":196,"in_reply_to":"AAAATH%2F%2FNtY%3D","updated":"2013-10-21 11:22:49.000000000","message":"I would like to keep this. Neutron related codes have the similar issue in all places and it is better to clean up once.\n\nThe bigger topic is how to translate the string returned by API. It is not specific to the status string. Some exception messages are passed to exceptions.handle() and it is displayed as-is in pop-up window. I believe it is better to  be discussed at the same time though I have no good idea now.","commit_id":"ef244d89b3d4f4c8f4af67e033b6e7dc439680e5"},{"author":{"_account_id":4978,"name":"Julie Pichon","email":"jpichon@redhat.com","username":"jpichon"},"change_message_id":"3135fb98562852ecbc342a3cb356ee9192ebf3d9","unresolved":false,"context_lines":[{"line_number":193,"context_line":"                             filters\u003d(lambda v: filters.default(v, _(\u0027N/A\u0027)),))"},{"line_number":194,"context_line":"    subnet_name \u003d tables.Column(\u0027subnet_name\u0027, verbose_name\u003d_(\"Subnet\"))"},{"line_number":195,"context_line":"    protocol \u003d tables.Column(\u0027protocol\u0027, verbose_name\u003d_(\"Protocol\"))"},{"line_number":196,"context_line":"    status \u003d tables.Column(\u0027status\u0027, verbose_name\u003d_(\"Status\"))"},{"line_number":197,"context_line":"    vip_name \u003d tables.Column(\u0027vip_name\u0027, verbose_name\u003d_(\"VIP\"),"},{"line_number":198,"context_line":"                             link\u003dget_vip_link)"},{"line_number":199,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2FNtY%3D","line":196,"in_reply_to":"AAAATH%2F%2FOEk%3D","updated":"2013-10-21 10:25:12.000000000","message":"I\u0027m not convinced that duplicating every string we get from Nova and other APIs to make them translatable is sustainable. My understanding is that we do it when messages returned by the APIs are unclear or misleading.","commit_id":"ef244d89b3d4f4c8f4af67e033b6e7dc439680e5"}],"openstack_dashboard/test/test_data/neutron_data.py":[{"author":{"_account_id":5733,"name":"Kieran Spear","email":"kispear@gmail.com","username":"kspear"},"change_message_id":"da49fb9e0f429f6c1fca034df0525f4d5c5f8ea7","unresolved":false,"context_lines":[{"line_number":493,"context_line":"                  \u0027address\u0027: \u002710.0.0.12\u0027,"},{"line_number":494,"context_line":"                  \u0027protocol_port\u0027: 80,"},{"line_number":495,"context_line":"                  \u0027weight\u0027: 10,"},{"line_number":496,"context_line":"                   \u0027status\u0027: \u0027ACTIVE\u0027,"},{"line_number":497,"context_line":"                  \u0027admin_state_up\u0027: True}"},{"line_number":498,"context_line":"    TEST.api_members.add(member_dict)"},{"line_number":499,"context_line":"    TEST.members.add(lbaas.Member(member_dict))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2FOF0%3D","line":496,"updated":"2013-10-21 07:07:53.000000000","message":"tiny nit: this is misaligned","commit_id":"ef244d89b3d4f4c8f4af67e033b6e7dc439680e5"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"e578f6b9166e11fa3e8d3e06a7c254cb55f731b8","unresolved":false,"context_lines":[{"line_number":493,"context_line":"                  \u0027address\u0027: \u002710.0.0.12\u0027,"},{"line_number":494,"context_line":"                  \u0027protocol_port\u0027: 80,"},{"line_number":495,"context_line":"                  \u0027weight\u0027: 10,"},{"line_number":496,"context_line":"                   \u0027status\u0027: \u0027ACTIVE\u0027,"},{"line_number":497,"context_line":"                  \u0027admin_state_up\u0027: True}"},{"line_number":498,"context_line":"    TEST.api_members.add(member_dict)"},{"line_number":499,"context_line":"    TEST.members.add(lbaas.Member(member_dict))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2FNkA%3D","line":496,"in_reply_to":"AAAATH%2F%2FOF0%3D","updated":"2013-10-21 11:22:49.000000000","message":"Done. I thought this type of errors will be detected by flake8 :-(","commit_id":"ef244d89b3d4f4c8f4af67e033b6e7dc439680e5"}]}
