Upstream sync

This commit is contained in:
Senad Uka
2020-07-16 17:27:57 +02:00
parent 7f49f31ebf
commit c033f5df17
16 changed files with 363 additions and 13 deletions

View File

@@ -0,0 +1,33 @@
# frozen_string_literal: true
class ContractTemplates::DuplicatesController < ApplicationController
before_action :set_contract_template
def create
authorize(ContractTemplate)
new_contract_template = @contract_template.dup
new_contract_template.name = I18n.t('contract_templates.duplicate.name_prefix', template_name: @contract_template.name)
# Duplicate rich text fields
new_contract_template.body = @contract_template.body
new_contract_template.guardian_clause = @contract_template.guardian_clause
new_contract_template.signature_legal_text = @contract_template.signature_legal_text
if new_contract_template.save
redirect_to [:edit, new_contract_template]
else
redirect_to [@contract_template.project, :contract_templates], alert: t('.error')
end
end
private
def contract_templates
policy_scope(ContractTemplate)
end
def set_contract_template
@contract_template = contract_templates.find(params[:contract_template_id])
end
end

View File

@@ -5,8 +5,9 @@ class ContractTemplatesController < ApplicationController
layout 'project'
before_action :set_project, except: [:destroy]
before_action :set_contract_template, only: [:destroy]
before_action :set_project, except: [:destroy, :edit, :update]
before_action :set_contract_template, only: [:destroy, :edit, :update]
before_action :set_project_from_contract_template, only: [:edit, :update]
before_action :show_splash_screen, only: :index
def index
@@ -32,6 +33,20 @@ class ContractTemplatesController < ApplicationController
end
end
def edit
@release_type = @contract_template.release_type
end
def update
@contract_template.attributes = contract_template_params
if @contract_template.save
redirect_to [@project, :contract_templates], notice: t('.notice')
else
render :edit
end
end
def destroy
@contract_template.archive
redirect_to [@contract_template.project, :contract_templates], alert: t('.archived_notice')
@@ -39,6 +54,10 @@ class ContractTemplatesController < ApplicationController
private
def set_project_from_contract_template
@project = @contract_template.project
end
def show_splash_screen
render :splash if contract_templates.non_archived.count.zero?
end