aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/referentials_controller.rb
diff options
context:
space:
mode:
authorcedricnjanga2017-09-11 16:06:42 +0200
committercedricnjanga2017-09-11 16:21:41 +0200
commit8fe9a39516f6fb71545d6329c448680d6f8c75d1 (patch)
tree0b0e231aea62d32fe91544cd79c8224a755ceaf6 /app/controllers/referentials_controller.rb
parentecef9d98cbe08e42434753477da4886dcfcb02bb (diff)
downloadchouette-core-8fe9a39516f6fb71545d6329c448680d6f8c75d1.tar.bz2
Update of ReferentialsController#new :
- Add some context to referential and workbench decorator to access current_referential and assign it to the cloned referential - Add a build_referential method to avoir duplicates of code (in the controller and in the model), need to clean a bit more - Need to add some Spec features to take into account the functional scope of the current_user
Diffstat (limited to 'app/controllers/referentials_controller.rb')
-rw-r--r--app/controllers/referentials_controller.rb35
1 files changed, 26 insertions, 9 deletions
diff --git a/app/controllers/referentials_controller.rb b/app/controllers/referentials_controller.rb
index bd0544a74..c8984076a 100644
--- a/app/controllers/referentials_controller.rb
+++ b/app/controllers/referentials_controller.rb
@@ -7,17 +7,19 @@ class ReferentialsController < BreadcrumbController
respond_to :js, :only => :show
def new
- if params[:from]
- source_referential = Referential.find(params[:from])
- @referential = Referential.new_from(source_referential, current_functional_scope)
+ new! do
+ build_referenial
end
+ end
- new! do
- @referential.data_format = current_organisation.data_format
- @referential.workbench_id ||= params[:workbench_id]
+ def create
+ create! do |format|
+ build_referenial
- if @referential.in_workbench?
- @referential.init_metadatas default_date_range: Range.new(Date.today, Date.today.advance(months: 1))
+ if !!@referential.created_from_id
+ format.html { redirect_to workbench_path(@referential.workbench) }
+ else
+ build_breadcrumb :new
end
end
end
@@ -25,7 +27,7 @@ class ReferentialsController < BreadcrumbController
def show
resource.switch
show! do |format|
- @referential = @referential.decorate(context: { workbench_id: params[:workbench_id] } )
+ @referential = @referential.decorate(context: { current_workbench_id: params[:current_workbench_id] } )
@reflines = lines_collection.paginate(page: params[:page], per_page: 10)
@reflines = ModelDecorator.decorate(
@reflines,
@@ -123,6 +125,21 @@ class ReferentialsController < BreadcrumbController
super
end
+ def build_referenial
+ if params[:from]
+ source_referential = Referential.find(params[:from])
+ @referential = Referential.new_from(source_referential, current_functional_scope)
+ @referential.workbench_id = params[:current_workbench_id]
+ end
+
+ @referential.data_format = current_organisation.data_format
+ @referential.workbench_id ||= params[:workbench_id]
+
+ if @referential.in_workbench?
+ @referential.init_metadatas default_date_range: Range.new(Date.today, Date.today.advance(months: 1))
+ end
+ end
+
private
def sort_column
sortable_columns = Chouette::Line.column_names + ['networks.name', 'companies.name']