Improve delivery form validation
This commit is contained in:
parent
0b81ba97b9
commit
bf32e72414
4 changed files with 23 additions and 7 deletions
|
@ -9,7 +9,7 @@ class Delivery < ActiveRecord::Base
|
||||||
|
|
||||||
scope :recent, :order => 'created_at DESC', :limit => 10
|
scope :recent, :order => 'created_at DESC', :limit => 10
|
||||||
|
|
||||||
validates_presence_of :supplier_id
|
validates_presence_of :supplier_id, :delivered_on
|
||||||
|
|
||||||
accepts_nested_attributes_for :stock_changes, :allow_destroy => :true
|
accepts_nested_attributes_for :stock_changes, :allow_destroy => :true
|
||||||
|
|
||||||
|
|
|
@ -79,6 +79,7 @@
|
||||||
|
|
||||||
.span6
|
.span6
|
||||||
%h2= t '.title_fill_quantities'
|
%h2= t '.title_fill_quantities'
|
||||||
|
<!-- = f.inspect -->
|
||||||
%table.table.table-condensed#stock_changes
|
%table.table.table-condensed#stock_changes
|
||||||
%thead
|
%thead
|
||||||
%tr
|
%tr
|
||||||
|
@ -92,14 +93,14 @@
|
||||||
-# see also the partial 'stock_change' which is used for AJAX updates!
|
-# see also the partial 'stock_change' which is used for AJAX updates!
|
||||||
-# see also the partial 'stock_change' which is used for AJAX updates!
|
-# see also the partial 'stock_change' which is used for AJAX updates!
|
||||||
-# see also the partial 'stock_change' which is used for AJAX updates!
|
-# see also the partial 'stock_change' which is used for AJAX updates!
|
||||||
= f.fields_for :stock_changes do |stock_change_form|
|
= f.simple_fields_for :stock_changes do |stock_change_form|
|
||||||
- stock_change = stock_change_form.object
|
- stock_change = stock_change_form.object
|
||||||
%tr{:id => "stock_change_stock_article_#{stock_change.stock_article.id}", :data => {:id => stock_change.stock_article.id}}
|
%tr{:id => "stock_change_stock_article_#{stock_change.stock_article.id}", :data => {:id => stock_change.stock_article.id}}
|
||||||
%td.sort-by-name
|
%td.sort-by-name
|
||||||
= stock_change_form.hidden_field :stock_article_id
|
= stock_change_form.association :stock_article, :as => :hidden
|
||||||
%span.stock_article_name= stock_change.stock_article.name
|
%span.stock_article_name= stock_change.stock_article.name
|
||||||
%td.numeric.price-per-unit #{number_to_currency stock_change.stock_article.price}/#{stock_change.stock_article.unit}
|
%td.numeric.price-per-unit #{number_to_currency stock_change.stock_article.price}/#{stock_change.stock_article.unit}
|
||||||
%td= stock_change_form.text_field :quantity, :size => 5, :autocomplete => 'off'
|
%td= stock_change_form.input :quantity, :wrapper => :intable, :input_html => {:class => 'stock-change-quantity', :autocomplete => :off}
|
||||||
%td
|
%td
|
||||||
= stock_change_form.hidden_field :_destroy
|
= stock_change_form.hidden_field :_destroy
|
||||||
= link_to t('.remove_article'), "#", :class => 'destroy_stock_change btn btn-small'
|
= link_to t('.remove_article'), "#", :class => 'destroy_stock_change btn btn-small'
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
-# see also the partial 'form' which is used for existing stock_changes when loading the edit!
|
-# see also the partial 'form' which is used for existing stock_changes when loading the edit!
|
||||||
-# see also the partial 'form' which is used for existing stock_changes when loading the edit!
|
-# see also the partial 'form' which is used for existing stock_changes when loading the edit!
|
||||||
-# see also the partial 'form' which is used for existing stock_changes when loading the edit!
|
-# see also the partial 'form' which is used for existing stock_changes when loading the edit!
|
||||||
= fields_for "delivery[new_stock_changes][]", stock_change, validate: true do |f|
|
= simple_fields_for "delivery[new_stock_changes][]", stock_change, validate: true do |f|
|
||||||
- f.object.quantity = '' if 0 == f.object.quantity
|
- f.object.quantity = '' if 0 == f.object.quantity
|
||||||
%tr{:id => "stock_change_stock_article_#{stock_change.stock_article.id}", :data => {:id => stock_change.stock_article.id}}
|
%tr{:id => "stock_change_stock_article_#{stock_change.stock_article.id}", :data => {:id => stock_change.stock_article.id}}
|
||||||
%td.sort-by-name
|
%td.sort-by-name
|
||||||
= f.hidden_field :stock_article_id
|
= f.association :stock_article, :as => :hidden
|
||||||
%span.stock_article_name= stock_change.stock_article.name
|
%span.stock_article_name= stock_change.stock_article.name
|
||||||
%td.numeric.price-per-unit #{number_to_currency stock_change.stock_article.price}/#{stock_change.stock_article.unit}
|
%td.numeric.price-per-unit #{number_to_currency stock_change.stock_article.price}/#{stock_change.stock_article.unit}
|
||||||
%td= f.text_field :quantity, :size => 4, :autocomplete => 'off', :required => true, :class => 'stock-change-quantity'
|
%td= f.input :quantity, :wrapper => :intable, :input_html => {:class => 'stock-change-quantity', :autocomplete => :off}
|
||||||
%td= link_to t('.remove_article'), "#", :class => 'remove_new_stock_change btn btn-small'
|
%td= link_to t('.remove_article'), "#", :class => 'remove_new_stock_change btn btn-small'
|
||||||
|
|
|
@ -44,6 +44,21 @@ SimpleForm.setup do |config|
|
||||||
b.use :hint, :wrap_with => { :tag => :span, :class => :hint }
|
b.use :hint, :wrap_with => { :tag => :span, :class => :hint }
|
||||||
b.use :error, :wrap_with => { :tag => :span, :class => :error }
|
b.use :error, :wrap_with => { :tag => :span, :class => :error }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
config.wrappers :intable, :class => 'control-group',
|
||||||
|
:error_class => :error do |b|
|
||||||
|
b.use :html5
|
||||||
|
b.use :placeholder
|
||||||
|
b.optional :maxlength
|
||||||
|
b.optional :pattern
|
||||||
|
b.optional :min_max
|
||||||
|
b.optional :readonly
|
||||||
|
|
||||||
|
b.use :input
|
||||||
|
b.use :hint
|
||||||
|
b.use :error, :wrap_with => { :tag => :span, :class => 'help-inline' }
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
# The default wrapper to be used by the FormBuilder.
|
# The default wrapper to be used by the FormBuilder.
|
||||||
config.default_wrapper = :default
|
config.default_wrapper = :default
|
||||||
|
|
Loading…
Reference in a new issue