diff --git a/app/controllers/admin/p_articles_controller.rb b/app/controllers/admin/p_articles_controller.rb index 03af6b9..006eeda 100644 --- a/app/controllers/admin/p_articles_controller.rb +++ b/app/controllers/admin/p_articles_controller.rb @@ -33,7 +33,10 @@ class Admin::PArticlesController < ApplicationController def new @p_article = PArticle.new - @p_article.build_p_product_ref + @p_article_serial_nums = @p_article.p_article_serial_nums.build + + @p_serial_num_type = @p_article_serial_nums.build_p_serial_num_type + @p_serial_num_value = @p_article_serial_nums.build_p_serial_num_value end def edit diff --git a/app/controllers/admin/p_products_controller.rb b/app/controllers/admin/p_products_controller.rb index a0ae7f9..9cb4915 100644 --- a/app/controllers/admin/p_products_controller.rb +++ b/app/controllers/admin/p_products_controller.rb @@ -73,8 +73,11 @@ class Admin::PProductsController < ApplicationController @p_product = PProduct.new #(:p_customer_cat_ids => [3]) - @p_product.p_product_refs << PProductRef.new - + # @p_product.p_product_refs << PProductRef.new + @p_product_refs = @p_product.p_product_refs.build + @p_product_ref_specs = @p_product_refs.p_product_ref_specs.build + @p_spec_type = @p_product_ref_specs.build_p_spec_type + @p_spec_value = @p_product_ref_specs.build_p_spec_value end diff --git a/app/models/p_article.rb b/app/models/p_article.rb index d2825e3..3ff569b 100644 --- a/app/models/p_article.rb +++ b/app/models/p_article.rb @@ -3,9 +3,10 @@ class PArticle < ApplicationRecord has_one :p_product, through: :p_product_ref belongs_to :p_product_color has_many :p_article_serial_nums, dependent: :destroy - # accepts_nested_attributes_for :p_article_serial_nums + accepts_nested_attributes_for :p_article_serial_nums validates_presence_of :p_product_ref - + # has_many :p_product_ref_specs, through: :p_product_ref + # accepts_nested_attributes_for :p_product_ref_specs acts_as_sorting :fields => { :id => {:name => "id", :reorder => true}, diff --git a/app/models/p_product.rb b/app/models/p_product.rb index 12a0795..893a83c 100644 --- a/app/models/p_product.rb +++ b/app/models/p_product.rb @@ -17,6 +17,13 @@ class PProduct < ApplicationRecord has_many :p_articles, through: :p_product_refs + # has_many :p_product_ref_specs, through: :p_product_refs + # accepts_nested_attributes_for :p_product_ref_specs + # # has_many :p_spec_types, through: :p_product_ref_specs + # has_many :p_spec_values, through: :p_product_ref_specs + # accepts_nested_attributes_for :p_spec_types, allow_destroy: true + # accepts_nested_attributes_for :p_spec_values, allow_destroy: true + has_many :p_product_images diff --git a/app/models/p_serial_num_type.rb b/app/models/p_serial_num_type.rb index 83f5ce7..596d817 100644 --- a/app/models/p_serial_num_type.rb +++ b/app/models/p_serial_num_type.rb @@ -1,3 +1,9 @@ class PSerialNumType < ApplicationRecord has_many :p_article_serial_nums + + acts_as_sorting :fields => { + :id => {:name => "id", :reorder => true}, + :name => {:name => "Type", :reorder => true}, + :actions => {:name => "Actions", :reorder => false}, + } end diff --git a/app/views/admin/p_article_serial_nums/_form.html.haml b/app/views/admin/p_article_serial_nums/_form.html.haml index caad0f5..34d893a 100644 --- a/app/views/admin/p_article_serial_nums/_form.html.haml +++ b/app/views/admin/p_article_serial_nums/_form.html.haml @@ -1,16 +1,18 @@ -=semantic_form_for [:admin, @p_article_serial_num], :remote => true do |f| +- if params[:controller] == "admin/p_article_serial_nums" + =semantic_form_for [:admin, @p_article_serial_num], :remote => true do |f| - .content + .content + =f.inputs do + = f.input :p_article, as: :select, collection: PArticle.pluck(:id) ,:label => f.object.label_for(:p_article_id) + = f.input :p_serial_num_type, :label => f.object.label_for(:p_serial_num_type) + = f.semantic_fields_for :p_serial_num_value do | form | + =render :partial => "admin/p_serial_num_values/form", :locals => {:f => form} + + .actions=f.submit "sauvegarder", :class => "btn btn-primary" + +- else + .p_article_serial_nums_form.field =f.inputs do - = f.input :p_article, as: :select, collection: PArticle.pluck(:id) ,:label => f.object.label_for(:p_article) - = f.input :p_serial_num_type, :label => f.object.label_for(:p_serial_num_type) + = f.input :p_serial_num_type, :label => "type", as: :select, collection: PSerialNumType.pluck(:name, :id) = f.semantic_fields_for :p_serial_num_value do | form | - =render :partial => "admin/p_serial_num_values/form", :locals => {:f => form} - - - - - - .actions=f.submit "sauvegarder", :class => "btn btn-primary" - diff --git a/app/views/admin/p_articles/_form.html.haml b/app/views/admin/p_articles/_form.html.haml index 8ab680b..f89186c 100644 --- a/app/views/admin/p_articles/_form.html.haml +++ b/app/views/admin/p_articles/_form.html.haml @@ -2,7 +2,10 @@ .content =f.inputs do - = f.input :p_product_ref, as: :select, collection: PProductRef.all, :label => f.object.label_for(:p_product_ref) + = f.input :p_product_ref, as: :select, collection: PProductRef.all.distinct, :label => f.object.label_for(:p_product_ref) + = f.semantic_fields_for :p_article_serial_nums do |f| + =render :partial => "admin/p_article_serial_nums/form", :locals => {:f => f} + diff --git a/app/views/admin/p_product_ref_specs/_form.html.haml b/app/views/admin/p_product_ref_specs/_form.html.haml index aed2719..7fae978 100644 --- a/app/views/admin/p_product_ref_specs/_form.html.haml +++ b/app/views/admin/p_product_ref_specs/_form.html.haml @@ -1,17 +1,27 @@ -=semantic_form_for [:admin, @p_product_ref_spec], :remote => true do |f| +- if params[:controller] == "admin/p_product_ref_specs" + =semantic_form_for [:admin, @p_product_ref_spec], :remote => true do |f| + .content + =f.inputs do + = f.input :p_product_ref, as: :select, collection: PProductRef.pluck(:cc_name, :id) ,:label => f.object.label_for(:p_product_ref) + = f.semantic_fields_for :p_spec_type do | form | + =render :partial => "admin/p_spec_types/form", :locals => {:f => form} + = f.semantic_fields_for :p_spec_value do | form | + =render :partial => "admin/p_spec_values/form", :locals => {:f => form} - .content - =f.inputs do - = f.input :p_product_ref, as: :select, collection: PProductRef.pluck(:cc_name, :id) ,:label => f.object.label_for(:p_product_ref) - = f.semantic_fields_for :p_spec_type do | form | - =render :partial => "admin/p_spec_types/form", :locals => {:f => form} - = f.semantic_fields_for :p_spec_value do | form | - =render :partial => "admin/p_spec_values/form", :locals => {:f => form} - / = f.input :p_spec_value, :label => f.object.label_for(:p_spec_value) - - - - - - .actions=f.submit "sauvegarder", :class => "btn btn-primary" - + .actions=f.submit "sauvegarder", :class => "btn btn-primary" + +- else + .p_product_ref_spec_form.field + %tr + %td + %h4 spec : + + %td + =form.inputs do + = form.semantic_fields_for :p_spec_type do | f | + =render :partial => "admin/p_spec_types/form", :locals => {:f => f} + = form.semantic_fields_for :p_spec_value do | f | + =render :partial => "admin/p_spec_values/form", :locals => {:f => f} + %tr + %td + = link_to_remove_fields ic(:"trash-o"), form diff --git a/app/views/admin/p_product_refs/_form.html.haml b/app/views/admin/p_product_refs/_form.html.haml index bc9ca3b..55f48bf 100644 --- a/app/views/admin/p_product_refs/_form.html.haml +++ b/app/views/admin/p_product_refs/_form.html.haml @@ -4,10 +4,8 @@ %table.form-table %tr - %td - =# form.input :enabled, :label => "Actif ?" - %td - =# form.input :assembled, :label => "Assemblé ?", :input_html => {:onchange => 'if ($(this).is(":checked")) {$(this).closest(".field").find(".p_product_assembleds_part").show();}else{$(this).closest(".field").find(".p_product_assembleds_part").hide();}'} + =# form.input :enabled, :label => "Actif ?" + =# form.input :assembled, :label => "Assemblé ?", :input_html => {:onchange => 'if ($(this).is(":checked")) {$(this).closest(".field").find(".p_product_assembleds_part").show();}else{$(this).closest(".field").find(".p_product_assembleds_part").hide();}'} %td = form.input :ref, :label => "Réf int. :" @@ -21,8 +19,21 @@ %td =form.input :p_product_color_id, :label => "Couleur :", :collection => PProductColor.all, :as => :select, :include_blank => true - - =# form.input :s_brand_id, :label => "Marque :", :collection => SBrand.all, :as => :select, :include_blank => true + + -if false + %td + =form.semantic_fields_for :p_spec_type do |f| + =render :partial => "admin/p_spec_types/form", :locals => {:f => f} + =form.semantic_fields_for :p_spec_value do |f| + =render :partial => "admin/p_spec_values/form", :locals => {:f => f} + + + %tr + .p_product_ref_specs_form + = form.semantic_fields_for :p_product_ref_specs do |f| + =render :partial => "admin/p_product_ref_specs/form", :locals => {:form => f} + %p= link_to_add_fields "Ajouter une spec", form, :p_product_ref_specs + %tr @@ -42,4 +53,4 @@ %p= link_to_add_fields "Ajouter une référence fournisseur", form, :fournisseur_product_refs - \ No newline at end of file + diff --git a/app/views/admin/p_serial_num_types/_form.html.haml b/app/views/admin/p_serial_num_types/_form.html.haml index 70b89fe..99f609b 100644 --- a/app/views/admin/p_serial_num_types/_form.html.haml +++ b/app/views/admin/p_serial_num_types/_form.html.haml @@ -2,11 +2,11 @@ .content =f.inputs do - = f.input :type, :label => f.object.label_for(:type) + = f.input :name, :label => f.object.label_for(:name) .actions=f.submit "sauvegarder", :class => "btn btn-primary" - \ No newline at end of file + diff --git a/app/views/admin/p_spec_values/_form.html.haml b/app/views/admin/p_spec_values/_form.html.haml index d44dd69..3c4c805 100644 --- a/app/views/admin/p_spec_values/_form.html.haml +++ b/app/views/admin/p_spec_values/_form.html.haml @@ -1,3 +1,6 @@ + =f.inputs do - = f.input :value, :label => "Valeur" - = f.input :unit, :label => "Unité", as: :select, collection: PSpecValue::UNITS + %td + = f.input :value, :label => "Valeur" + %td + = f.input :unit, :label => "Unité", as: :select, collection: PSpecValue::UNITS