diff --git a/app/controllers/inventory_files_controller.rb b/app/controllers/inventory_files_controller.rb index cbe0fa1..913cab4 100644 --- a/app/controllers/inventory_files_controller.rb +++ b/app/controllers/inventory_files_controller.rb @@ -1,6 +1,7 @@ class InventoryFilesController < ApplicationController before_action :set_inventory_file, only: [:show, :edit, :update, :destroy] before_action :check_policy, only: [:index, :new, :create] + before_action :prepare_options, only: [:new, :edit] # GET /inventory_files # GET /inventory_files.json @@ -55,6 +56,7 @@ def create format.html { redirect_to(@inventory_file) } format.json { render json: @inventory_file, status: :created, location: @inventory_file } else + prepare_options format.html { render action: "new" } format.json { render json: @inventory_file.errors, status: :unprocessable_entity } end @@ -70,6 +72,7 @@ def update format.html { redirect_to(@inventory_file) } format.json { head :no_content } else + prepare_options format.html { render action: "edit" } format.json { render json: @inventory_file.errors, status: :unprocessable_entity } end @@ -97,7 +100,11 @@ def check_policy authorize InventoryFile end + def prepare_options + @shelves = Shelf.order(:position) + end + def inventory_file_params - params.require(:inventory_file).permit(:inventory, :note) + params.require(:inventory_file).permit(:inventory, :shelf_id, :note) end end diff --git a/app/models/inventory_file.rb b/app/models/inventory_file.rb index 4a3341f..5bed42e 100644 --- a/app/models/inventory_file.rb +++ b/app/models/inventory_file.rb @@ -2,6 +2,7 @@ class InventoryFile < ActiveRecord::Base has_many :inventories, dependent: :destroy has_many :items, through: :inventories belongs_to :user + belongs_to :shelf has_one_attached :inventory @@ -51,4 +52,5 @@ def found_items # inventory_file_size :integer # inventory_updated_at :datetime # inventory_fingerprint :string +# shelf_id :bigint not null # diff --git a/app/views/inventory_files/_form.html.erb b/app/views/inventory_files/_form.html.erb new file mode 100644 index 0000000..cd253a8 --- /dev/null +++ b/app/views/inventory_files/_form.html.erb @@ -0,0 +1,28 @@ +<%= form_for(@inventory_file) do |f| -%> + <%= f.error_messages -%> + +
+ <%= f.label "#{t('activerecord.models.library')} / #{t('activerecord.models.shelf')}" -%> + <%= f.select :library_id, @libraries.map{|l| [l.display_name, l.id]} %> + <%= f.select :shelf_id, @shelves.map{|s| [s.display_name, s.id]} %> + <%= render 'observe_field' %> +
+ +
+ <%= f.label t('page.file') -%>
+ <%= f.file_field :inventory -%> +
+ +
+ <%= f.label t('page.file') -%>
+ <%= f.file_field :inventory -%> +
+ +
+ <%= f.label :note -%>
+ <%= f.text_area :note -%> +
+
+ <%= f.submit %> +
+<%- end -%> diff --git a/app/views/inventory_files/_observe_field.html.erb b/app/views/inventory_files/_observe_field.html.erb new file mode 100644 index 0000000..3385d5e --- /dev/null +++ b/app/views/inventory_files/_observe_field.html.erb @@ -0,0 +1,7 @@ + diff --git a/app/views/inventory_files/edit.html.erb b/app/views/inventory_files/edit.html.erb index 58aa1e1..155e321 100644 --- a/app/views/inventory_files/edit.html.erb +++ b/app/views/inventory_files/edit.html.erb @@ -1,20 +1,10 @@
-

<%= t('page.editing', :model => t('activerecord.models.inventory_file')) -%>

-
+

<%= t('page.editing', :model => t('activerecord.models.inventory_file')) -%>

+
-<%= form_for(@inventory_file) do |f| -%> - <%= f.error_messages -%> + <%= render 'form' %> -
- <%= f.label :note -%>
- <%= f.text_area :note -%>
-
- <%= f.submit %> -
-<%- end -%> - -