Class: AccessionsController

Inherits:
ApplicationController show all
Defined in:
frontend/app/controllers/accessions_controller.rb

Instance Method Summary (collapse)

Methods inherited from ApplicationController

can_access?, permission_mappings, set_access_control

Instance Method Details

- (Object) create



93
94
95
96
97
98
99
100
101
102
# File 'frontend/app/controllers/accessions_controller.rb', line 93

def create
  handle_crud(:instance => :accession,
              :model => Accession,
              :on_invalid => ->(){ render action: "new" },
              :on_valid => ->(id){
                  flash[:success] = I18n.t("accession._frontend.messages.created", JSONModelI18nWrapper.new(:accession => @accession))
                  redirect_to(:controller => :accessions,
                              :action => :edit,
                              :id => id) })
end

- (Object) defaults



47
48
49
50
51
52
53
54
55
# File 'frontend/app/controllers/accessions_controller.rb', line 47

def defaults
  defaults = DefaultValues.get 'accession'

  values = defaults ? defaults.form_values : {:accession_date => Date.today.strftime('%Y-%m-%d')}

  @accession = Accession.new(values)._always_valid!

  render "defaults"
end

- (Object) delete



135
136
137
138
139
140
141
# File 'frontend/app/controllers/accessions_controller.rb', line 135

def delete
  accession = Accession.find(params[:id])
  accession.delete

  flash[:success] = I18n.t("accession._frontend.messages.deleted", JSONModelI18nWrapper.new(:accession => accession))
  redirect_to(:controller => :accessions, :action => :index, :deleted_uri => accession.uri)
end

- (Object) edit



80
81
82
83
84
85
86
# File 'frontend/app/controllers/accessions_controller.rb', line 80

def edit
  @accession = fetch_resolved(params[:id])

  if @accession.suppressed
    redirect_to(:controller => :accessions, :action => :show, :id => params[:id])
  end
end

- (Object) index



12
13
14
# File 'frontend/app/controllers/accessions_controller.rb', line 12

def index
  @search_data = Search.for_type(session[:repo_id], "accession", params_for_backend_search.merge({"facet[]" => SearchResultData.ACCESSION_FACETS}))
end

- (Object) new



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'frontend/app/controllers/accessions_controller.rb', line 23

def new
  @accession = Accession.new({:accession_date => Date.today.strftime('%Y-%m-%d')})._always_valid!

  if params[:accession_id]
    acc = Accession.find(params[:accession_id], find_opts)

    if acc
      @accession.populate_from_accession(acc)
      flash.now[:info] = I18n.t("accession._frontend.messages.spawned", JSONModelI18nWrapper.new(:accession => acc))
      flash[:spawned_from_accession] = acc.id
    end

  elsif user_prefs['default_values']
    defaults = DefaultValues.get 'accession'

    if defaults
      @accession.update(defaults.values)
    end
  end

end

- (Object) show



17
18
19
20
21
# File 'frontend/app/controllers/accessions_controller.rb', line 17

def show
  @accession = fetch_resolved(params[:id])

  flash[:info] = I18n.t("accession._frontend.messages.suppressed_info", JSONModelI18nWrapper.new(:accession => @accession)) if @accession.suppressed
end

- (Object) suppress



117
118
119
120
121
122
123
# File 'frontend/app/controllers/accessions_controller.rb', line 117

def suppress
  accession = Accession.find(params[:id])
  accession.set_suppressed(true)

  flash[:success] = I18n.t("accession._frontend.messages.suppressed", JSONModelI18nWrapper.new(:accession => accession))
  redirect_to(:controller => :accessions, :action => :show, :id => params[:id])
end

- (Object) transfer



88
89
90
# File 'frontend/app/controllers/accessions_controller.rb', line 88

def transfer
  handle_transfer(Accession)
end

- (Object) unsuppress



126
127
128
129
130
131
132
# File 'frontend/app/controllers/accessions_controller.rb', line 126

def unsuppress
  accession = Accession.find(params[:id])
  accession.set_suppressed(false)

  flash[:success] = I18n.t("accession._frontend.messages.unsuppressed", JSONModelI18nWrapper.new(:accession => accession))
  redirect_to(:controller => :accessions, :action => :show, :id => params[:id])
end

- (Object) update



104
105
106
107
108
109
110
111
112
113
114
115
# File 'frontend/app/controllers/accessions_controller.rb', line 104

def update
  handle_crud(:instance => :accession,
              :model => Accession,
              :obj => fetch_resolved(params[:id]),
              :on_invalid => ->(){
                return render action: "edit"
              },
              :on_valid => ->(id){
                flash[:success] = I18n.t("accession._frontend.messages.updated", JSONModelI18nWrapper.new(:accession => @accession))
                redirect_to :controller => :accessions, :action => :edit, :id => id
              })
end

- (Object) update_defaults



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'frontend/app/controllers/accessions_controller.rb', line 58

def update_defaults

  begin
    DefaultValues.from_hash({
                              "record_type" => "accession",
                              "lock_version" => params[:accession].delete('lock_version'),
                              "defaults" => cleanup_params_for_schema(
                                                                      params[:accession],
                                                                      JSONModel(:accession).schema
                                                                      )
                            }).save

    flash[:success] = I18n.t("default_values.messages.defaults_updated")

    redirect_to :controller => :accessions, :action => :defaults
  rescue Exception => e
    flash[:error] = e.message
    redirect_to :controller => :accessions, :action => :defaults
  end

end