Class: Admin::DeficiencyDefinitionsController

Inherits:
AdminController
  • Object
show all
Defined in:
app/controllers/admin/deficiency_definitions_controller.rb

Overview

Controller for managing deficiency definitions.

Instance Method Summary collapse

Instance Method Details

#copy_definitionsObject

POST /deficiency_definitions/copy_definitions Copies selected deficiency definitions to a new inspectable item.



130
131
132
133
134
135
136
137
138
139
140
141
# File 'app/controllers/admin/deficiency_definitions_controller.rb', line 130

def copy_definitions
  ids = params[:definition_ids]
  deficiencies = DeficiencyDefinition.where(id: ids)
  deficiencies.each do |deficiency|
    new_deficiency = deficiency.dup
    new_deficiency.inspectable_item_id = params[:inspectable_item_id]
    new_deficiency.created_by_id = current_user.id
    new_deficiency.updated_by_id = nil
    new_deficiency.save
  end
  redirect_to admin_deficiency_definitions_url, notice: 'Deficiency definition was successfully created.'
end

#copy_definitions_formObject

GET /deficiency_definitions/copy_definitions_form Displays a form for copying deficiency definitions.



124
125
126
# File 'app/controllers/admin/deficiency_definitions_controller.rb', line 124

def copy_definitions_form
  render 'admin/deficiency_definitions/copy_definitions'
end

#createObject

POST /deficiency_definitions POST /deficiency_definitions.json Creates a new deficiency definition.

Parameters:

  • deficiency_definition_params (Hash)

    The parameters for creating the deficiency definition.



75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'app/controllers/admin/deficiency_definitions_controller.rb', line 75

def create
  @deficiency_definition = DeficiencyDefinition.new(
    deficiency_definition_params.merge(properties: properties_params,
                                       created_by_id: current_user.id)
  )

  respond_to do |format|
    if @deficiency_definition.save
      format.html { redirect_to admin_deficiency_definitions_path, notice: 'Deficiency definition was successfully created.' }
      format.json { render :show, status: :created, location: @deficiency_definition }
    else
      format.html { render :new }
      format.json { render json: @deficiency_definition.errors, status: :unprocessable_entity }
    end
  end
end

#deficiency_definitions_searchJSON

POST /deficiency_definitions/deficiency_definitions_search Searches for deficiency definitions by name and returns JSON results.

Parameters:

  • deficiency_definition_name (String)

    The name to search for.

Returns:

  • (JSON)

    The search results in JSON format.



148
149
150
151
152
153
154
155
156
157
# File 'app/controllers/admin/deficiency_definitions_controller.rb', line 148

def deficiency_definitions_search
  deficiency_definition_name = params[:deficiency_definition_name]
  @deficiency_definitions = DeficiencyDefinition.where('title ILIKE ?', "%#{deficiency_definition_name}%").order(updated_at: :desc)

  items = @deficiency_definitions.map do |item|
    { id: item.id, title: item.title, area_name: item.inspectable_item.inspection_area.area_name }
  end

  render json: items
end

#destroyObject

DELETE /deficiency_definitions/1 DELETE /deficiency_definitions/1.json Deletes an existing deficiency definition.



114
115
116
117
118
119
120
# File 'app/controllers/admin/deficiency_definitions_controller.rb', line 114

def destroy
  @deficiency_definition.delete
  respond_to do |format|
    format.html { redirect_to admin_deficiency_definitions_url, notice: 'Deficiency definition was successfully destroyed.' }
    format.json { head :no_content }
  end
end

#editObject

GET /deficiency_definitions/1/edit Displays a form for editing a deficiency definition.



61
62
63
64
65
66
67
68
# File 'app/controllers/admin/deficiency_definitions_controller.rb', line 61

def edit
  session[:return_to] ||= request.referer
  @definition_types =  [['SD', 'SD'], ['LT', 'LT'], ['NLT', 'NLT'], ['NHS', 'NHS']]

  if(@deficiency_definition.system_id == 2)
    @definition_types =  [["Advisory", "Advisory"], ["Moderate-HS", "Moderate-HS"], ["Severe-HS", "Severe-HS"], ["Severe-HS-LT", "Severe-HS-LT"]]
  end
end

#importObject

POST /deficiency_definitions/import Imports deficiency definitions from a file.

Parameters:

  • file (File)

    The file containing deficiency definitions for import.



35
36
37
38
39
40
41
42
43
44
45
# File 'app/controllers/admin/deficiency_definitions_controller.rb', line 35

def import
  file = params[:file]
  respond_to do |format|
    if(file)
      DeficiencyDefinition.import(params[:file])
      format.html { redirect_to admin_deficiency_definitions_path, notice: 'Deficiency definition was successfully imported.' }
    else
      format.html { redirect_to admin_deficiency_definitions_path, notice: 'Please Select a File' }
    end
  end
end

#indexObject

GET /deficiency_definitions GET /deficiency_definitions.json Displays a list of deficiency definitions.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'app/controllers/admin/deficiency_definitions_controller.rb', line 11

def index
  respond_to do |format|
    format.xlsx do
      new_params = Rack::Utils.parse_query(URI(request.referer).query)
      @deficiency_definitions = DeficiencyDefinition.search(
          new_params["inspection_area_id"], new_params["item_name"], new_params["deficiency_title"]
      ).order(updated_at: :desc)
      response.headers[
        'Content-Disposition'
      ] = "attachment; filename=Deficiency-Definitions.xlsx"
    end
    format.html do
      @deficiency_definitions = DeficiencyDefinition.search(
          params[:inspection_area_id], params[:item_name], params[:deficiency_title]
      ).page params[:page]
      render action: :index, layout: request.xhr?.nil?
    end
  end
end

#newObject

GET /deficiency_definitions/new Displays a form for creating a new deficiency definition.



54
55
56
57
# File 'app/controllers/admin/deficiency_definitions_controller.rb', line 54

def new
  @definition_types =  [['SD', 'SD'], ['LT', 'LT'], ['NLT', 'NLT'], ['NHS', 'NHS']]
  @deficiency_definition = DeficiencyDefinition.new
end

#showObject

GET /deficiency_definitions/1 GET /deficiency_definitions/1.json Displays the details of a specific deficiency definition.



50
# File 'app/controllers/admin/deficiency_definitions_controller.rb', line 50

def show; end

#updateObject

PATCH/PUT /deficiency_definitions/1 PATCH/PUT /deficiency_definitions/1.json Updates an existing deficiency definition.

Parameters:

  • deficiency_definition_params (Hash)

    The parameters for updating the deficiency definition.



97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'app/controllers/admin/deficiency_definitions_controller.rb', line 97

def update
  respond_to do |format|
    if @deficiency_definition.update(deficiency_definition_params.merge(
                                       properties: properties_params, updated_by_id: current_user.id
                                     ))
      format.html { redirect_to session.delete(:return_to), notice: 'Deficiency definition was successfully updated.' }
      format.json { render :show, status: :ok, location: @deficiency_definition }
    else
      format.html { render :edit }
      format.json { render json: @deficiency_definition.errors, status: :unprocessable_entity }
    end
  end
end