Initial commit
This commit is contained in:
73
app/controllers/projects_controller.rb
Normal file
73
app/controllers/projects_controller.rb
Normal file
@@ -0,0 +1,73 @@
|
||||
class ProjectsController < ApplicationController
|
||||
include ProjectContext
|
||||
|
||||
layout "project", only: [:show]
|
||||
|
||||
before_action :set_project, only: [:show, :edit, :update, :destroy]
|
||||
|
||||
def index
|
||||
@projects = policy_scope(Current.account.projects).order_by_name
|
||||
end
|
||||
|
||||
def new
|
||||
@project = build_project
|
||||
end
|
||||
|
||||
def create
|
||||
@project = build_project(project_params_with_current_account)
|
||||
|
||||
if @project.save
|
||||
log_create_analytics
|
||||
redirect_to @project, notice: "The project has been created"
|
||||
else
|
||||
render :new
|
||||
end
|
||||
end
|
||||
|
||||
def show
|
||||
@directories = policy_scope(@project.directories).order_by_name
|
||||
end
|
||||
|
||||
def edit
|
||||
end
|
||||
|
||||
def update
|
||||
if @project.update(project_params)
|
||||
redirect_to @project, notice: "The project has been updated"
|
||||
else
|
||||
render :edit
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
@project.destroy
|
||||
redirect_to signed_in_root_path, alert: t(".alert")
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_project
|
||||
@project = authorize projects.find(params[:id])
|
||||
end
|
||||
|
||||
def build_project(params = {})
|
||||
authorize projects.build(params.merge(account: Current.account))
|
||||
end
|
||||
|
||||
def project_params
|
||||
params.require(:project).permit(:client_name, :description, :details, :name, :producer_address, :producer_name,
|
||||
:predefined_client_name, features_settings: features_settings_params)
|
||||
end
|
||||
|
||||
def features_settings_params
|
||||
%i(appearance_release location_release material_release acquired_media_release music_release talent_release video_analysis)
|
||||
end
|
||||
|
||||
def project_params_with_current_account
|
||||
project_params.merge(account: Current.account)
|
||||
end
|
||||
|
||||
def log_create_analytics
|
||||
TrackAnalyticsJob.perform_later(Current.user, Current.account, :track_create_project, user_agent: request.user_agent, user_ip: request.remote_ip)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user