diff --git a/app/controllers/articles_controller.rb b/app/controllers/articles_controller.rb index a3ae0676..31481f18 100644 --- a/app/controllers/articles_controller.rb +++ b/app/controllers/articles_controller.rb @@ -46,6 +46,11 @@ class ArticlesController < ApplicationController render :layout => false end + def edit + @article = Article.find(params[:id]) + render :action => 'new', :layout => false + end + def create @article = Article.new(params[:article]) if @article.valid? && @article.save @@ -55,11 +60,6 @@ class ArticlesController < ApplicationController end end - def edit - @article = Article.find(params[:id]) - render :action => 'new', :layout => false - end - # Updates one Article and highlights the line if succeded def update @article = Article.find(params[:id]) diff --git a/app/models/supplier.rb b/app/models/supplier.rb index 6daab986..1245e7b6 100644 --- a/app/models/supplier.rb +++ b/app/models/supplier.rb @@ -82,9 +82,8 @@ class Supplier < ApplicationRecord FoodsoftFile::parse file, options do |status, new_attrs, line| article = articles.undeleted.where(order_number: new_attrs[:order_number]).first - unless new_attrs[:article_category].blank? - new_attrs[:article_category] = ArticleCategory.find_match(new_attrs[:article_category]) ? ArticleCategory.find_match(new_attrs[:article_category]) : ArticleCategory.create_or_find_by!(name: new_attrs[:article_category]) + new_attrs[:article_category] = ArticleCategory.find_match(new_attrs[:article_category]) || ArticleCategory.create_or_find_by!(name: new_attrs[:article_category]) end new_attrs[:tax] ||= FoodsoftConfig[:tax_default] @@ -94,7 +93,7 @@ class Supplier < ApplicationRecord if article.nil? new_articles << new_article else - unequal_attributes = article.unequal_attributes(new_article, options.slice(:convert_units,:update_category)) + unequal_attributes = article.unequal_attributes(new_article, options.slice(:convert_units, :update_category)) unless unequal_attributes.empty? article.attributes = unequal_attributes updated_article_pairs << [article, unequal_attributes] diff --git a/app/views/articles/upload.html.haml b/app/views/articles/upload.html.haml index 7695d28b..221e0d1a 100644 --- a/app/views/articles/upload.html.haml +++ b/app/views/articles/upload.html.haml @@ -78,7 +78,7 @@ .control-group %label(for="articles_update_category") = f.check_box "update_category" - = "update category ?" + = t '.options.update_category' %label(for="articles_outlist_absent") = f.check_box "outlist_absent" = t '.options.outlist_absent' diff --git a/config/locales/de.yml b/config/locales/de.yml index 5a1a5b35..369f4e11 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -568,6 +568,7 @@ de: options: convert_units: Derzeitige Einheiten beibehalten, berechne Mengeneinheit und Preis (wie Synchronisieren). outlist_absent: Artikel löschen, die nicht in der hochgeladenen Datei sind. + update_category: Kategorien aus der Datei übernehmen. sample: juices: Säfte nuts: Nüsse diff --git a/config/locales/en.yml b/config/locales/en.yml index 59e94385..bd9925ba 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -569,6 +569,7 @@ en: options: convert_units: Keep current units, recompute unit quantity and price (like synchronize). outlist_absent: Delete articles not in uploaded file. + update_category: Take over categoriesfrom uploaded file. sample: juices: Juices nuts: Nuts diff --git a/config/locales/es.yml b/config/locales/es.yml index 620ec3bb..6363c9d3 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -515,6 +515,7 @@ es: options: convert_units: Mantener unidades actuales, recomputar la cantidad y precio de unidades (como sincronizar). outlist_absent: Borrar artículos que no están en el archivo subido. + update_category: Toma las categorías del archivo subido. sample: juices: Jugos nuts: Nueces diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 4c97dda4..1af1e65d 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -539,6 +539,7 @@ nl: options: convert_units: Bestaande eenheden behouden, herbereken groothandelseenheid en prijs (net als synchronizeren). outlist_absent: Artikelen die niet in het bestand voorkomen, verwijderen. + upload_category: Categorieën overnemen uit bestand. sample: juices: Sappen nuts: Noten diff --git a/spec/integration/articles_spec.rb b/spec/integration/articles_spec.rb index 84a27cd4..8deecebc 100644 --- a/spec/integration/articles_spec.rb +++ b/spec/integration/articles_spec.rb @@ -1,9 +1,9 @@ require_relative '../spec_helper' feature ArticlesController do - let(:user) { create :user, groups: [create(:workgroup, role_article_meta: true)] } - let(:supplier) { create :supplier } - let!(:article_category) { create :article_category } + let(:user) { create(:user, groups: [create(:workgroup, role_article_meta: true)]) } + let(:supplier) { create(:supplier) } + let!(:article_category) { create(:article_category) } before { login user } @@ -18,7 +18,7 @@ feature ArticlesController do it 'can create a new article' do click_on I18n.t('articles.index.new') expect(page).to have_selector('form#new_article') - article = build :article, supplier: supplier, article_category: article_category + article = build(:article, supplier: supplier, article_category: article_category) within('#new_article') do fill_in 'article_name', :with => article.name fill_in 'article_unit', :with => article.unit @@ -65,7 +65,7 @@ feature ArticlesController do end describe "can update existing article" do - let!(:article) { create :article, supplier: supplier, name: 'Foobar', order_number: 1, unit: '250 g' } + let!(:article) { create(:article, supplier: supplier, name: 'Foobar', order_number: 1, unit: '250 g') } it do find('input[type="submit"]').click @@ -80,7 +80,7 @@ feature ArticlesController do describe "handles missing data" do it do find('input[type="submit"]').click # to overview - element = find('#new_articles__price') + element = find_by_id('new_articles__price') element.fill_in with: "" find('input[type="submit"]').click # missing category, re-show form expect(find('tr.alert')).to be_present @@ -93,7 +93,7 @@ feature ArticlesController do end describe "can remove an existing article" do - let!(:article) { create :article, supplier: supplier, name: 'Foobar', order_number: 99999 } + let!(:article) { create(:article, supplier: supplier, name: 'Foobar', order_number: 99999) } it do check('articles_outlist_absent') @@ -107,7 +107,7 @@ feature ArticlesController do end describe "can convert units when updating" do - let!(:article) { create :article, supplier: supplier, order_number: 1, unit: '250 g' } + let!(:article) { create(:article, supplier: supplier, order_number: 1, unit: '250 g') } it do check('articles_convert_units')