add translations, adapt test and fix bug
This commit is contained in:
parent
346e985c49
commit
da1015abd1
9 changed files with 45 additions and 17 deletions
|
@ -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])
|
||||
|
|
|
@ -142,9 +142,6 @@ class Article < ApplicationRecord
|
|||
new_unit_quantity = new_article.unit_quantity
|
||||
new_unit = new_article.unit
|
||||
end
|
||||
if options[:update_category] == true
|
||||
new_article_category = new_article.article_category
|
||||
end
|
||||
|
||||
attribute_hash = {
|
||||
:name => [self.name, new_article.name],
|
||||
|
@ -158,7 +155,10 @@ class Article < ApplicationRecord
|
|||
:unit_quantity => [self.unit_quantity.to_s.to_f, new_unit_quantity.to_s.to_f],
|
||||
:note => [self.note.to_s, new_article.note.to_s]
|
||||
}
|
||||
attribute_hash[:article_category] = [self.article_category, new_article_category] if new_article_category
|
||||
if options[:update_category] == true
|
||||
new_article_category = new_article.article_category
|
||||
attribute_hash[:article_category] = [self.article_category, new_article_category] unless new_article_category.blank?
|
||||
end
|
||||
|
||||
Article.compare_attributes(attribute_hash)
|
||||
end
|
||||
|
|
|
@ -82,9 +82,10 @@ 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])
|
||||
if new_attrs[:article_category].present? && options[:update_category]
|
||||
new_attrs[:article_category] = ArticleCategory.find_match(new_attrs[:article_category]) || ArticleCategory.create_or_find_by!(name: new_attrs[:article_category])
|
||||
else
|
||||
new_attrs[:article_category] = nil
|
||||
end
|
||||
|
||||
new_attrs[:tax] ||= FoodsoftConfig[:tax_default]
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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 und erstellen.
|
||||
sample:
|
||||
juices: Säfte
|
||||
nuts: Nüsse
|
||||
|
|
|
@ -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: Create and replace categories from uploaded file.
|
||||
sample:
|
||||
juices: Juices
|
||||
nuts: Nuts
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -80,18 +80,41 @@ feature ArticlesController do
|
|||
describe "handles missing data" do
|
||||
it do
|
||||
find('input[type="submit"]').click # to overview
|
||||
element = find('#new_articles__price')
|
||||
element.fill_in with: ""
|
||||
find('input[type="submit"]').click # missing category, re-show form
|
||||
expect(find('tr.alert')).to be_present
|
||||
expect(supplier.articles.count).to eq 0
|
||||
|
||||
element.fill_in with: 5.56
|
||||
all("tr select > option")[1].select_option
|
||||
find('input[type="submit"]').click # now it should succeed
|
||||
expect(supplier.articles.count).to eq 1
|
||||
end
|
||||
end
|
||||
|
||||
describe "takes over category from file" do
|
||||
it do
|
||||
find(:css, '#articles_update_category[value="1"]').set(true) # check take over category from file
|
||||
expect(ArticleCategory.count).to eq 1 # new Category vegetables should be created from file
|
||||
find('input[type="submit"]').click # upload file
|
||||
find('input[type="submit"]').click # submit changes
|
||||
expect(ArticleCategory.count).to eq 2 # it is
|
||||
expect(supplier.articles.count).to eq 1
|
||||
expect(supplier.articles.first.article_category.name).to eq "Vegetables"
|
||||
end
|
||||
end
|
||||
|
||||
describe "overwrites article_category from file" do
|
||||
let!(:article_category) { create(:article_category, name: "Fruit") }
|
||||
let(:article) { create(:article, supplier: supplier, name: 'Tomatoes', order_number: 1, unit: '250 g', article_category: article_category) }
|
||||
|
||||
it do
|
||||
find(:css, '#articles_update_category[value="1"]').set(true) # check take over category from file
|
||||
find('input[type="submit"]').click #upload file
|
||||
find('input[type="submit"]').click #submit changes
|
||||
expect(supplier.articles.count).to eq 1
|
||||
expect(supplier.articles.first.article_category.name).to eq "Vegetables"
|
||||
end
|
||||
end
|
||||
|
||||
describe "can remove an existing article" do
|
||||
let!(:article) { create :article, supplier: supplier, name: 'Foobar', order_number: 99999 }
|
||||
|
||||
|
|
Loading…
Reference in a new issue