Merge pull request #602 from warpc/601-add_status_check_for_product_bl_remove

[refs #601] Add status check for destroy action in product build list
This commit is contained in:
George Vinogradov 2012-08-06 08:40:43 -07:00
commit 710fef1f0b
7 changed files with 22 additions and 6 deletions

View File

@ -23,8 +23,11 @@ class Platforms::ProductBuildListsController < Platforms::BaseController
end end
def destroy def destroy
@product_build_list.destroy if @product_build_list.destroy
flash[:notice] = t('flash.product.build_list_delete') flash[:notice] = t('flash.product_build_list.delete')
else
flash[:error] = t('flash.product_build_list.delete_error')
end
redirect_to [@platform, @product] redirect_to [@platform, @product]
end end

View File

@ -31,6 +31,7 @@ class ProductBuildList < ActiveRecord::Base
scope :recent, order("#{table_name}.updated_at DESC") scope :recent, order("#{table_name}.updated_at DESC")
after_create :xml_rpc_create after_create :xml_rpc_create
before_destroy :can_destroy?
after_destroy :xml_delete_iso_container after_destroy :xml_delete_iso_container
def container_path def container_path
@ -49,6 +50,10 @@ class ProductBuildList < ActiveRecord::Base
self.class.human_status(status) self.class.human_status(status)
end end
def can_destroy?
[BUILD_COMPLETED, BUILD_FAILED].include? status
end
protected protected
def xml_rpc_create def xml_rpc_create

View File

@ -3,5 +3,6 @@
%td= product_build_list.human_status %td= product_build_list.human_status
%td= link_to nil, product_build_list.container_path %td= link_to nil, product_build_list.container_path
%td= link_to product_build_list.product.name, platform_product_path(product_build_list.product.platform, product_build_list.product) %td= link_to product_build_list.product.name, platform_product_path(product_build_list.product.platform, product_build_list.product)
%td= link_to image_tag('x.png'), platform_product_product_build_list_path(product_build_list.product.platform, product_build_list.product, product_build_list), :method => :delete, :confirm => t("layout.confirm") if can? :destroy, product_build_list - pbl = product_build_list
%td= link_to image_tag('x.png'), platform_product_product_build_list_path(pbl.product.platform, pbl.product, pbl), :method => :delete, :confirm => t("layout.confirm") if can?(:destroy, pbl) && pbl.can_destroy?
%td= l(product_build_list.updated_at, :format => :long) %td= l(product_build_list.updated_at, :format => :long)

View File

@ -33,7 +33,6 @@ en:
save_error: Unable to save product save_error: Unable to save product
build_started: Product build started build_started: Product build started
destroyed: Product deleted destroyed: Product deleted
build_list_delete: Product build list deleted
activerecord: activerecord:
models: models:

View File

@ -33,7 +33,6 @@ ru:
save_error: Не удалось сохранить изменения save_error: Не удалось сохранить изменения
build_started: Запущена сборка продукта build_started: Запущена сборка продукта
destroyed: Продукт удален destroyed: Продукт удален
build_list_delete: Сборочный лист продукта удален
activerecord: activerecord:
models: models:

View File

@ -25,6 +25,10 @@ en:
product: Product product: Product
container_path: Container container_path: Container
status: Status status: Status
notified_at: Notified at
user: User user: User
notified_at: Notified at notified_at: Notified at
flash:
product_build_list:
delete: Product build list deleted
delete_error: Unable to delete product build list

View File

@ -28,3 +28,8 @@ ru:
user: Пользователь user: Пользователь
notified_at: Информация получена notified_at: Информация получена
flash:
product_build_list:
delete: Сборочный лист продукта удален
delete_error: Не удалось удалить cборочный лист продукта