Changed platform clone

This commit is contained in:
George Vinogradov 2011-11-02 16:30:47 +04:00
parent 16b6e2ddfe
commit 33e8e49007
3 changed files with 6 additions and 4 deletions

View File

@ -84,7 +84,7 @@ class PlatformsController < ApplicationController
def clone
can_perform? @platform if @platform
if request.post?
cloned = @platform.clone(params[:platform]['name'], params[:platform]['unixname'])
cloned = @platform.clone(params[:platform]['name'], params[:platform]['unixname'], current_user)
if cloned
flash[:notice] = 'Клонирование успешно'
redirect_to cloned

View File

@ -63,13 +63,14 @@ class Platform < ActiveRecord::Base
platform_type == 'personal'
end
def clone(new_name, new_unixname)
def clone(new_name, new_unixname, cowner)
# TODO * make it Delayed Job *
p = Platform.new
p.name = new_name
p.unixname = new_unixname
p.parent = self
p.repositories = repositories.map(&:clone)
p.owner = cowner
p.repositories = repositories.map{|r| r.clone(cowner)}
result = p.save
p.products = products.map do |pr|
pr_cloned = Product.new

View File

@ -32,11 +32,12 @@ class Repository < ActiveRecord::Base
# build_path(unixname)
# end
def clone
def clone(cowner)
r = Repository.new
r.name = name
r.unixname = unixname
r.projects = projects
r.owner = cowner
r.save
return r
end