p_spec & p_serial_num form and table

This commit is contained in:
Barnabé 2021-08-27 15:53:37 +02:00
parent 11cf27c1cc
commit 181089058c
11 changed files with 94 additions and 45 deletions

View File

@ -33,7 +33,10 @@ class Admin::PArticlesController < ApplicationController
def new def new
@p_article = PArticle.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 end
def edit def edit

View File

@ -73,8 +73,11 @@ class Admin::PProductsController < ApplicationController
@p_product = PProduct.new #(:p_customer_cat_ids => [3]) @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 end

View File

@ -3,9 +3,10 @@ class PArticle < ApplicationRecord
has_one :p_product, through: :p_product_ref has_one :p_product, through: :p_product_ref
belongs_to :p_product_color belongs_to :p_product_color
has_many :p_article_serial_nums, dependent: :destroy 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 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 => { acts_as_sorting :fields => {
:id => {:name => "id", :reorder => true}, :id => {:name => "id", :reorder => true},

View File

@ -17,6 +17,13 @@ class PProduct < ApplicationRecord
has_many :p_articles, through: :p_product_refs 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 has_many :p_product_images

View File

@ -1,3 +1,9 @@
class PSerialNumType < ApplicationRecord class PSerialNumType < ApplicationRecord
has_many :p_article_serial_nums 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 end

View File

@ -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.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 => "type", as: :select, collection: PSerialNumType.pluck(:name, :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 | = f.semantic_fields_for :p_serial_num_value do | form |
=render :partial => "admin/p_serial_num_values/form", :locals => {:f => form} =render :partial => "admin/p_serial_num_values/form", :locals => {:f => form}
.actions=f.submit "sauvegarder", :class => "btn btn-primary"

View File

@ -2,7 +2,10 @@
.content .content
=f.inputs do =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}

View File

@ -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 .actions=f.submit "sauvegarder", :class => "btn btn-primary"
=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)
- else
.p_product_ref_spec_form.field
%tr
%td
%h4 spec :
%td
=form.inputs do
= form.semantic_fields_for :p_spec_type do | f |
.actions=f.submit "sauvegarder", :class => "btn btn-primary" =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

View File

@ -4,10 +4,8 @@
%table.form-table %table.form-table
%tr %tr
%td =# form.input :enabled, :label => "Actif ?"
=# 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 :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 %td
= form.input :ref, :label => "Réf int. :" = form.input :ref, :label => "Réf int. :"
@ -22,7 +20,20 @@
%td %td
=form.input :p_product_color_id, :label => "Couleur :", :collection => PProductColor.all, :as => :select, :include_blank => true =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 %tr

View File

@ -2,7 +2,7 @@
.content .content
=f.inputs do =f.inputs do
= f.input :type, :label => f.object.label_for(:type) = f.input :name, :label => f.object.label_for(:name)

View File

@ -1,3 +1,6 @@
=f.inputs do =f.inputs do
= f.input :value, :label => "Valeur" %td
= f.input :unit, :label => "Unité", as: :select, collection: PSpecValue::UNITS = f.input :value, :label => "Valeur"
%td
= f.input :unit, :label => "Unité", as: :select, collection: PSpecValue::UNITS