From 48025f21655421ab605f40d86c5d8c0184e59742 Mon Sep 17 00:00:00 2001 From: Lukas Krause Date: Tue, 23 Apr 2024 15:13:48 +0200 Subject: [PATCH] Use patchinfo from target package for accepted requests The source project for maintenance release requests gets deleted in many cases after it is accepted. Therefore we have to fetch the patchinfo from the target in those cases. We also should handle the case of a removed source and target to prevent nil exceptions. Fixes #16030 --- .../webui/request/_patchinfo_details.html.haml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/api/app/views/webui/request/_patchinfo_details.html.haml b/src/api/app/views/webui/request/_patchinfo_details.html.haml index f7a8d69eb9b1..3a589c90c2d1 100644 --- a/src/api/app/views/webui/request/_patchinfo_details.html.haml +++ b/src/api/app/views/webui/request/_patchinfo_details.html.haml @@ -1,6 +1,13 @@ #patchinfo-details %h4.my-3 Patches - bs_request.bs_request_actions.where(source_package: 'patchinfo').each do |patchinfo| - - patchinfo_package = Package.find_by_project_and_name(patchinfo.source_project, patchinfo.source_package) - - patchinfo_text = patchinfo_package.source_file('_patchinfo', rev: patchinfo.source_rev || patchinfo_package.rev) - = render PatchinfoComponent.new(patchinfo_text, request_changes_path(number: bs_request.number, request_action_id: patchinfo.id)) + - patchinfo_source_package = Package.find_by_project_and_name(patchinfo.source_project, patchinfo.source_package) + - patchinfo_target_package = Package.find_by_project_and_name(patchinfo.target_project, patchinfo.target_package) + - if patchinfo_source_package.present? + - patchinfo_text = patchinfo_source_package.source_file('_patchinfo', rev: patchinfo.source_rev || patchinfo_package.rev) + = render PatchinfoComponent.new(patchinfo_text, request_changes_path(number: bs_request.number, request_action_id: patchinfo.id)) + - elsif patchinfo.bs_request_action_accept_info.present? && patchinfo_target_package.present? + - patchinfo_text = patchinfo_target_package.source_file('_patchinfo', rev: patchinfo.bs_request_action_accept_info.rev) + = render PatchinfoComponent.new(patchinfo_text, request_changes_path(number: bs_request.number, request_action_id: patchinfo.id)) + - else + %p The source and target of #{patchinfo.target_project}/#{patchinfo.target_package} does not exist anymore.