Removed Unit.group, added UnitsController#import
This commit is contained in:
parent
fea736bd36
commit
8e7385cdcb
@ -1,5 +1,5 @@
|
||||
class UnitsController < ApplicationController
|
||||
before_action :find_project, only: [:new, :index, :create]
|
||||
before_action :find_project, only: [:new, :index, :create, :import]
|
||||
before_action :authorize
|
||||
|
||||
def new
|
||||
@ -16,6 +16,9 @@ class UnitsController < ApplicationController
|
||||
def destroy
|
||||
end
|
||||
|
||||
def import
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# :find_* methods are called before :authorize,
|
||||
|
@ -1,6 +1,2 @@
|
||||
module UnitsHelper
|
||||
def group_options
|
||||
translations = t('.groups')
|
||||
Unit.groups.map { |k,v| [translations[k.to_sym], k] }
|
||||
end
|
||||
end
|
||||
|
@ -1,30 +1,6 @@
|
||||
class Unit < ActiveRecord::Base
|
||||
belongs_to :project
|
||||
|
||||
# https://en.wikipedia.org/wiki/International_System_of_Units
|
||||
enum group: {
|
||||
number: 0,
|
||||
share: 1,
|
||||
|
||||
length: 10,
|
||||
mass: 11,
|
||||
time: 12,
|
||||
temperature: 13,
|
||||
|
||||
volume: 20,
|
||||
density: 21,
|
||||
ndensity: 22,
|
||||
|
||||
frequency: 30,
|
||||
velocity: 31,
|
||||
flow: 32,
|
||||
|
||||
energy: 30,
|
||||
|
||||
pressure: 40
|
||||
}
|
||||
|
||||
validates :project, associated: true
|
||||
validates :name, :shortname, presence: true
|
||||
validates :group, inclusion: groups.keys
|
||||
end
|
||||
|
@ -6,8 +6,7 @@
|
||||
<p><%= f.text_field :shortname, required: true, size: 10 %></p>
|
||||
</div>
|
||||
<div class="splitcontentright">
|
||||
<p><%= f.select :group, group_options, required: true %></p>
|
||||
</div>
|
||||
</div>
|
||||
<p><%= f.text_field :name, required: true, size: 40 %></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -14,19 +14,3 @@ en:
|
||||
index:
|
||||
heading: 'Units'
|
||||
heading_new_unit: 'New unit'
|
||||
form:
|
||||
groups:
|
||||
number: 'count'
|
||||
share: 'share'
|
||||
length: 'length'
|
||||
mass: 'mass'
|
||||
time: 'time'
|
||||
temperature: 'temperature'
|
||||
volume: 'volume'
|
||||
density: 'density'
|
||||
ndensity: 'number density'
|
||||
frequency: 'frequency'
|
||||
velocity: 'velocity'
|
||||
flow: 'flow rate'
|
||||
energy: 'energy'
|
||||
pressure: 'pressure'
|
||||
|
@ -4,6 +4,8 @@
|
||||
resources :projects do
|
||||
shallow do
|
||||
resources :body_trackers, :only => [:index]
|
||||
resources :units, :only => [:new, :index, :create, :destroy]
|
||||
resources :units, :only => [:new, :index, :create, :destroy] do
|
||||
post 'import', on: :collection
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -4,19 +4,17 @@ class CreateUnits < ActiveRecord::Migration
|
||||
t.references :project
|
||||
t.string :name
|
||||
t.string :shortname
|
||||
t.integer :group
|
||||
end
|
||||
|
||||
reversible do |dir|
|
||||
dir.up do
|
||||
Unit.create project: nil, shortname: "", name: "count", group: :number
|
||||
Unit.create project: nil, shortname: "%", name: "percent", group: :share
|
||||
Unit.create project: nil, shortname: "g", name: "gram", group: :mass
|
||||
Unit.create project: nil, shortname: "kg", name: "kilogram", group: :mass
|
||||
Unit.create project: nil, shortname: "", name: "count"
|
||||
Unit.create project: nil, shortname: "%", name: "percent"
|
||||
Unit.create project: nil, shortname: "g", name: "gram"
|
||||
Unit.create project: nil, shortname: "kg", name: "kilogram"
|
||||
end
|
||||
|
||||
dir.down do
|
||||
Unit.delete_all
|
||||
Unit.where(project: nil).delete_all
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user