[issue #590] Save repository to save to in BuildList.
This commit is contained in:
parent
255bd3a73a
commit
cc66e2ee4a
|
@ -41,8 +41,13 @@ class Projects::BuildListsController < Projects::BaseController
|
|||
|
||||
def create
|
||||
notices, errors = [], []
|
||||
@platform = Platform.find params[:build_list][:save_to_platform_id]
|
||||
save_to_platform_id, save_to_repository_id = params[:build_list][:save_to_platform_id].split('-').map{|i| i.to_i}
|
||||
params[:build_list].merge!({:save_to_platform_id => save_to_platform_id, :save_to_repository_id => save_to_repository_id})
|
||||
|
||||
@platform = Platform.find save_to_platform_id
|
||||
@repository = Repository.find save_to_repository_id
|
||||
params[:build_list][:auto_publish] = false if @platform.released
|
||||
|
||||
Arch.where(:id => params[:arches]).each do |arch|
|
||||
Platform.main.where(:id => params[:build_for_platforms]).each do |build_for_platform|
|
||||
@build_list = @project.build_lists.build(params[:build_list])
|
||||
|
|
|
@ -3,6 +3,7 @@ class BuildList < ActiveRecord::Base
|
|||
belongs_to :project
|
||||
belongs_to :arch
|
||||
belongs_to :save_to_platform, :class_name => 'Platform'
|
||||
belongs_to :save_to_repository, :class_name => 'Repository'
|
||||
belongs_to :build_for_platform, :class_name => 'Platform'
|
||||
belongs_to :user
|
||||
belongs_to :advisory
|
||||
|
@ -13,7 +14,8 @@ class BuildList < ActiveRecord::Base
|
|||
UPDATE_TYPES = %w[security bugfix enhancement recommended newpackage]
|
||||
RELEASE_UPDATE_TYPES = %w[security bugfix]
|
||||
|
||||
validates :project_id, :project_version, :arch, :include_repos, :presence => true
|
||||
validates :project_id, :project_version, :arch, :include_repos,
|
||||
:build_for_platform_id, :save_to_platform_id, :save_to_repository_id, :presence => true
|
||||
validates_numericality_of :priority, :greater_than_or_equal_to => 0
|
||||
validates :update_type, :inclusion => UPDATE_TYPES,
|
||||
:unless => Proc.new { |b| b.advisory.present? }
|
||||
|
@ -22,6 +24,9 @@ class BuildList < ActiveRecord::Base
|
|||
validate lambda {
|
||||
errors.add(:build_for_platform, I18n.t('flash.build_list.wrong_platform')) if save_to_platform.platform_type == 'main' && save_to_platform_id != build_for_platform_id
|
||||
}
|
||||
validate lambda {
|
||||
errors.add(:save_to_platform, I18n.t('flash.build_list.wrong_repository')) unless save_to_repository_id.in? save_to_platform.repositories.map(&:id)
|
||||
}
|
||||
|
||||
LIVE_TIME = 3.week
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
.offset25{:style => 'padding-left: 25px'}= render 'include_repos', :platform => pl
|
||||
%section.right
|
||||
%h3= t("activerecord.attributes.build_list.save_to_platform")
|
||||
.lineForm= f.select :save_to_platform_id, @project.repositories.collect{|r| ["#{r.platform.name}/#{r.name}", r.platform.id]}
|
||||
.lineForm= f.select :save_to_platform_id, @project.repositories.collect{|r| ["#{r.platform.name}/#{r.name}", "#{r.platform.id}-#{r.id}"]}
|
||||
%h3= t("activerecord.attributes.build_list.project_version")
|
||||
.lineForm= f.select :project_version, versions_for_group_select(@project), :selected => params[:build_list].try(:fetch, :project_version) || "latest_" + @project.default_branch
|
||||
%h3= t("activerecord.attributes.build_list.arch")
|
||||
|
|
|
@ -29,6 +29,8 @@
|
|||
.leftlist= t("activerecord.attributes.build_list.save_to_platform")
|
||||
.rightlist
|
||||
= link_to @build_list.save_to_platform.name, @build_list.save_to_platform
|
||||
\/
|
||||
= link_to @build_list.save_to_repository.name, [@build_list.save_to_platform, @build_list.save_to_repository]
|
||||
.both
|
||||
.leftlist= t("activerecord.attributes.build_list.include_repos")
|
||||
.rightlist= (@build_list.include_repos||[]).map{|r| Repository.find(r).name}.join(', ')
|
||||
|
|
|
@ -125,5 +125,6 @@ en:
|
|||
no_project_version_found: Project version '%{project_version}' not found
|
||||
no_arch_or_platform_selected: At least one of architecture of platform must selected
|
||||
wrong_platform: Only the primary platform can be selected for the main repository!
|
||||
wrong_repository: Repository to save package to must belongs to platform.
|
||||
can_not_published: Build can only be published with status "Build complete"
|
||||
frozen_platform: In case of a repository for package storage with frozen platform allowed only bugfix and security updates
|
||||
|
|
|
@ -124,5 +124,6 @@ ru:
|
|||
no_project_version_found: Выбранная версия '%{project_version}' не найдена
|
||||
no_arch_or_platform_selected: Выберите хотя бы одну архитектуру и платформу
|
||||
wrong_platform: Для основного репозитория (main) может быть выбран только его же основная платформа!
|
||||
wrong_repository: Репозиторий для сохранения должен принадлежать платформе.
|
||||
can_not_published: Опубликовать сборку можно только со статусом "Собран"
|
||||
frozen_platform: В случае выбора репозитория для сохранения пакетов из замороженнной платформы разрешены только bugfix и security обновления
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#
|
||||
# It's strongly recommended to check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(:version => 20120719045806) do
|
||||
ActiveRecord::Schema.define(:version => 20120727141521) do
|
||||
|
||||
create_table "activity_feeds", :force => true do |t|
|
||||
t.integer "user_id", :null => false
|
||||
|
@ -126,6 +126,7 @@ ActiveRecord::Schema.define(:version => 20120719045806) do
|
|||
t.integer "duration"
|
||||
t.integer "advisory_id"
|
||||
t.integer "mass_build_id"
|
||||
t.integer "save_to_repository_id"
|
||||
end
|
||||
|
||||
add_index "build_lists", ["advisory_id"], :name => "index_build_lists_on_advisory_id"
|
||||
|
@ -311,11 +312,11 @@ ActiveRecord::Schema.define(:version => 20120719045806) do
|
|||
t.text "description"
|
||||
t.string "ancestry"
|
||||
t.boolean "has_issues", :default => true
|
||||
t.boolean "has_wiki", :default => false
|
||||
t.string "srpm_file_name"
|
||||
t.string "srpm_content_type"
|
||||
t.integer "srpm_file_size"
|
||||
t.datetime "srpm_updated_at"
|
||||
t.boolean "has_wiki", :default => false
|
||||
t.string "default_branch", :default => "master"
|
||||
t.boolean "is_package", :default => true, :null => false
|
||||
t.integer "average_build_time", :default => 0, :null => false
|
||||
|
@ -386,13 +387,13 @@ ActiveRecord::Schema.define(:version => 20120719045806) do
|
|||
t.string "email", :default => "", :null => false
|
||||
t.string "encrypted_password", :limit => 128, :default => "", :null => false
|
||||
t.string "reset_password_token"
|
||||
t.datetime "reset_password_sent_at"
|
||||
t.datetime "remember_created_at"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.string "uname"
|
||||
t.string "role"
|
||||
t.string "language", :default => "en"
|
||||
t.datetime "reset_password_sent_at"
|
||||
t.integer "own_projects_count", :default => 0, :null => false
|
||||
t.text "professional_experience"
|
||||
t.string "site"
|
||||
|
|
Loading…
Reference in New Issue