From b1be5e571a8aa7fb5f9db203286ff7eae1ae3a38 Mon Sep 17 00:00:00 2001 From: cryptogopher Date: Thu, 22 Aug 2019 22:10:51 +0200 Subject: [PATCH] Changed Unit uniqueness condtions to shortname only --- app/controllers/units_controller.rb | 5 +++-- app/models/unit.rb | 3 ++- config/locales/en.yml | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/controllers/units_controller.rb b/app/controllers/units_controller.rb index 43439ce..3af4472 100644 --- a/app/controllers/units_controller.rb +++ b/app/controllers/units_controller.rb @@ -27,9 +27,10 @@ class UnitsController < ApplicationController end def import + available = Unit.where(project: @project).pluck(:shortname) defaults = Unit.where(project: nil).pluck(:name, :shortname) - missing = defaults - Unit.where(project: @project).pluck(:name, :shortname) - @project.units.create(missing.map { |n, s| {name: n, shortname: s} }) + defaults.delete_if { |n, s| available.include?(s) } + @project.units.create(defaults.map { |n, s| {name: n, shortname: s} }) redirect_to project_units_url(@project) end diff --git a/app/models/unit.rb b/app/models/unit.rb index d3e923a..1960ca5 100644 --- a/app/models/unit.rb +++ b/app/models/unit.rb @@ -2,5 +2,6 @@ class Unit < ActiveRecord::Base belongs_to :project validates :project, associated: true - validates :name, :shortname, presence: true, uniqueness: true + validates :name, presence: true + validates :shortname, presence: true, uniqueness: {scope: :project_id} end diff --git a/config/locales/en.yml b/config/locales/en.yml index 1d1926e..93ada7e 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -15,4 +15,4 @@ en: index: heading: 'Units' heading_new_unit: 'New unit' - heading_import: 'Import' + heading_import: 'Import defaults'