)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38842,"name":"Silvia Wachira","display_name":"Silvia Wachira","email":"wachirasilvia8@gmail.com","username":"Silvia-Wachira"},"change_message_id":"33ebc138526682b0210ff2d305d8c0a5d8011659","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"8d943dbb_73023d8d","updated":"2026-03-11 06:00:58.000000000","message":"Thank you for the review, Goutham! I\u0027ve addressed all three suggestions in patchset 5:\n\n- Added min_value\u003d1 to the IntegerField and removed the redundant \u003c\u003d 0 check\n- Added a None guard in clean() to handle form validation gracefully\n- Updated the error message format to use add_error() with a local variable\n\nPlease let me know if anything else needs changing.","commit_id":"737d0e15f65a15672d378fcdecfa2052ed19b2b8"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"68bf677924588432ed8295299184749516401ae2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"913af6d3_0d9c1748","updated":"2026-03-11 20:40:32.000000000","message":"LGTM, thank you.. we don\u0027t _need_ a release note here because the behavior is largely unchanged","commit_id":"ca1e4a6a7f755035b90ffe023519f68bdeaa0867"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"dbcc11fcddae3b8bcc7997c0dc7e6aee4aeefc52","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"2bd65189_c201ea7b","updated":"2026-03-11 20:44:22.000000000","message":"Thanks for working on this change. Please address the comment in a follow-up change.","commit_id":"ca1e4a6a7f755035b90ffe023519f68bdeaa0867"}],"manila_ui/dashboards/project/shares/forms.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"981cffb9d5c6397301b91b2eb92e980127cc8b37","unresolved":true,"context_lines":[{"line_number":413,"context_line":"    )"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"    new_size \u003d forms.IntegerField("},{"line_number":416,"context_line":"        label\u003d_(\"New Size (GiB)\")"},{"line_number":417,"context_line":"    )"},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"    def clean(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"02ed987c_42350e22","line":416,"updated":"2026-03-11 04:45:17.000000000","message":"Django\u0027s IntegerField supports adding a min_value natively; it gives you:\n\n- Server-side validation before `clean()` is even called\n- HTML5 `min` attribute on the input for client-side feedback\n\nThis would let you drop the `new_size \u003c\u003d 0` check in `clean()`\nentirely:\n\n```\nnew_size \u003d forms.IntegerField(\n    label\u003d_(\"New Size (GiB)\"),\n    min_value\u003d1,\n)\n```\n\nThen the `\u003c\u003d 0` branch in `clean()` becomes dead code and can\nbe removed.","commit_id":"c8c9add41061ab23ed675eec71131e7e5dd1883a"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"68bf677924588432ed8295299184749516401ae2","unresolved":false,"context_lines":[{"line_number":413,"context_line":"    )"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"    new_size \u003d forms.IntegerField("},{"line_number":416,"context_line":"        label\u003d_(\"New Size (GiB)\")"},{"line_number":417,"context_line":"    )"},{"line_number":418,"context_line":""},{"line_number":419,"context_line":"    def clean(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"f9616b8b_73fb674f","line":416,"in_reply_to":"02ed987c_42350e22","updated":"2026-03-11 20:40:32.000000000","message":"Done","commit_id":"c8c9add41061ab23ed675eec71131e7e5dd1883a"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"981cffb9d5c6397301b91b2eb92e980127cc8b37","unresolved":true,"context_lines":[{"line_number":421,"context_line":"        new_size \u003d cleaned_data.get(\u0027new_size\u0027)"},{"line_number":422,"context_line":"        orig_size \u003d self.initial[\u0027orig_size\u0027]"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"        if new_size \u003d\u003d orig_size:"},{"line_number":425,"context_line":"            self.add_error("},{"line_number":426,"context_line":"                \u0027new_size\u0027,"},{"line_number":427,"context_line":"                _(\"New size must be different from the existing size\"))"}],"source_content_type":"text/x-python","patch_set":4,"id":"c86d5847_7ce4fed5","line":424,"updated":"2026-03-11 04:45:17.000000000","message":"Nit: the existing tests at `test_resize_share_post_with_invalid_value`\nuse `@ddt.data(5, 56, 0, -1)` and assert on the error messages.\nWith the wording changes here (\"different from\" instead of\n\"different than\", \"must be greater than zero\" instead of \"should\nnot be less than or equal to zero\"), those test assertions may\nneed updating?","commit_id":"c8c9add41061ab23ed675eec71131e7e5dd1883a"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"68bf677924588432ed8295299184749516401ae2","unresolved":false,"context_lines":[{"line_number":421,"context_line":"        new_size \u003d cleaned_data.get(\u0027new_size\u0027)"},{"line_number":422,"context_line":"        orig_size \u003d self.initial[\u0027orig_size\u0027]"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"        if new_size \u003d\u003d orig_size:"},{"line_number":425,"context_line":"            self.add_error("},{"line_number":426,"context_line":"                \u0027new_size\u0027,"},{"line_number":427,"context_line":"                _(\"New size must be different from the existing size\"))"}],"source_content_type":"text/x-python","patch_set":4,"id":"0037a84d_122843c4","line":424,"in_reply_to":"c86d5847_7ce4fed5","updated":"2026-03-11 20:40:32.000000000","message":"Done","commit_id":"c8c9add41061ab23ed675eec71131e7e5dd1883a"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"981cffb9d5c6397301b91b2eb92e980127cc8b37","unresolved":true,"context_lines":[{"line_number":436,"context_line":"        usages \u003d manila.tenant_absolute_limits(self.request)"},{"line_number":437,"context_line":"        availableGB \u003d (usages[\u0027maxTotalShareGigabytes\u0027] -"},{"line_number":438,"context_line":"                       usages[\u0027totalShareGigabytesUsed\u0027])"},{"line_number":439,"context_line":"        if new_size - orig_size \u003e availableGB:"},{"line_number":440,"context_line":"            self.add_error("},{"line_number":441,"context_line":"                \u0027new_size\u0027,"},{"line_number":442,"context_line":"                _(\u0027Cannot resize to %(new)i GiB. \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"12c3f5e7_2135a0d8","line":439,"updated":"2026-03-11 04:45:17.000000000","message":"a bit hard\nto read. Consider using a local variable for clarity:\n\n```\nmsg \u003d _(\u0027Cannot resize to %(new)i GiB. \u0027\n        \u0027Only %(avail)i GiB available.\u0027)\nself.add_error(\n    \u0027new_size\u0027,\n    msg % {\u0027new\u0027: new_size, \u0027avail\u0027: availableGB + orig_size})\n```","commit_id":"c8c9add41061ab23ed675eec71131e7e5dd1883a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"dbcc11fcddae3b8bcc7997c0dc7e6aee4aeefc52","unresolved":true,"context_lines":[{"line_number":436,"context_line":"        usages \u003d manila.tenant_absolute_limits(self.request)"},{"line_number":437,"context_line":"        availableGB \u003d (usages[\u0027maxTotalShareGigabytes\u0027] -"},{"line_number":438,"context_line":"                       usages[\u0027totalShareGigabytesUsed\u0027])"},{"line_number":439,"context_line":"        if new_size - orig_size \u003e availableGB:"},{"line_number":440,"context_line":"            self.add_error("},{"line_number":441,"context_line":"                \u0027new_size\u0027,"},{"line_number":442,"context_line":"                _(\u0027Cannot resize to %(new)i GiB. \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"f5c95d46_603ad7e0","line":439,"in_reply_to":"12c3f5e7_2135a0d8","updated":"2026-03-11 20:44:22.000000000","message":"++","commit_id":"c8c9add41061ab23ed675eec71131e7e5dd1883a"},{"author":{"_account_id":38842,"name":"Silvia Wachira","display_name":"Silvia Wachira","email":"wachirasilvia8@gmail.com","username":"Silvia-Wachira"},"change_message_id":"77ecb9b79f05fbff4d1cc3b331111eb68923267f","unresolved":false,"context_lines":[{"line_number":436,"context_line":"        usages \u003d manila.tenant_absolute_limits(self.request)"},{"line_number":437,"context_line":"        availableGB \u003d (usages[\u0027maxTotalShareGigabytes\u0027] -"},{"line_number":438,"context_line":"                       usages[\u0027totalShareGigabytesUsed\u0027])"},{"line_number":439,"context_line":"        if new_size - orig_size \u003e availableGB:"},{"line_number":440,"context_line":"            self.add_error("},{"line_number":441,"context_line":"                \u0027new_size\u0027,"},{"line_number":442,"context_line":"                _(\u0027Cannot resize to %(new)i GiB. \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"8b49dc16_510c6392","line":439,"in_reply_to":"a2c93a89_7aa83593","updated":"2026-04-06 17:20:39.000000000","message":"Done","commit_id":"c8c9add41061ab23ed675eec71131e7e5dd1883a"},{"author":{"_account_id":38842,"name":"Silvia Wachira","display_name":"Silvia Wachira","email":"wachirasilvia8@gmail.com","username":"Silvia-Wachira"},"change_message_id":"0930ef53d2ccf939c5a923d355f03f9be2649798","unresolved":true,"context_lines":[{"line_number":436,"context_line":"        usages \u003d manila.tenant_absolute_limits(self.request)"},{"line_number":437,"context_line":"        availableGB \u003d (usages[\u0027maxTotalShareGigabytes\u0027] -"},{"line_number":438,"context_line":"                       usages[\u0027totalShareGigabytesUsed\u0027])"},{"line_number":439,"context_line":"        if new_size - orig_size \u003e availableGB:"},{"line_number":440,"context_line":"            self.add_error("},{"line_number":441,"context_line":"                \u0027new_size\u0027,"},{"line_number":442,"context_line":"                _(\u0027Cannot resize to %(new)i GiB. \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"a2c93a89_7aa83593","line":439,"in_reply_to":"f5c95d46_603ad7e0","updated":"2026-04-06 17:20:22.000000000","message":"Implemented as suggested. The error message now uses a local variable `msg` for clarity.","commit_id":"c8c9add41061ab23ed675eec71131e7e5dd1883a"}]}
