)]}'
{"manila_ui/api/manila.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"da1cf6f189e3225871558f1136e8e31ba2c52555","unresolved":false,"context_lines":[{"line_number":642,"context_line":""},{"line_number":643,"context_line":""},{"line_number":644,"context_line":"# ####### User Messages # ########"},{"line_number":645,"context_line":"def messages_get(request, message_id):"},{"line_number":646,"context_line":"    return manilaclient(request).messages.get(message_id)"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_d05aa71b","line":645,"range":{"start_line":645,"start_character":4,"end_line":645,"end_character":12},"updated":"2020-09-22 18:33:07.000000000","message":"nit: here and below.. \"message\" for consistency, resources above are singular, and that preserves the meaning when you use a \"get\"/\"delete\" (operating on one resources) or a \"list\" (operating on multiple resources)","commit_id":"62bea909c80bda73feadc0c5471cf300edb45c0e"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"133183ab8c12aeb12df66aa0c4aae0cfe13e9403","unresolved":false,"context_lines":[{"line_number":643,"context_line":""},{"line_number":644,"context_line":"# ####### User Messages # ########"},{"line_number":645,"context_line":"def messages_get(request, message_id):"},{"line_number":646,"context_line":"    return manilaclient(request).messages.get(message_id)"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"def messages_list(request, search_opts\u003dNone, sort_key\u003dNone, sort_dir\u003dNone):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_ba6b3b84","line":646,"updated":"2020-09-17 16:14:53.000000000","message":"You didn\u0027t any logic to check microversion?","commit_id":"62bea909c80bda73feadc0c5471cf300edb45c0e"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"da323778e12ab9bc36b76fb2195b32f9e8142563","unresolved":false,"context_lines":[{"line_number":643,"context_line":""},{"line_number":644,"context_line":"# ####### User Messages # ########"},{"line_number":645,"context_line":"def messages_get(request, message_id):"},{"line_number":646,"context_line":"    return manilaclient(request).messages.get(message_id)"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"def messages_list(request, search_opts\u003dNone, sort_key\u003dNone, sort_dir\u003dNone):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_b86e5e29","line":646,"in_reply_to":"9f560f44_1aee6c20","updated":"2020-09-22 16:02:05.000000000","message":"I see, you have a finer grain control over versioning there. We just go with the latest microversion supported. I\u0027d need to discuss with the rest of the community on what they thing about making this change. Do you think this is blocker?","commit_id":"62bea909c80bda73feadc0c5471cf300edb45c0e"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"3e6f1050a3d41e53eba2043f13384bc88483bc70","unresolved":false,"context_lines":[{"line_number":643,"context_line":""},{"line_number":644,"context_line":"# ####### User Messages # ########"},{"line_number":645,"context_line":"def messages_get(request, message_id):"},{"line_number":646,"context_line":"    return manilaclient(request).messages.get(message_id)"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"def messages_list(request, search_opts\u003dNone, sort_key\u003dNone, sort_dir\u003dNone):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_1aee6c20","line":646,"in_reply_to":"9f560f44_21aa32d1","updated":"2020-09-22 06:15:17.000000000","message":"hmm We also have logic in the horizon to check microversion\n\"get_microverion\" for that feature [1] but I can\u0027t say more without an actual environment.\n[1] https://opendev.org/openstack/horizon/src/branch/master/openstack_dashboard/api/microversions.py#L85\n[2]  https://opendev.org/openstack/horizon/src/branch/master/openstack_dashboard/api/cinder.py#L1028","commit_id":"62bea909c80bda73feadc0c5471cf300edb45c0e"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"98098c79c8c8f1d9f83acf12eb12f81d696dc35f","unresolved":false,"context_lines":[{"line_number":643,"context_line":""},{"line_number":644,"context_line":"# ####### User Messages # ########"},{"line_number":645,"context_line":"def messages_get(request, message_id):"},{"line_number":646,"context_line":"    return manilaclient(request).messages.get(message_id)"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"def messages_list(request, search_opts\u003dNone, sort_key\u003dNone, sort_dir\u003dNone):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_9b3a74ca","line":646,"in_reply_to":"9f560f44_b86e5e29","updated":"2020-09-22 16:22:30.000000000","message":"I don\u0027t think it\u0027s as a blocker as of now but it is something which we can improve in the future.","commit_id":"62bea909c80bda73feadc0c5471cf300edb45c0e"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"f9d4091bc99a78ad5a3a975437f3af4b0fae5db6","unresolved":false,"context_lines":[{"line_number":643,"context_line":""},{"line_number":644,"context_line":"# ####### User Messages # ########"},{"line_number":645,"context_line":"def messages_get(request, message_id):"},{"line_number":646,"context_line":"    return manilaclient(request).messages.get(message_id)"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"def messages_list(request, search_opts\u003dNone, sort_key\u003dNone, sort_dir\u003dNone):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_21aa32d1","line":646,"in_reply_to":"9f560f44_ba6b3b84","updated":"2020-09-21 19:30:36.000000000","message":"We perform that control in the client, this module only abstracts the client calls","commit_id":"62bea909c80bda73feadc0c5471cf300edb45c0e"}],"manila_ui/dashboards/admin/user_messages/tables.py":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"12496aa34f6c0b800890327fd7bf9bc685d16c9b","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    created_at \u003d tables.Column("},{"line_number":92,"context_line":"        get_date,"},{"line_number":93,"context_line":"        verbose_name\u003d_(\"Created At\"))"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def get_object_display(self, obj):"},{"line_number":96,"context_line":"        return obj.id"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_e76417bc","line":94,"updated":"2020-07-29 06:40:03.000000000","message":"\"project\" information is missing.\nCould add a column for tenant info in admin message-table.","commit_id":"f9e9efcd8327f4e39ff04ea033e1d90c897d01aa"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"8bf240974edd9e327b9acc58ad571a3f32ef65d6","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    created_at \u003d tables.Column("},{"line_number":92,"context_line":"        get_date,"},{"line_number":93,"context_line":"        verbose_name\u003d_(\"Created At\"))"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def get_object_display(self, obj):"},{"line_number":96,"context_line":"        return obj.id"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_2d37b700","line":94,"in_reply_to":"9f560f44_e76417bc","updated":"2020-09-07 21:52:43.000000000","message":"Done","commit_id":"f9e9efcd8327f4e39ff04ea033e1d90c897d01aa"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"12496aa34f6c0b800890327fd7bf9bc685d16c9b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2020 Red Hat, Inc."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#         http://www.apache.org/licenses/LICENSE-2.0"},{"line_number":8,"context_line":"#"},{"line_number":9,"context_line":"#    Unless required by applicable law or agreed to in writing, software"},{"line_number":10,"context_line":"#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":11,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from django.urls import reverse"},{"line_number":16,"context_line":"from django.utils.translation import ugettext_lazy as _"},{"line_number":17,"context_line":"from django.utils.translation import ungettext_lazy"},{"line_number":18,"context_line":"from horizon import exceptions"},{"line_number":19,"context_line":"from horizon import tables"},{"line_number":20,"context_line":"from horizon.utils.filters import parse_isotime"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from manila_ui.api import manila"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def get_date(message):"},{"line_number":26,"context_line":"    return parse_isotime(message.created_at)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class DeleteUserMessage(tables.DeleteAction):"},{"line_number":30,"context_line":"    policy_rules \u003d ((\"share\", \"share:delete_message\"),)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    @staticmethod"},{"line_number":33,"context_line":"    def action_present(count):"},{"line_number":34,"context_line":"        return ungettext_lazy("},{"line_number":35,"context_line":"            u\"Delete User Message\","},{"line_number":36,"context_line":"            u\"Delete User Messages\","},{"line_number":37,"context_line":"            count"},{"line_number":38,"context_line":"        )"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @staticmethod"},{"line_number":41,"context_line":"    def action_past(count):"},{"line_number":42,"context_line":"        return ungettext_lazy("},{"line_number":43,"context_line":"            u\"Deleted User Message\","},{"line_number":44,"context_line":"            u\"Deleted User Messages\","},{"line_number":45,"context_line":"            count"},{"line_number":46,"context_line":"        )"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def get_policy_target(self, request, datum\u003dNone):"},{"line_number":49,"context_line":"        project_id \u003d None"},{"line_number":50,"context_line":"        if datum:"},{"line_number":51,"context_line":"            project_id \u003d getattr(datum, \"project_id\", None)"},{"line_number":52,"context_line":"        return {\"project_id\": project_id}"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def delete(self, request, obj_id):"},{"line_number":55,"context_line":"        obj \u003d self.table.get_object_by_id(obj_id)"},{"line_number":56,"context_line":"        message_id \u003d self.table.get_object_display(obj)"},{"line_number":57,"context_line":"        try:"},{"line_number":58,"context_line":"            manila.messages_delete(request, message_id)"},{"line_number":59,"context_line":"        except Exception:"},{"line_number":60,"context_line":"            msg \u003d _(\u0027Unable to delete message \"%s\"\u0027)"},{"line_number":61,"context_line":"            exceptions.handle(self.request, msg % message_id)"},{"line_number":62,"context_line":"            raise"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class UserMessageIDColumn(tables.Column):"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def get_link_url(self, message):"},{"line_number":68,"context_line":"        return reverse(self.link, args\u003d(message.message_id,))"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class UserMessagesTable(tables.DataTable):"},{"line_number":72,"context_line":"    message_id \u003d tables.Column("},{"line_number":73,"context_line":"        \"id\","},{"line_number":74,"context_line":"        verbose_name\u003d_(\"ID\"),"},{"line_number":75,"context_line":"        link\u003d\"horizon:admin:user_messages:user_messages_detail\")"},{"line_number":76,"context_line":"    resource_type \u003d tables.Column("},{"line_number":77,"context_line":"        \"resource_type\","},{"line_number":78,"context_line":"        verbose_name\u003d_(\"Resource Type\"))"},{"line_number":79,"context_line":"    resource_id \u003d tables.Column("},{"line_number":80,"context_line":"        \"resource_id\","},{"line_number":81,"context_line":"        verbose_name\u003d_(\"Resource ID\"))"},{"line_number":82,"context_line":"    action_id \u003d tables.Column("},{"line_number":83,"context_line":"        \"action_id\","},{"line_number":84,"context_line":"        verbose_name\u003d_(\"Action ID\"))"},{"line_number":85,"context_line":"    user_message \u003d tables.Column("},{"line_number":86,"context_line":"        \"user_message\","},{"line_number":87,"context_line":"        verbose_name\u003d_(\"User Message\"))"},{"line_number":88,"context_line":"    detail_id \u003d tables.Column("},{"line_number":89,"context_line":"        \"detail_id\","},{"line_number":90,"context_line":"        verbose_name\u003d_(\"Detail ID\"))"},{"line_number":91,"context_line":"    created_at \u003d tables.Column("},{"line_number":92,"context_line":"        get_date,"},{"line_number":93,"context_line":"        verbose_name\u003d_(\"Created At\"))"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def get_object_display(self, obj):"},{"line_number":96,"context_line":"        return obj.id"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    class Meta(object):"},{"line_number":99,"context_line":"        name \u003d \"user_messages\""},{"line_number":100,"context_line":"        verbose_name \u003d _(\"User Messages\")"},{"line_number":101,"context_line":"        table_actions \u003d ("},{"line_number":102,"context_line":"            tables.NameFilterAction,"},{"line_number":103,"context_line":"            DeleteUserMessage,"},{"line_number":104,"context_line":"        )"},{"line_number":105,"context_line":"        row_actions \u003d ("},{"line_number":106,"context_line":"            DeleteUserMessage,"},{"line_number":107,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_a7517fdb","line":107,"range":{"start_line":1,"start_character":0,"end_line":107,"end_character":9},"updated":"2020-07-29 06:40:03.000000000","message":"You don\u0027t need to do the same thing for admin user_message table. You can simply inherit manila_ui.dashboards.project.user_messages.tables.py\nand use DeleteUserMessage, UserMessagesTable from there and then modify it.\n\nThis comment is for all admin files.","commit_id":"f9e9efcd8327f4e39ff04ea033e1d90c897d01aa"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"52d5f4f100006184af1638939dd64476f6402814","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2020 Red Hat, Inc."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#         http://www.apache.org/licenses/LICENSE-2.0"},{"line_number":8,"context_line":"#"},{"line_number":9,"context_line":"#    Unless required by applicable law or agreed to in writing, software"},{"line_number":10,"context_line":"#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":11,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from django.urls import reverse"},{"line_number":16,"context_line":"from django.utils.translation import ugettext_lazy as _"},{"line_number":17,"context_line":"from django.utils.translation import ungettext_lazy"},{"line_number":18,"context_line":"from horizon import exceptions"},{"line_number":19,"context_line":"from horizon import tables"},{"line_number":20,"context_line":"from horizon.utils.filters import parse_isotime"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from manila_ui.api import manila"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def get_date(message):"},{"line_number":26,"context_line":"    return parse_isotime(message.created_at)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class DeleteUserMessage(tables.DeleteAction):"},{"line_number":30,"context_line":"    policy_rules \u003d ((\"share\", \"share:delete_message\"),)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    @staticmethod"},{"line_number":33,"context_line":"    def action_present(count):"},{"line_number":34,"context_line":"        return ungettext_lazy("},{"line_number":35,"context_line":"            u\"Delete User Message\","},{"line_number":36,"context_line":"            u\"Delete User Messages\","},{"line_number":37,"context_line":"            count"},{"line_number":38,"context_line":"        )"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @staticmethod"},{"line_number":41,"context_line":"    def action_past(count):"},{"line_number":42,"context_line":"        return ungettext_lazy("},{"line_number":43,"context_line":"            u\"Deleted User Message\","},{"line_number":44,"context_line":"            u\"Deleted User Messages\","},{"line_number":45,"context_line":"            count"},{"line_number":46,"context_line":"        )"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def get_policy_target(self, request, datum\u003dNone):"},{"line_number":49,"context_line":"        project_id \u003d None"},{"line_number":50,"context_line":"        if datum:"},{"line_number":51,"context_line":"            project_id \u003d getattr(datum, \"project_id\", None)"},{"line_number":52,"context_line":"        return {\"project_id\": project_id}"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def delete(self, request, obj_id):"},{"line_number":55,"context_line":"        obj \u003d self.table.get_object_by_id(obj_id)"},{"line_number":56,"context_line":"        message_id \u003d self.table.get_object_display(obj)"},{"line_number":57,"context_line":"        try:"},{"line_number":58,"context_line":"            manila.messages_delete(request, message_id)"},{"line_number":59,"context_line":"        except Exception:"},{"line_number":60,"context_line":"            msg \u003d _(\u0027Unable to delete message \"%s\"\u0027)"},{"line_number":61,"context_line":"            exceptions.handle(self.request, msg % message_id)"},{"line_number":62,"context_line":"            raise"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class UserMessageIDColumn(tables.Column):"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def get_link_url(self, message):"},{"line_number":68,"context_line":"        return reverse(self.link, args\u003d(message.message_id,))"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class UserMessagesTable(tables.DataTable):"},{"line_number":72,"context_line":"    message_id \u003d tables.Column("},{"line_number":73,"context_line":"        \"id\","},{"line_number":74,"context_line":"        verbose_name\u003d_(\"ID\"),"},{"line_number":75,"context_line":"        link\u003d\"horizon:admin:user_messages:user_messages_detail\")"},{"line_number":76,"context_line":"    resource_type \u003d tables.Column("},{"line_number":77,"context_line":"        \"resource_type\","},{"line_number":78,"context_line":"        verbose_name\u003d_(\"Resource Type\"))"},{"line_number":79,"context_line":"    resource_id \u003d tables.Column("},{"line_number":80,"context_line":"        \"resource_id\","},{"line_number":81,"context_line":"        verbose_name\u003d_(\"Resource ID\"))"},{"line_number":82,"context_line":"    action_id \u003d tables.Column("},{"line_number":83,"context_line":"        \"action_id\","},{"line_number":84,"context_line":"        verbose_name\u003d_(\"Action ID\"))"},{"line_number":85,"context_line":"    user_message \u003d tables.Column("},{"line_number":86,"context_line":"        \"user_message\","},{"line_number":87,"context_line":"        verbose_name\u003d_(\"User Message\"))"},{"line_number":88,"context_line":"    detail_id \u003d tables.Column("},{"line_number":89,"context_line":"        \"detail_id\","},{"line_number":90,"context_line":"        verbose_name\u003d_(\"Detail ID\"))"},{"line_number":91,"context_line":"    created_at \u003d tables.Column("},{"line_number":92,"context_line":"        get_date,"},{"line_number":93,"context_line":"        verbose_name\u003d_(\"Created At\"))"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def get_object_display(self, obj):"},{"line_number":96,"context_line":"        return obj.id"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    class Meta(object):"},{"line_number":99,"context_line":"        name \u003d \"user_messages\""},{"line_number":100,"context_line":"        verbose_name \u003d _(\"User Messages\")"},{"line_number":101,"context_line":"        table_actions \u003d ("},{"line_number":102,"context_line":"            tables.NameFilterAction,"},{"line_number":103,"context_line":"            DeleteUserMessage,"},{"line_number":104,"context_line":"        )"},{"line_number":105,"context_line":"        row_actions \u003d ("},{"line_number":106,"context_line":"            DeleteUserMessage,"},{"line_number":107,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_aec1fd31","line":107,"range":{"start_line":1,"start_character":0,"end_line":107,"end_character":9},"in_reply_to":"9f560f44_0d3c73df","updated":"2020-09-08 05:29:06.000000000","message":"ok, please refer to this [1] URL where I have done a similar thing and let me know if you still have any doubts.\n\n[1] https://opendev.org/openstack/horizon/src/branch/master/openstack_dashboard/dashboards/admin/volume_groups/tables.py#L53","commit_id":"f9e9efcd8327f4e39ff04ea033e1d90c897d01aa"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"8bf240974edd9e327b9acc58ad571a3f32ef65d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2020 Red Hat, Inc."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#         http://www.apache.org/licenses/LICENSE-2.0"},{"line_number":8,"context_line":"#"},{"line_number":9,"context_line":"#    Unless required by applicable law or agreed to in writing, software"},{"line_number":10,"context_line":"#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":11,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from django.urls import reverse"},{"line_number":16,"context_line":"from django.utils.translation import ugettext_lazy as _"},{"line_number":17,"context_line":"from django.utils.translation import ungettext_lazy"},{"line_number":18,"context_line":"from horizon import exceptions"},{"line_number":19,"context_line":"from horizon import tables"},{"line_number":20,"context_line":"from horizon.utils.filters import parse_isotime"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from manila_ui.api import manila"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def get_date(message):"},{"line_number":26,"context_line":"    return parse_isotime(message.created_at)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class DeleteUserMessage(tables.DeleteAction):"},{"line_number":30,"context_line":"    policy_rules \u003d ((\"share\", \"share:delete_message\"),)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    @staticmethod"},{"line_number":33,"context_line":"    def action_present(count):"},{"line_number":34,"context_line":"        return ungettext_lazy("},{"line_number":35,"context_line":"            u\"Delete User Message\","},{"line_number":36,"context_line":"            u\"Delete User Messages\","},{"line_number":37,"context_line":"            count"},{"line_number":38,"context_line":"        )"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @staticmethod"},{"line_number":41,"context_line":"    def action_past(count):"},{"line_number":42,"context_line":"        return ungettext_lazy("},{"line_number":43,"context_line":"            u\"Deleted User Message\","},{"line_number":44,"context_line":"            u\"Deleted User Messages\","},{"line_number":45,"context_line":"            count"},{"line_number":46,"context_line":"        )"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def get_policy_target(self, request, datum\u003dNone):"},{"line_number":49,"context_line":"        project_id \u003d None"},{"line_number":50,"context_line":"        if datum:"},{"line_number":51,"context_line":"            project_id \u003d getattr(datum, \"project_id\", None)"},{"line_number":52,"context_line":"        return {\"project_id\": project_id}"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def delete(self, request, obj_id):"},{"line_number":55,"context_line":"        obj \u003d self.table.get_object_by_id(obj_id)"},{"line_number":56,"context_line":"        message_id \u003d self.table.get_object_display(obj)"},{"line_number":57,"context_line":"        try:"},{"line_number":58,"context_line":"            manila.messages_delete(request, message_id)"},{"line_number":59,"context_line":"        except Exception:"},{"line_number":60,"context_line":"            msg \u003d _(\u0027Unable to delete message \"%s\"\u0027)"},{"line_number":61,"context_line":"            exceptions.handle(self.request, msg % message_id)"},{"line_number":62,"context_line":"            raise"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class UserMessageIDColumn(tables.Column):"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def get_link_url(self, message):"},{"line_number":68,"context_line":"        return reverse(self.link, args\u003d(message.message_id,))"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class UserMessagesTable(tables.DataTable):"},{"line_number":72,"context_line":"    message_id \u003d tables.Column("},{"line_number":73,"context_line":"        \"id\","},{"line_number":74,"context_line":"        verbose_name\u003d_(\"ID\"),"},{"line_number":75,"context_line":"        link\u003d\"horizon:admin:user_messages:user_messages_detail\")"},{"line_number":76,"context_line":"    resource_type \u003d tables.Column("},{"line_number":77,"context_line":"        \"resource_type\","},{"line_number":78,"context_line":"        verbose_name\u003d_(\"Resource Type\"))"},{"line_number":79,"context_line":"    resource_id \u003d tables.Column("},{"line_number":80,"context_line":"        \"resource_id\","},{"line_number":81,"context_line":"        verbose_name\u003d_(\"Resource ID\"))"},{"line_number":82,"context_line":"    action_id \u003d tables.Column("},{"line_number":83,"context_line":"        \"action_id\","},{"line_number":84,"context_line":"        verbose_name\u003d_(\"Action ID\"))"},{"line_number":85,"context_line":"    user_message \u003d tables.Column("},{"line_number":86,"context_line":"        \"user_message\","},{"line_number":87,"context_line":"        verbose_name\u003d_(\"User Message\"))"},{"line_number":88,"context_line":"    detail_id \u003d tables.Column("},{"line_number":89,"context_line":"        \"detail_id\","},{"line_number":90,"context_line":"        verbose_name\u003d_(\"Detail ID\"))"},{"line_number":91,"context_line":"    created_at \u003d tables.Column("},{"line_number":92,"context_line":"        get_date,"},{"line_number":93,"context_line":"        verbose_name\u003d_(\"Created At\"))"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def get_object_display(self, obj):"},{"line_number":96,"context_line":"        return obj.id"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    class Meta(object):"},{"line_number":99,"context_line":"        name \u003d \"user_messages\""},{"line_number":100,"context_line":"        verbose_name \u003d _(\"User Messages\")"},{"line_number":101,"context_line":"        table_actions \u003d ("},{"line_number":102,"context_line":"            tables.NameFilterAction,"},{"line_number":103,"context_line":"            DeleteUserMessage,"},{"line_number":104,"context_line":"        )"},{"line_number":105,"context_line":"        row_actions \u003d ("},{"line_number":106,"context_line":"            DeleteUserMessage,"},{"line_number":107,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_0d3c73df","line":107,"range":{"start_line":1,"start_character":0,"end_line":107,"end_character":9},"in_reply_to":"9f560f44_a7517fdb","updated":"2020-09-07 21:52:43.000000000","message":"Good point, I added this to the new patch set. I\u0027m wondering how, for UserMessagesTable, I can add the \"Project\" attribute first and then the rest of the attributes. If I inherit and just add the property that is missing it\u0027s added at the end. Can I reorganize columns in my table? Couldn\u0027t find anything on a quick look on the docs, maybe you can point me to the right direction.","commit_id":"f9e9efcd8327f4e39ff04ea033e1d90c897d01aa"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"9db5da37bb12910932e7ad2ceacbcb5c562c7773","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2020 Red Hat, Inc."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"},{"line_number":6,"context_line":"#"},{"line_number":7,"context_line":"#         http://www.apache.org/licenses/LICENSE-2.0"},{"line_number":8,"context_line":"#"},{"line_number":9,"context_line":"#    Unless required by applicable law or agreed to in writing, software"},{"line_number":10,"context_line":"#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":11,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":12,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from django.urls import reverse"},{"line_number":16,"context_line":"from django.utils.translation import ugettext_lazy as _"},{"line_number":17,"context_line":"from django.utils.translation import ungettext_lazy"},{"line_number":18,"context_line":"from horizon import exceptions"},{"line_number":19,"context_line":"from horizon import tables"},{"line_number":20,"context_line":"from horizon.utils.filters import parse_isotime"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from manila_ui.api import manila"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def get_date(message):"},{"line_number":26,"context_line":"    return parse_isotime(message.created_at)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class DeleteUserMessage(tables.DeleteAction):"},{"line_number":30,"context_line":"    policy_rules \u003d ((\"share\", \"share:delete_message\"),)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    @staticmethod"},{"line_number":33,"context_line":"    def action_present(count):"},{"line_number":34,"context_line":"        return ungettext_lazy("},{"line_number":35,"context_line":"            u\"Delete User Message\","},{"line_number":36,"context_line":"            u\"Delete User Messages\","},{"line_number":37,"context_line":"            count"},{"line_number":38,"context_line":"        )"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @staticmethod"},{"line_number":41,"context_line":"    def action_past(count):"},{"line_number":42,"context_line":"        return ungettext_lazy("},{"line_number":43,"context_line":"            u\"Deleted User Message\","},{"line_number":44,"context_line":"            u\"Deleted User Messages\","},{"line_number":45,"context_line":"            count"},{"line_number":46,"context_line":"        )"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def get_policy_target(self, request, datum\u003dNone):"},{"line_number":49,"context_line":"        project_id \u003d None"},{"line_number":50,"context_line":"        if datum:"},{"line_number":51,"context_line":"            project_id \u003d getattr(datum, \"project_id\", None)"},{"line_number":52,"context_line":"        return {\"project_id\": project_id}"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def delete(self, request, obj_id):"},{"line_number":55,"context_line":"        obj \u003d self.table.get_object_by_id(obj_id)"},{"line_number":56,"context_line":"        message_id \u003d self.table.get_object_display(obj)"},{"line_number":57,"context_line":"        try:"},{"line_number":58,"context_line":"            manila.messages_delete(request, message_id)"},{"line_number":59,"context_line":"        except Exception:"},{"line_number":60,"context_line":"            msg \u003d _(\u0027Unable to delete message \"%s\"\u0027)"},{"line_number":61,"context_line":"            exceptions.handle(self.request, msg % message_id)"},{"line_number":62,"context_line":"            raise"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class UserMessageIDColumn(tables.Column):"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def get_link_url(self, message):"},{"line_number":68,"context_line":"        return reverse(self.link, args\u003d(message.message_id,))"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class UserMessagesTable(tables.DataTable):"},{"line_number":72,"context_line":"    message_id \u003d tables.Column("},{"line_number":73,"context_line":"        \"id\","},{"line_number":74,"context_line":"        verbose_name\u003d_(\"ID\"),"},{"line_number":75,"context_line":"        link\u003d\"horizon:admin:user_messages:user_messages_detail\")"},{"line_number":76,"context_line":"    resource_type \u003d tables.Column("},{"line_number":77,"context_line":"        \"resource_type\","},{"line_number":78,"context_line":"        verbose_name\u003d_(\"Resource Type\"))"},{"line_number":79,"context_line":"    resource_id \u003d tables.Column("},{"line_number":80,"context_line":"        \"resource_id\","},{"line_number":81,"context_line":"        verbose_name\u003d_(\"Resource ID\"))"},{"line_number":82,"context_line":"    action_id \u003d tables.Column("},{"line_number":83,"context_line":"        \"action_id\","},{"line_number":84,"context_line":"        verbose_name\u003d_(\"Action ID\"))"},{"line_number":85,"context_line":"    user_message \u003d tables.Column("},{"line_number":86,"context_line":"        \"user_message\","},{"line_number":87,"context_line":"        verbose_name\u003d_(\"User Message\"))"},{"line_number":88,"context_line":"    detail_id \u003d tables.Column("},{"line_number":89,"context_line":"        \"detail_id\","},{"line_number":90,"context_line":"        verbose_name\u003d_(\"Detail ID\"))"},{"line_number":91,"context_line":"    created_at \u003d tables.Column("},{"line_number":92,"context_line":"        get_date,"},{"line_number":93,"context_line":"        verbose_name\u003d_(\"Created At\"))"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def get_object_display(self, obj):"},{"line_number":96,"context_line":"        return obj.id"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    class Meta(object):"},{"line_number":99,"context_line":"        name \u003d \"user_messages\""},{"line_number":100,"context_line":"        verbose_name \u003d _(\"User Messages\")"},{"line_number":101,"context_line":"        table_actions \u003d ("},{"line_number":102,"context_line":"            tables.NameFilterAction,"},{"line_number":103,"context_line":"            DeleteUserMessage,"},{"line_number":104,"context_line":"        )"},{"line_number":105,"context_line":"        row_actions \u003d ("},{"line_number":106,"context_line":"            DeleteUserMessage,"},{"line_number":107,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_92eece1e","line":107,"range":{"start_line":1,"start_character":0,"end_line":107,"end_character":9},"in_reply_to":"9f560f44_aec1fd31","updated":"2020-09-08 17:15:48.000000000","message":"Thanks for the example, will address this in the next patch","commit_id":"f9e9efcd8327f4e39ff04ea033e1d90c897d01aa"}],"manila_ui/dashboards/admin/user_messages/templates/user_messages/_detail.html":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"69e0adf768d9c9cbd482f5dd625bd48303c27385","unresolved":false,"context_lines":[{"line_number":5,"context_line":"  \u003chr class\u003d\"header_rule\"\u003e"},{"line_number":6,"context_line":"  \u003cdl class\u003d\"dl-horizontal\"\u003e"},{"line_number":7,"context_line":"    \u003cdt\u003e{% trans \"ID\" %}\u003c/dt\u003e"},{"line_number":8,"context_line":"    \u003cdd\u003e{{ message.id }}\u003c/a\u003e\u003c/dd\u003e"},{"line_number":9,"context_line":"    \u003cdt\u003e{% trans \"Action\" %}\u003c/dt\u003e"},{"line_number":10,"context_line":"    \u003cdd\u003e{{ message.action_id }}\u003c/dd\u003e"},{"line_number":11,"context_line":"    \u003cdt\u003e{% trans \"Message\" %}\u003c/dt\u003e"}],"source_content_type":"text/html","patch_set":7,"id":"9f560f44_02938b50","line":8,"range":{"start_line":8,"start_character":7,"end_line":8,"end_character":9},"updated":"2020-09-08 23:40:03.000000000","message":"It was supposed to have a \u003ca href\u003e tag here, since you have the \u003c/a\u003e tag, right?","commit_id":"b18c3b4f0b65f86ccf6f075ee871618347a62031"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3e5d7cf21da12ab8db3d75604ef2d279ef210dbe","unresolved":false,"context_lines":[{"line_number":5,"context_line":"  \u003chr class\u003d\"header_rule\"\u003e"},{"line_number":6,"context_line":"  \u003cdl class\u003d\"dl-horizontal\"\u003e"},{"line_number":7,"context_line":"    \u003cdt\u003e{% trans \"ID\" %}\u003c/dt\u003e"},{"line_number":8,"context_line":"    \u003cdd\u003e{{ message.id }}\u003c/a\u003e\u003c/dd\u003e"},{"line_number":9,"context_line":"    \u003cdt\u003e{% trans \"Action\" %}\u003c/dt\u003e"},{"line_number":10,"context_line":"    \u003cdd\u003e{{ message.action_id }}\u003c/dd\u003e"},{"line_number":11,"context_line":"    \u003cdt\u003e{% trans \"Message\" %}\u003c/dt\u003e"}],"source_content_type":"text/html","patch_set":7,"id":"9f560f44_9baa62cf","line":8,"range":{"start_line":8,"start_character":7,"end_line":8,"end_character":9},"in_reply_to":"9f560f44_02938b50","updated":"2020-09-09 03:22:13.000000000","message":"Nice catch. Yes, this will remain as a future enhancement. Will add more info in the comments section.","commit_id":"b18c3b4f0b65f86ccf6f075ee871618347a62031"}],"manila_ui/dashboards/admin/user_messages/views.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"69e0adf768d9c9cbd482f5dd625bd48303c27385","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        try:"},{"line_number":36,"context_line":"            messages \u003d manila.messages_list(self.request)"},{"line_number":37,"context_line":"            utils.set_project_name_to_objects(self.request, messages)"},{"line_number":38,"context_line":"        except Exception:"},{"line_number":39,"context_line":"            msg \u003d _(\"Unable to retrieve messages list.\")"},{"line_number":40,"context_line":"            exceptions.handle(self.request, msg)"},{"line_number":41,"context_line":"            return []"},{"line_number":42,"context_line":"        return messages"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_25e85914","line":41,"range":{"start_line":38,"start_character":8,"end_line":41,"end_character":21},"updated":"2020-09-08 23:40:03.000000000","message":"This exception is not covered by unit tests [1] and it possibly is a good candidate to help to increate the coverage :)\n\n[1] https://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_225/742550/7/check/openstack-tox-cover/225f26a/cover/manila_ui_dashboards_admin_user_messages_views_py.html#t38","commit_id":"b18c3b4f0b65f86ccf6f075ee871618347a62031"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3e5d7cf21da12ab8db3d75604ef2d279ef210dbe","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        try:"},{"line_number":36,"context_line":"            messages \u003d manila.messages_list(self.request)"},{"line_number":37,"context_line":"            utils.set_project_name_to_objects(self.request, messages)"},{"line_number":38,"context_line":"        except Exception:"},{"line_number":39,"context_line":"            msg \u003d _(\"Unable to retrieve messages list.\")"},{"line_number":40,"context_line":"            exceptions.handle(self.request, msg)"},{"line_number":41,"context_line":"            return []"},{"line_number":42,"context_line":"        return messages"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_fb8c3e81","line":41,"range":{"start_line":38,"start_character":8,"end_line":41,"end_character":21},"in_reply_to":"9f560f44_25e85914","updated":"2020-09-09 03:22:13.000000000","message":"Done","commit_id":"b18c3b4f0b65f86ccf6f075ee871618347a62031"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0a78ab7da75741ae9d4905fd3d07d4c1e7838100","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        try:"},{"line_number":36,"context_line":"            messages \u003d manila.messages_list(self.request)"},{"line_number":37,"context_line":"            utils.set_project_name_to_objects(self.request, messages)"},{"line_number":38,"context_line":"        except Exception:"},{"line_number":39,"context_line":"            msg \u003d _(\"Unable to retrieve messages list.\")"},{"line_number":40,"context_line":"            exceptions.handle(self.request, msg)"},{"line_number":41,"context_line":"            return []"},{"line_number":42,"context_line":"        return messages"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class UserMessagesAdminDetailView(project_views.UserMessagesDetailView):"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_0f4a8725","line":42,"range":{"start_line":38,"start_character":8,"end_line":42,"end_character":23},"updated":"2020-09-09 14:09:10.000000000","message":"According to the coverage report, this exception in the get_user_messages_data method is not being covered as well as the one in the project/user_messages/views.py.\nI think these are good scenarios to add and help to increase the coverage.","commit_id":"9004afa5ddf56f53e6dd70bc63b0554de5ce81bc"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"0db5864a11a3419b911bd2cd417e4938d915e376","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        try:"},{"line_number":36,"context_line":"            messages \u003d manila.messages_list(self.request)"},{"line_number":37,"context_line":"            utils.set_project_name_to_objects(self.request, messages)"},{"line_number":38,"context_line":"        except Exception:"},{"line_number":39,"context_line":"            msg \u003d _(\"Unable to retrieve messages list.\")"},{"line_number":40,"context_line":"            exceptions.handle(self.request, msg)"},{"line_number":41,"context_line":"            return []"},{"line_number":42,"context_line":"        return messages"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class UserMessagesAdminDetailView(project_views.UserMessagesDetailView):"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_922d1291","line":42,"range":{"start_line":38,"start_character":8,"end_line":42,"end_character":23},"in_reply_to":"9f560f44_0f4a8725","updated":"2020-09-09 20:57:27.000000000","message":"Done","commit_id":"9004afa5ddf56f53e6dd70bc63b0554de5ce81bc"}],"manila_ui/dashboards/project/user_messages/tables.py":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"12496aa34f6c0b800890327fd7bf9bc685d16c9b","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        name \u003d \"user_messages\""},{"line_number":100,"context_line":"        verbose_name \u003d _(\"User Messages\")"},{"line_number":101,"context_line":"        table_actions \u003d ("},{"line_number":102,"context_line":"            tables.NameFilterAction,"},{"line_number":103,"context_line":"            DeleteUserMessage,"},{"line_number":104,"context_line":"        )"},{"line_number":105,"context_line":"        row_actions \u003d ("}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_07bcabda","line":102,"range":{"start_line":102,"start_character":19,"end_line":102,"end_character":35},"updated":"2020-07-29 06:40:03.000000000","message":"You can also add some options in the filter like:\n\"resource_type\" \u003d volume or snapshot or backup in case of cinder.\nbut it is optional.","commit_id":"f9e9efcd8327f4e39ff04ea033e1d90c897d01aa"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"8bf240974edd9e327b9acc58ad571a3f32ef65d6","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        name \u003d \"user_messages\""},{"line_number":100,"context_line":"        verbose_name \u003d _(\"User Messages\")"},{"line_number":101,"context_line":"        table_actions \u003d ("},{"line_number":102,"context_line":"            tables.NameFilterAction,"},{"line_number":103,"context_line":"            DeleteUserMessage,"},{"line_number":104,"context_line":"        )"},{"line_number":105,"context_line":"        row_actions \u003d ("}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_4d214bb4","line":102,"range":{"start_line":102,"start_character":19,"end_line":102,"end_character":35},"in_reply_to":"9f560f44_07bcabda","updated":"2020-09-07 21:52:43.000000000","message":"Nice, I\u0027ll investigate this as a future enhancement","commit_id":"f9e9efcd8327f4e39ff04ea033e1d90c897d01aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"69e0adf768d9c9cbd482f5dd625bd48303c27385","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        message_id \u003d self.table.get_object_display(obj)"},{"line_number":57,"context_line":"        try:"},{"line_number":58,"context_line":"            manila.messages_delete(request, message_id)"},{"line_number":59,"context_line":"        except Exception:"},{"line_number":60,"context_line":"            msg \u003d _(\u0027Unable to delete message \"%s\"\u0027)"},{"line_number":61,"context_line":"            exceptions.handle(self.request, msg % message_id)"},{"line_number":62,"context_line":"            raise"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class UserMessageIDColumn(tables.Column):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_25d17958","line":62,"range":{"start_line":59,"start_character":8,"end_line":62,"end_character":17},"updated":"2020-09-08 23:40:03.000000000","message":"maybe add a unit test to cover this negative scenario as well.","commit_id":"b18c3b4f0b65f86ccf6f075ee871618347a62031"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3e5d7cf21da12ab8db3d75604ef2d279ef210dbe","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        message_id \u003d self.table.get_object_display(obj)"},{"line_number":57,"context_line":"        try:"},{"line_number":58,"context_line":"            manila.messages_delete(request, message_id)"},{"line_number":59,"context_line":"        except Exception:"},{"line_number":60,"context_line":"            msg \u003d _(\u0027Unable to delete message \"%s\"\u0027)"},{"line_number":61,"context_line":"            exceptions.handle(self.request, msg % message_id)"},{"line_number":62,"context_line":"            raise"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"class UserMessageIDColumn(tables.Column):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_7bee6e21","line":62,"range":{"start_line":59,"start_character":8,"end_line":62,"end_character":17},"in_reply_to":"9f560f44_25d17958","updated":"2020-09-09 03:22:13.000000000","message":"Done","commit_id":"b18c3b4f0b65f86ccf6f075ee871618347a62031"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"fb43c68a88a87aad63a3629363807aafe87c367f","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        return reverse(self.link, args\u003d(message.message_id,))"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class UserMessagesTable(tables.DataTable):"},{"line_number":72,"context_line":"    message_id \u003d tables.Column("},{"line_number":73,"context_line":"        \"id\","},{"line_number":74,"context_line":"        verbose_name\u003d_(\"ID\"),"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_6cb7e386","line":71,"updated":"2020-09-23 03:09:16.000000000","message":"In horizon cinder message support, I recommended to add \"message_leveL\u0027 and also change the order of fields to moree meaningful one. I think you can check the latest horizon implementation and update manila-ui implementation if you think it is good.","commit_id":"62bea909c80bda73feadc0c5471cf300edb45c0e"}],"manila_ui/dashboards/project/user_messages/templates/user_messages/_detail.html":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"12496aa34f6c0b800890327fd7bf9bc685d16c9b","unresolved":false,"context_lines":[{"line_number":5,"context_line":"  \u003chr class\u003d\"header_rule\"\u003e"},{"line_number":6,"context_line":"  \u003cdl class\u003d\"dl-horizontal\"\u003e"},{"line_number":7,"context_line":"    \u003cdt\u003e{% trans \"ID\" %}\u003c/dt\u003e"},{"line_number":8,"context_line":"    \u003cdd\u003e{{ message.id }}\u003c/dd\u003e"},{"line_number":9,"context_line":"    \u003cdt\u003e{% trans \"Action\" %}\u003c/dt\u003e"},{"line_number":10,"context_line":"    \u003cdd\u003e{{ message.action_id }}\u003c/dd\u003e"},{"line_number":11,"context_line":"    \u003cdt\u003e{% trans \"Message\" %}\u003c/dt\u003e"}],"source_content_type":"text/html","patch_set":3,"id":"9f560f44_a7c21f32","line":8,"range":{"start_line":8,"start_character":11,"end_line":8,"end_character":21},"updated":"2020-07-29 06:40:03.000000000","message":"Could we add a \u0027href\u0027 here which can redirect us to that specific resource?\nLet me explain with a volume example. If I have a volume \u0027test\u0027 and it is failed to create due to \u0027xyz\u0027 reason.\nNow in Detailview if I click on this message.id then it will redirect me to test volume.","commit_id":"f9e9efcd8327f4e39ff04ea033e1d90c897d01aa"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"4864232e4a9b0436a1ce5d39f8c0f9cc3d78355b","unresolved":false,"context_lines":[{"line_number":5,"context_line":"  \u003chr class\u003d\"header_rule\"\u003e"},{"line_number":6,"context_line":"  \u003cdl class\u003d\"dl-horizontal\"\u003e"},{"line_number":7,"context_line":"    \u003cdt\u003e{% trans \"ID\" %}\u003c/dt\u003e"},{"line_number":8,"context_line":"    \u003cdd\u003e{{ message.id }}\u003c/dd\u003e"},{"line_number":9,"context_line":"    \u003cdt\u003e{% trans \"Action\" %}\u003c/dt\u003e"},{"line_number":10,"context_line":"    \u003cdd\u003e{{ message.action_id }}\u003c/dd\u003e"},{"line_number":11,"context_line":"    \u003cdt\u003e{% trans \"Message\" %}\u003c/dt\u003e"}],"source_content_type":"text/html","patch_set":3,"id":"9f560f44_2efccd70","line":8,"range":{"start_line":8,"start_character":11,"end_line":8,"end_character":21},"in_reply_to":"9f560f44_2d105759","updated":"2020-09-08 05:37:51.000000000","message":"IMO you can use any field for href reource_type or resource-id. I have just given an example.","commit_id":"f9e9efcd8327f4e39ff04ea033e1d90c897d01aa"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"9db5da37bb12910932e7ad2ceacbcb5c562c7773","unresolved":false,"context_lines":[{"line_number":5,"context_line":"  \u003chr class\u003d\"header_rule\"\u003e"},{"line_number":6,"context_line":"  \u003cdl class\u003d\"dl-horizontal\"\u003e"},{"line_number":7,"context_line":"    \u003cdt\u003e{% trans \"ID\" %}\u003c/dt\u003e"},{"line_number":8,"context_line":"    \u003cdd\u003e{{ message.id }}\u003c/dd\u003e"},{"line_number":9,"context_line":"    \u003cdt\u003e{% trans \"Action\" %}\u003c/dt\u003e"},{"line_number":10,"context_line":"    \u003cdd\u003e{{ message.action_id }}\u003c/dd\u003e"},{"line_number":11,"context_line":"    \u003cdt\u003e{% trans \"Message\" %}\u003c/dt\u003e"}],"source_content_type":"text/html","patch_set":3,"id":"9f560f44_72f33a0a","line":8,"range":{"start_line":8,"start_character":11,"end_line":8,"end_character":21},"in_reply_to":"9f560f44_2efccd70","updated":"2020-09-08 17:15:48.000000000","message":"Makes sense","commit_id":"f9e9efcd8327f4e39ff04ea033e1d90c897d01aa"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"8bf240974edd9e327b9acc58ad571a3f32ef65d6","unresolved":false,"context_lines":[{"line_number":5,"context_line":"  \u003chr class\u003d\"header_rule\"\u003e"},{"line_number":6,"context_line":"  \u003cdl class\u003d\"dl-horizontal\"\u003e"},{"line_number":7,"context_line":"    \u003cdt\u003e{% trans \"ID\" %}\u003c/dt\u003e"},{"line_number":8,"context_line":"    \u003cdd\u003e{{ message.id }}\u003c/dd\u003e"},{"line_number":9,"context_line":"    \u003cdt\u003e{% trans \"Action\" %}\u003c/dt\u003e"},{"line_number":10,"context_line":"    \u003cdd\u003e{{ message.action_id }}\u003c/dd\u003e"},{"line_number":11,"context_line":"    \u003cdt\u003e{% trans \"Message\" %}\u003c/dt\u003e"}],"source_content_type":"text/html","patch_set":3,"id":"9f560f44_2d105759","line":8,"range":{"start_line":8,"start_character":11,"end_line":8,"end_character":21},"in_reply_to":"9f560f44_a7c21f32","updated":"2020-09-07 21:52:43.000000000","message":"Maybe I could do so for the resource id field instead for message id, what do you think?\n\nI see an issue here though... we need to get the resource type and the resource id in order to specify the correct url.  \n\nIn the example you gave the URL might be like horizon:volume:volume_id, if it\u0027s a snapshot it would be like horizon:volume_snapshots:snapshot_id.\n\nNeed to think on a clean way to address this.","commit_id":"f9e9efcd8327f4e39ff04ea033e1d90c897d01aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"69e0adf768d9c9cbd482f5dd625bd48303c27385","unresolved":false,"context_lines":[{"line_number":5,"context_line":"  \u003chr class\u003d\"header_rule\"\u003e"},{"line_number":6,"context_line":"  \u003cdl class\u003d\"dl-horizontal\"\u003e"},{"line_number":7,"context_line":"    \u003cdt\u003e{% trans \"ID\" %}\u003c/dt\u003e"},{"line_number":8,"context_line":"    \u003cdd\u003e{{ message.id }}\u003c/dd\u003e"},{"line_number":9,"context_line":"    \u003cdt\u003e{% trans \"Action\" %}\u003c/dt\u003e"},{"line_number":10,"context_line":"    \u003cdd\u003e{{ message.action_id }}\u003c/dd\u003e"},{"line_number":11,"context_line":"    \u003cdt\u003e{% trans \"Message\" %}\u003c/dt\u003e"}],"source_content_type":"text/html","patch_set":7,"id":"9f560f44_e243f7ae","line":8,"range":{"start_line":8,"start_character":8,"end_line":8,"end_character":24},"updated":"2020-09-08 23:40:03.000000000","message":"Wouldn\u0027t be a href needed here as well?","commit_id":"b18c3b4f0b65f86ccf6f075ee871618347a62031"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3e5d7cf21da12ab8db3d75604ef2d279ef210dbe","unresolved":false,"context_lines":[{"line_number":5,"context_line":"  \u003chr class\u003d\"header_rule\"\u003e"},{"line_number":6,"context_line":"  \u003cdl class\u003d\"dl-horizontal\"\u003e"},{"line_number":7,"context_line":"    \u003cdt\u003e{% trans \"ID\" %}\u003c/dt\u003e"},{"line_number":8,"context_line":"    \u003cdd\u003e{{ message.id }}\u003c/dd\u003e"},{"line_number":9,"context_line":"    \u003cdt\u003e{% trans \"Action\" %}\u003c/dt\u003e"},{"line_number":10,"context_line":"    \u003cdd\u003e{{ message.action_id }}\u003c/dd\u003e"},{"line_number":11,"context_line":"    \u003cdt\u003e{% trans \"Message\" %}\u003c/dt\u003e"}],"source_content_type":"text/html","patch_set":7,"id":"9f560f44_fbe1de2c","line":8,"range":{"start_line":8,"start_character":8,"end_line":8,"end_character":24},"in_reply_to":"9f560f44_e243f7ae","updated":"2020-09-09 03:22:13.000000000","message":"Ditto","commit_id":"b18c3b4f0b65f86ccf6f075ee871618347a62031"}],"manila_ui/dashboards/project/user_messages/views.py":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"12496aa34f6c0b800890327fd7bf9bc685d16c9b","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from horizon.utils import memoized"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from manila_ui.api import manila"},{"line_number":23,"context_line":"from manila_ui.dashboards.project.user_messages import tables as um_tables"},{"line_number":24,"context_line":"from manila_ui.dashboards.project.user_messages import tabs as um_tabs"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_27056f78","line":23,"range":{"start_line":23,"start_character":65,"end_line":23,"end_character":74},"updated":"2020-07-29 06:40:03.000000000","message":"messages_table looks better to me.","commit_id":"f9e9efcd8327f4e39ff04ea033e1d90c897d01aa"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"8bf240974edd9e327b9acc58ad571a3f32ef65d6","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from horizon.utils import memoized"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from manila_ui.api import manila"},{"line_number":23,"context_line":"from manila_ui.dashboards.project.user_messages import tables as um_tables"},{"line_number":24,"context_line":"from manila_ui.dashboards.project.user_messages import tabs as um_tabs"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_6d0d2f3d","line":23,"range":{"start_line":23,"start_character":65,"end_line":23,"end_character":74},"in_reply_to":"9f560f44_27056f78","updated":"2020-09-07 21:52:43.000000000","message":"Updated to admin_tables","commit_id":"f9e9efcd8327f4e39ff04ea033e1d90c897d01aa"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"12496aa34f6c0b800890327fd7bf9bc685d16c9b","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from manila_ui.api import manila"},{"line_number":23,"context_line":"from manila_ui.dashboards.project.user_messages import tables as um_tables"},{"line_number":24,"context_line":"from manila_ui.dashboards.project.user_messages import tabs as um_tabs"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class UserMessagesView(tables.MultiTableView):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_67f64792","line":24,"range":{"start_line":24,"start_character":63,"end_line":24,"end_character":70},"updated":"2020-07-29 06:40:03.000000000","message":"ditto. messages_tab","commit_id":"f9e9efcd8327f4e39ff04ea033e1d90c897d01aa"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"8bf240974edd9e327b9acc58ad571a3f32ef65d6","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from manila_ui.api import manila"},{"line_number":23,"context_line":"from manila_ui.dashboards.project.user_messages import tables as um_tables"},{"line_number":24,"context_line":"from manila_ui.dashboards.project.user_messages import tabs as um_tabs"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class UserMessagesView(tables.MultiTableView):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_ad03c70f","line":24,"range":{"start_line":24,"start_character":63,"end_line":24,"end_character":70},"in_reply_to":"9f560f44_67f64792","updated":"2020-09-07 21:52:43.000000000","message":"Updates to admin_tabs","commit_id":"f9e9efcd8327f4e39ff04ea033e1d90c897d01aa"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"69e0adf768d9c9cbd482f5dd625bd48303c27385","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    def get_user_messages_data(self):"},{"line_number":36,"context_line":"        try:"},{"line_number":37,"context_line":"            messages \u003d manila.messages_list(self.request)"},{"line_number":38,"context_line":"        except Exception:"},{"line_number":39,"context_line":"            msg \u003d _(\"Unable to retrieve messages list.\")"},{"line_number":40,"context_line":"            exceptions.handle(self.request, msg)"},{"line_number":41,"context_line":"            return []"},{"line_number":42,"context_line":"        return messages"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class UserMessagesDetailView(tabs.TabView):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_a572a97a","line":42,"range":{"start_line":38,"start_character":8,"end_line":42,"end_character":23},"updated":"2020-09-08 23:40:03.000000000","message":"This is perhaps another candidate to be covered with unit tests","commit_id":"b18c3b4f0b65f86ccf6f075ee871618347a62031"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"3e5d7cf21da12ab8db3d75604ef2d279ef210dbe","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    def get_user_messages_data(self):"},{"line_number":36,"context_line":"        try:"},{"line_number":37,"context_line":"            messages \u003d manila.messages_list(self.request)"},{"line_number":38,"context_line":"        except Exception:"},{"line_number":39,"context_line":"            msg \u003d _(\"Unable to retrieve messages list.\")"},{"line_number":40,"context_line":"            exceptions.handle(self.request, msg)"},{"line_number":41,"context_line":"            return []"},{"line_number":42,"context_line":"        return messages"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class UserMessagesDetailView(tabs.TabView):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_5b5a8af1","line":42,"range":{"start_line":38,"start_character":8,"end_line":42,"end_character":23},"in_reply_to":"9f560f44_a572a97a","updated":"2020-09-09 03:22:13.000000000","message":"Done","commit_id":"b18c3b4f0b65f86ccf6f075ee871618347a62031"}],"manila_ui/tests/api/test_manila.py":[{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"7bdbd6645af71c97ae7eb90a26962da20b321c1c","unresolved":false,"context_lines":[{"line_number":691,"context_line":"        get_method.assert_called_once_with(sgt)"},{"line_number":692,"context_line":"        get_method.return_value.get_keys.assert_called_once_with()"},{"line_number":693,"context_line":""},{"line_number":694,"context_line":"    @ddt.data(None, \"some_fake_message_id\")"},{"line_number":695,"context_line":"    def test_share_messages_get(self, message_id):"},{"line_number":696,"context_line":"        result \u003d api.messages_get(self.request, message_id)"},{"line_number":697,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_5b28ca31","line":694,"updated":"2020-09-09 03:30:13.000000000","message":"Coverage is pointing that we are missing cases here, not sure how to improve this, suggestions?","commit_id":"b18c3b4f0b65f86ccf6f075ee871618347a62031"}],"manila_ui/tests/dashboards/admin/user_messages/tests.py":[{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"133183ab8c12aeb12df66aa0c4aae0cfe13e9403","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        # Reset taken list of projects to avoid test interference"},{"line_number":41,"context_line":"        utils.PROJECTS \u003d {}"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @ddt.data(None, Exception(\u0027fake\u0027))"},{"line_number":44,"context_line":"    def test_view(self, exc):"},{"line_number":45,"context_line":"        message_1 \u003d test_data.fake_message_1"},{"line_number":46,"context_line":"        message_2 \u003d test_data.fake_message_2"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_5a5dbfea","line":43,"range":{"start_line":43,"start_character":4,"end_line":43,"end_character":38},"updated":"2020-09-17 16:14:53.000000000","message":"we use a different approach in horizon for testing and mocking but it\u0027s fine.\nhttps://opendev.org/openstack/horizon/src/branch/master/openstack_dashboard/dashboards/admin/volume_groups/tests.py#L53","commit_id":"62bea909c80bda73feadc0c5471cf300edb45c0e"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"3e6f1050a3d41e53eba2043f13384bc88483bc70","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        # Reset taken list of projects to avoid test interference"},{"line_number":41,"context_line":"        utils.PROJECTS \u003d {}"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @ddt.data(None, Exception(\u0027fake\u0027))"},{"line_number":44,"context_line":"    def test_view(self, exc):"},{"line_number":45,"context_line":"        message_1 \u003d test_data.fake_message_1"},{"line_number":46,"context_line":"        message_2 \u003d test_data.fake_message_2"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_3ad8907d","line":43,"range":{"start_line":43,"start_character":4,"end_line":43,"end_character":38},"in_reply_to":"9f560f44_01ee0e20","updated":"2020-09-22 06:15:17.000000000","message":"that would be great, I\u0027ll be happy to help if required.","commit_id":"62bea909c80bda73feadc0c5471cf300edb45c0e"},{"author":{"_account_id":6413,"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com","username":"vkmc"},"change_message_id":"f9d4091bc99a78ad5a3a975437f3af4b0fae5db6","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        # Reset taken list of projects to avoid test interference"},{"line_number":41,"context_line":"        utils.PROJECTS \u003d {}"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @ddt.data(None, Exception(\u0027fake\u0027))"},{"line_number":44,"context_line":"    def test_view(self, exc):"},{"line_number":45,"context_line":"        message_1 \u003d test_data.fake_message_1"},{"line_number":46,"context_line":"        message_2 \u003d test_data.fake_message_2"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_01ee0e20","line":43,"range":{"start_line":43,"start_character":4,"end_line":43,"end_character":38},"in_reply_to":"9f560f44_5a5dbfea","updated":"2020-09-21 19:30:36.000000000","message":"Oh nice, I can add this as an RFE for wallaby maybe, since we are doing the same for other tests in manila-ui. Refactor tests so we align to Horizon. What do you think?","commit_id":"62bea909c80bda73feadc0c5471cf300edb45c0e"}],"manila_ui/tests/dashboards/project/user_messages/tests.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"73ff10abb67d8f402500f9663aba60a02124edc6","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            mock.ANY, message.id)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def test_detail_view_with_exception(self):"},{"line_number":71,"context_line":"        message \u003d test_data.fake_message_1"},{"line_number":72,"context_line":"        url \u003d reverse(\u0027horizon:project:user_messages:user_messages_detail\u0027,"},{"line_number":73,"context_line":"                      args\u003d[message.id])"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_08b90178","line":70,"updated":"2020-09-08 00:14:19.000000000","message":"pep8: E303 too many blank lines (2)","commit_id":"506a99bf0bc30ed1e0c4eb999326c58e6588bcd8"}]}
