Vote #80896
完了Use issue path instead of bulk update issues path when using the context menu with only one issue selected
0%
説明
When changing the attributes of an issue from the context menu, the bulk update issues path is used even if only one issue is selected. Because of this, if the validation fails, the user is redirect to the bulk edit view to fill in the required fields. But if Description is one of those fields, the user won't have available the field because Description is not available in the bulk edit view.
The attach patch changes the behaviour in order to use issue path to update attributes when only one issue is selected. In this case, if the validation fails, the user is redirect to the issue edit page. The route change was necessary in order to allow Patch method for bulk routes as well.
journals
All tests pass: https://gitlab.com/redmine-org/redmine/pipelines/150020738
--------------------------------------------------------------------------------
Would you tell me the steps to cause a validation error through the context menu? Since the context menu only shows valid options, I could not find a way to cause a validation error.
--------------------------------------------------------------------------------
Go MAEDA wrote:
> Would you tell me the steps to cause a validation error through the context menu? Since the context menu only shows valid options, I could not find a way to cause a validation error.
Yes, please follow these steps using the default data:
# Make "Description" field mandatory for "In progress" status
# Find an issue in status "New" without "Description" filled in
# Using the context menu, try to change the issue status to in "In progress"
# You should receive the validation error and you can observe that the Description field is not available in the page.
--------------------------------------------------------------------------------
Marius BALTEANU wrote:
> Go MAEDA wrote:
> > Would you tell me the steps to cause a validation error through the context menu? Since the context menu only shows valid options, I could not find a way to cause a validation error.
>
> Yes, please follow these steps using the default data:
> # Make "Description" field mandatory for "In progress" status
> # Find an issue in status "New" without "Description" filled in
> # Using the context menu, try to change the issue status to in "In progress"
> # You should receive the validation error and you can observe that the Description field is not available in the page.
Thank you, confirmed the issue.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Updated the patch.
--------------------------------------------------------------------------------
Patch committed.
--------------------------------------------------------------------------------
Due to r21089, you are no longer able to change the issue status via the context menu. The error is as follows:
<pre>
Started POST "/issues/1?back_url=%2Fprojects%2Fecookbook%2Fissues&ids%5B%5D=1&issue%5Bstatus_id%5D=5" for 127.0.0.1 at 2021-08-02 09:55:03 +0900
ActionController::RoutingError (No route matches [POST] "/issues/1"):
</pre>
--------------------------------------------------------------------------------
I have attached two patches.
* 0001-Fix-status-update-path-on-the-context-menu.patch
The cause of #33521#note-9 is that the data method of the link to update the status was still post instead of patch.
This is a patch that adds data-method fixes and tests.
* 0002-Change-custom-field-value-update-path-on-the-context.patch
Change ContextMenusHelper#bulk_update_custom_field_context_menu_link( https://www.redmine.org/projects/redmine/repository/revisions/20846/entry/trunk/app/helpers/context_menus_helper.rb#L37 ) in the same way as r21089.
--------------------------------------------------------------------------------
Both patches committed, thank you for working on this.
--------------------------------------------------------------------------------
I found another problem caused by the impact of this change.
When changing the category to none from the context menu:
[Expected result] "Category deleted (Printing)" is displayed in the issue history.
[Actual result] "Category changed from Printing to 0" is displayed in the issue history.
This can be reproduced with attributes other than category_id.
When I pass the parameter {category_id:'none'}, bulk_update converts it to {category_id:''} by the parse_params_for_bulk_update method, but update doesn't.
https://redmine.org/projects/redmine/repository/revisions/21012/entry/trunk/app/controllers/application_controller.rb#L416
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
I have attached a patch to fix #33521#note-12.
--------------------------------------------------------------------------------
Mizuki ISHIKAWA wrote:
> I have attached a patch to fix #33521#note-12.
Patch committed with small changes, thank you for reporting and fixing the issue.
--------------------------------------------------------------------------------
Marius BALTEANU wrote:
> Mizuki ISHIKAWA wrote:
> > I have attached a patch to fix #33521#note-12.
>
> Patch committed with small changes, thank you for reporting and fixing the issue.
Thank you for reviewing and committing.
--------------------------------------------------------------------------------