)]}'
{"id":"openstack%2Fcloudkitty-dashboard~996408","triplet_id":"openstack%2Fcloudkitty-dashboard~master~I556b77996f09b0259cb9fcc5b1e6ba53d5bcf68c","project":"openstack/cloudkitty-dashboard","branch":"master","attention_set":{},"removed_from_attention_set":{"39302":{"account":{"_account_id":39302,"name":"Mahmoud","email":"abouzeid@momentumx.cloud","username":"abouzeid87"},"last_update":"2026-07-28 13:00:27.000000000","reason":"Change was submitted"},"32968":{"account":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"last_update":"2026-07-28 12:47:18.000000000","reason":"\u003cGERRIT_ACCOUNT_32968\u003e replied on the change","reason_account":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"}},"15197":{"account":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"last_update":"2026-07-28 13:00:27.000000000","reason":"Change was submitted"},"37598":{"account":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"last_update":"2026-07-28 13:00:27.000000000","reason":"Change was submitted"},"34975":{"account":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"last_update":"2026-07-28 13:00:27.000000000","reason":"Change was submitted"},"35263":{"account":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"last_update":"2026-07-28 10:33:27.000000000","reason":"\u003cGERRIT_ACCOUNT_35263\u003e replied on the change","reason_account":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"}}},"hashtags":[],"change_id":"I556b77996f09b0259cb9fcc5b1e6ba53d5bcf68c","subject":"Fix grouping.js breaking all Horizon Angular pages","status":"MERGED","created":"2026-07-08 06:42:19.000000000","updated":"2026-07-28 13:02:33.000000000","submitted":"2026-07-28 13:00:27.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":3,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"996408","meta_rev_id":"34ec71f918ac36653dfac9b271d47dc172b34bb6","_number":996408,"virtual_id_number":996408,"owner":{"_account_id":39302,"name":"Mahmoud","email":"abouzeid@momentumx.cloud","username":"abouzeid87"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-07-28 13:00:27.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":9373,"name":"Vlad Gusev","email":"vlad.esten@gmail.com","username":"s10"},{"value":0,"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},{"value":0,"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"all":[{"value":2,"date":"2026-07-28 12:47:18.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2026-07-21 11:53:42.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":9373,"name":"Vlad Gusev","email":"vlad.esten@gmail.com","username":"s10"},{"value":1,"date":"2026-07-21 11:54:20.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},{"value":2,"date":"2026-07-28 10:33:27.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"all":[{"value":1,"date":"2026-07-28 12:47:18.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":9373,"name":"Vlad Gusev","email":"vlad.esten@gmail.com","username":"s10"},{"value":0,"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},{"value":0,"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":9373,"name":"Vlad Gusev","email":"vlad.esten@gmail.com","username":"s10"},{"value":0,"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},{"value":0,"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Gate Blocker Fix / Urgent Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"}],"reviewers":{"REVIEWER":[{"_account_id":9373,"name":"Vlad Gusev","email":"vlad.esten@gmail.com","username":"s10"},{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-07-08 06:57:41.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-07-15 07:45:11.000000000","updated_by":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"reviewer":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"state":"CC"},{"updated":"2026-07-18 04:13:35.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"state":"REVIEWER"},{"updated":"2026-07-18 04:13:45.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"state":"REVIEWER"},{"updated":"2026-07-18 04:14:12.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"state":"REVIEWER"},{"updated":"2026-07-18 04:14:12.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"state":"REVIEWER"},{"updated":"2026-07-18 04:14:12.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":34975,"name":"Jaromír Wysoglad","email":"jwysogla@redhat.com","username":"jwysogla"},"state":"REVIEWER"},{"updated":"2026-07-21 11:53:42.000000000","updated_by":{"_account_id":9373,"name":"Vlad Gusev","email":"vlad.esten@gmail.com","username":"s10"},"reviewer":{"_account_id":9373,"name":"Vlad Gusev","email":"vlad.esten@gmail.com","username":"s10"},"state":"REVIEWER"}],"messages":[{"id":"78b43592dc6e08c26349249b36782558a35b2f9d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":39302,"name":"Mahmoud","email":"abouzeid@momentumx.cloud","username":"abouzeid87"},"date":"2026-07-08 06:42:19.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"aea055243b4edee65b456c14ae98a6604c297f74","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-08 06:57:41.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/8dcb066c4d7c4964a8746162a70f6280\n\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/5cf2a6ca5d7e4e70bc8fdf1be0781f21 : SUCCESS in 3m 39s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/16e941483f4645cf913cbbfdc3dfe5ef : SUCCESS in 5m 08s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/38328c51694c48e0bbb9727bf5878465 : SUCCESS in 5m 10s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c04bb731631e484192db8e1d8c6ecb5a : SUCCESS in 3m 45s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/83e7bf82b905434c918eb1a9345efaee : SUCCESS in 3m 38s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/ace9e94f1b7b4653b3a9e22c327a9127 : SUCCESS in 5m 45s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ba75e4e463c54c14bec5cd4d629592fd : SUCCESS in 6m 02s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/dc9d4880ef0d4518b44940a191705c42 : SUCCESS in 4m 05s","accounts_in_message":[],"_revision_number":1},{"id":"b55daaf4e132f1865864c94a41bda3929890f70f","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2026-07-15 07:45:11.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"98c4c32c6786f2ffa6e1c5cfe74e3caf988f8587","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-07-18 04:13:30.000000000","message":"Patch Set 2: Commit message was updated.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"1bc1b434235098834979c12fe0f71fc6e2522ed9","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-07-18 04:13:35.000000000","message":"Patch Set 2: Code-Review+1","accounts_in_message":[],"_revision_number":2},{"id":"816c13a3ac11bfad06de98e3deb08305bca4687b","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-07-18 04:13:42.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"e8f9a5ca2461da425fb1d3117513f001b695b729","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-07-18 04:14:38.000000000","message":"Patch Set 2: -Code-Review","accounts_in_message":[],"_revision_number":2},{"id":"5b217d778a0433c41e0aed8e34ec51fcdbde34ed","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-18 04:24:30.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9e4d7fd09c2a427995d75ae43c695aa9\n\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/d713c7ce95ef48b8af9d4733eb7fd0ae : SUCCESS in 3m 33s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/5c81f1786f8f40fd94eaf28564266a3c : SUCCESS in 3m 29s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/ebdc450a6efd43ca900320af24504c6c : SUCCESS in 3m 31s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2a5fb895f0754172aa759b51eb3b6775 : SUCCESS in 4m 02s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/4a9d7ae83c2e4f73848a7505304a2141 : SUCCESS in 2m 49s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/1c061ab46d7a49519f48109782770d49 : SUCCESS in 5m 46s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/70a10bd7f8f248d3b505f10ab5c4a62d : SUCCESS in 5m 42s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/70a2d01f891f4ae18e61cf677fa5ca7c : SUCCESS in 2m 37s","accounts_in_message":[],"_revision_number":2},{"id":"6e91c44df82dff36064a72e0e4fa5773ab9da9a2","author":{"_account_id":9373,"name":"Vlad Gusev","email":"vlad.esten@gmail.com","username":"s10"},"date":"2026-07-21 11:53:42.000000000","message":"Patch Set 2: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"5f07bc93828b7b6cdf0208130731aa910c1b9057","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-07-21 11:54:20.000000000","message":"Patch Set 2: Code-Review+1","accounts_in_message":[],"_revision_number":2},{"id":"eec4fa30ecbac1b57e14a7dc4d19233ca6b4a717","author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"date":"2026-07-28 10:33:27.000000000","message":"Patch Set 2: Code-Review+2","accounts_in_message":[],"_revision_number":2},{"id":"dc5ce16d0ed45e1e8330cfb87e333a45fab7770f","author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"date":"2026-07-28 12:47:18.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"f74f4092ccbce851ae13f27607deb7474ec38d08","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-28 12:47:30.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"a30678f39e74834c2606059c5f829ce870c8682f","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-28 13:00:27.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/bb7a22d6cc27406ca2dc07323df48de0\n\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/195b6db81a0f4c84bab01843fec0c275 : SUCCESS in 3m 35s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/ef28bb1c96d74f76b31672777ca4ffed : SUCCESS in 4m 21s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/0b2dbe03ceab474ab2859949309516e0 : SUCCESS in 4m 36s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f5f6598de5134aecbb679413b6daea53 : SUCCESS in 3m 29s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/24fc35ad95fb4df4be3dd761cbb46cb0 : SUCCESS in 6m 11s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7e7131cb018348839698b396469ad5b7 : SUCCESS in 6m 06s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0be4710ef56546cab562b6cdb378daf9 : SUCCESS in 3m 59s","accounts_in_message":[],"_revision_number":2},{"id":"a44f2ea4a0bfe11523b08a547702525f89dcadd3","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-28 13:00:27.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":2},{"id":"34ec71f918ac36653dfac9b271d47dc172b34bb6","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-28 13:02:33.000000000","message":"Patch Set 2:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c8a7123505cd4f1eb368721e1c43e0be\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6614477547b842e1814e6f74e22e7c24 : SUCCESS in 56s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"467f8329b54875348d6ea48eb768ea4389f61c06","revisions":{"974aba95a94b927a19c7528cbd7a8c4122b9cdc1":{"kind":"REWORK","_number":1,"created":"2026-07-08 06:42:19.000000000","uploader":{"_account_id":39302,"name":"Mahmoud","email":"abouzeid@momentumx.cloud","username":"abouzeid87"},"ref":"refs/changes/08/996408/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cloudkitty-dashboard","ref":"refs/changes/08/996408/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cloudkitty-dashboard refs/changes/08/996408/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cloudkitty-dashboard refs/changes/08/996408/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cloudkitty-dashboard refs/changes/08/996408/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cloudkitty-dashboard refs/changes/08/996408/1"}}},"commit":{"parents":[{"commit":"b8577a52d55f8b0bf2660f2eb812fb672021b545","subject":"Imported Translations from Zanata","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty-dashboard/commit/b8577a52d55f8b0bf2660f2eb812fb672021b545"}]}],"author":{"name":"Mahmoud Abouzeid","email":"abouzeid@momentumx.cloud","date":"2026-07-08 06:41:31.000000000","tz":180},"committer":{"name":"Mahmoud Abouzeid","email":"abouzeid@momentumx.cloud","date":"2026-07-08 06:41:31.000000000","tz":180},"subject":"Fix grouping.js breaking all Horizon Angular pages","message":"Fix grouping.js breaking all Horizon Angular pages\n\nThe plugin\u0027s enabled file sets AUTO_DISCOVER_STATIC_FILES \u003d True, so\ndjango-compressor bundles grouping.js into Horizon\u0027s global script\nbundle, executed on every page. Its top-level JSON.parse of the\ngroupby_list_config json_script element throws a TypeError on every\nnon-CloudKitty page, aborting the bundle mid-file: angular.module()\nregistrations after the abort point never run and Angular bootstrap\nfails with [$injector:modulerr] — every Angular panel in Horizon\n(Images, Key Pairs, Server Groups, ...) breaks cloud-wide, with no\nfailed network request to hint at the cause.\n\nGuard the whole body on the element\u0027s existence. Block scoping the\nconst/class declarations also fixes the redeclaration SyntaxError from\nthe file being executed twice on CloudKitty\u0027s own pages (global bundle\nplus the template\u0027s explicit script tag).\n\nCloses-Bug: #2160103\n\"cloudkitty-dashboard grouping.js breaks every Horizon Angular panel\";\nno existing report found 2026-07-07)\n\nChange-Id: I556b77996f09b0259cb9fcc5b1e6ba53d5bcf68c\nSigned-off-by: Mahmoud Abouzeid \u003cabouzeid@momentumx.cloud\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty-dashboard/commit/974aba95a94b927a19c7528cbd7a8c4122b9cdc1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty-dashboard/commit/974aba95a94b927a19c7528cbd7a8c4122b9cdc1"}]},"branch":"refs/heads/master"},"467f8329b54875348d6ea48eb768ea4389f61c06":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2026-07-18 04:13:30.000000000","uploader":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"ref":"refs/changes/08/996408/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cloudkitty-dashboard","ref":"refs/changes/08/996408/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cloudkitty-dashboard refs/changes/08/996408/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cloudkitty-dashboard refs/changes/08/996408/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cloudkitty-dashboard refs/changes/08/996408/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cloudkitty-dashboard refs/changes/08/996408/2"}}},"commit":{"parents":[{"commit":"b8577a52d55f8b0bf2660f2eb812fb672021b545","subject":"Imported Translations from Zanata","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty-dashboard/commit/b8577a52d55f8b0bf2660f2eb812fb672021b545"}]}],"author":{"name":"Mahmoud Abouzeid","email":"abouzeid@momentumx.cloud","date":"2026-07-08 06:41:31.000000000","tz":180},"committer":{"name":"Ivan Anfimov","email":"lazekteam@gmail.com","date":"2026-07-18 04:13:30.000000000","tz":0},"subject":"Fix grouping.js breaking all Horizon Angular pages","message":"Fix grouping.js breaking all Horizon Angular pages\n\nThe plugin\u0027s enabled file sets AUTO_DISCOVER_STATIC_FILES \u003d True, so\ndjango-compressor bundles grouping.js into Horizon\u0027s global script\nbundle, executed on every page. Its top-level JSON.parse of the\ngroupby_list_config json_script element throws a TypeError on every\nnon-CloudKitty page, aborting the bundle mid-file: angular.module()\nregistrations after the abort point never run and Angular bootstrap\nfails with [$injector:modulerr] — every Angular panel in Horizon\n(Images, Key Pairs, Server Groups, ...) breaks cloud-wide, with no\nfailed network request to hint at the cause.\n\nGuard the whole body on the element\u0027s existence. Block scoping the\nconst/class declarations also fixes the redeclaration SyntaxError from\nthe file being executed twice on CloudKitty\u0027s own pages (global bundle\nplus the template\u0027s explicit script tag).\n\nCloses-Bug: #2160103\n\nChange-Id: I556b77996f09b0259cb9fcc5b1e6ba53d5bcf68c\nSigned-off-by: Mahmoud Abouzeid \u003cabouzeid@momentumx.cloud\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty-dashboard/commit/467f8329b54875348d6ea48eb768ea4389f61c06"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty-dashboard/commit/467f8329b54875348d6ea48eb768ea4389f61c06"}]},"branch":"refs/heads/master","description":"Edit commit message"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"}},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Review-Priority","description":"Review priority","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"-label:Review-Priority\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":[],"failing_atoms":["label:Review-Priority\u003dMIN"],"atom_explanations":{"label:Review-Priority\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
