プロジェクト

全般

プロフィール

Vote #80896

完了

Use issue path instead of bulk update issues path when using the context menu with only one issue selected

Admin Redmine さんが3年以上前に追加. 3年以上前に更新.

ステータス:
Closed
優先度:
通常
担当者:
-
カテゴリ:
Issues_2
対象バージョン:
開始日:
2022/05/09
期日:
進捗率:

0%

予定工数:
category_id:
2
version_id:
155
issue_org_id:
33521
author_id:
107353
assigned_to_id:
107353
comments:
16
status_id:
5
tracker_id:
1
plus1:
0
affected_version:
closed_on:
affected_version_id:
ステータス-->[Closed]

説明

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.
--------------------------------------------------------------------------------

Admin Redmine さんが3年以上前に更新

  • カテゴリIssues_2 にセット
  • 対象バージョン5.0.0_155 にセット

他の形式にエクスポート: Atom PDF

いいね!0
いいね!0