modifs ergononomies

This commit is contained in:
Nicolas Bally 2020-09-29 12:28:33 +02:00
parent f1032c16f8
commit f89badcd12
19 changed files with 180 additions and 254 deletions

View File

@ -7,7 +7,7 @@ class Admin::MOdrRepsController < ApplicationController
before_action :admin_space
def admin_space
@admin_space = "stocks"
@admin_space = "payments"
end
def index
@ -40,10 +40,89 @@ class Admin::MOdrRepsController < ApplicationController
@m_odr_reps = sort_by_sorting(@m_odr_reps, "m_odr_reps.created_at DESC")
params[:search][:per_page] = params[:search][:per_page] || 50
per_page = params[:search][:per_page]
page = (params[:page] and params[:page] != "") ? params[:page] : 1
@m_odr_reps = @m_odr_reps.page(page).per(per_page)
respond_to do |format|
format.html{
params[:search][:per_page] = params[:search][:per_page] || 50
per_page = params[:search][:per_page]
page = (params[:page] and params[:page] != "") ? params[:page] : 1
@m_odr_reps = @m_odr_reps.page(page).per(per_page)
}
format.csv {
@headers = []
@columns = []
MOdrRep.qi_table_order.each do |key, value|
if value.instance_of? Hash
name = value[:name]
else
name = value
end
if name != "Actions"
@headers << name.to_s
@columns << key
end
end
xlsx_package = Axlsx::Package.new
wb = xlsx_package.workbook
wb.add_worksheet(name: "import") do |sheet|
sheet.add_row @headers
@m_odr_reps.each do |p_customer|
line = []
@columns.each do |column|
if (p_customer.respond_to?("csv_"+column.to_s))
line << p_customer.send("csv_"+column.to_s)
elsif (p_customer.respond_to?("tr_"+column.to_s))
line << p_customer.send("tr_"+column.to_s)
elsif (p_customer.respond_to?(column))
if p_customer.send(column.to_s).class.to_s == "BigDecimal"
line << p_customer.send(column.to_s).to_s.gsub('.', ',')
else
line << p_customer.send(column.to_s)
end
else
line << column.to_s
end
end
sheet.add_row line, types: line.map{|t| self.cell_type_from_value(t)}
end
end
@final_file = "#{Rails.root}/private_medias/export-inscrits-#{Time.now.to_s.to_slug}.xlsx"
xlsx_package.serialize(@final_file)
send_file @final_file
}
end
end

View File

@ -4,7 +4,28 @@ class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
def cell_type_from_value(v)
if v.is_a?(Date)
:date
elsif v.is_a?(String)
:string
elsif v.is_a?(Time)
:time
elsif v.is_a?(TrueClass) || v.is_a?(FalseClass)
:boolean
elsif v.to_s =~ /\A[+-]?\d+?\Z/ #numeric
:integer
elsif v.to_s =~ /\A[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\Z/ #float
:float
# \A(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[0-1]|0[1-9]|[1-2][0-9])
# T(2[0-3]|[0-1][0-9]):([0-5][0-9]):([0-5][0-9])(\.[0-9]+)?
# (Z|[+-](?:2[0-3]|[0-1][0-9]):[0-5][0-9])?\Z
elsif v.to_s =~/\A(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[0-1]|0[1-9]|[1-2][0-9])T(2[0-3]|[0-1][0-9]):([0-5][0-9]):([0-5][0-9])(\.[0-9]+)?(Z|[+-](?:2[0-3]|[0-1][0-9]):[0-5][0-9])?\Z/
:iso_8601
else
:string
end
end
before_action :set_locale

View File

@ -336,6 +336,14 @@ file_admin_ok remise particular_civilite particular_name particular_firstname pa
#, :sort_name => "code"
end
def csv_m_odr
self.m_odr.name if self.m_odr
end
def csv_m_odr_product_cat
self.m_odr_product_cat.name if self.m_odr_product_cat
end
def ca_admin_ok_to_send
if self.rib_admin_ok and self.file_admin_ok
true

View File

@ -1,3 +1,6 @@
%li= link_to "Participations ODR", admin_m_odr_reps_path
%li= link_to "Virements", admin_m_odr_virements_path
=#%li= link_to "Remises", admin_p_remises_path
=#%li= link_to "Relances", relances_admin_p_payments_path

View File

@ -1,7 +1,6 @@
%li= link_to "Participations ODR", admin_m_odr_reps_path
-if current_admin.has_permission?("odr.view")
%li= link_to "ODR", admin_m_odrs_path

View File

@ -28,8 +28,8 @@
-if @can_update
= link_to i(:"trash-o"), [:admin, m_odr_rep], method: :delete, data: { confirm: 'Voulez-vous vraiment supprimer cet enregistrement ? ' } , :remote => true
= link_to i(:pencil), edit_admin_m_odr_rep_path(m_odr_rep), :remote => true
= link_to i(:eye), admin_m_odr_rep_path(m_odr_rep)
= link_to i(:pencil), admin_m_odr_rep_path(m_odr_rep) #edit_admin_m_odr_rep_path(m_odr_rep), :remote => true
= #link_to i(:eye), admin_m_odr_rep_path(m_odr_rep)

View File

@ -38,7 +38,7 @@
%td=text_field_tag :reduc_code, params[:reduc_code],:class => "form-control", :placeholder => "Code réduction"
=render :partial => "qi/qi_ordered_table_search_footer", :locals => {:collection_object => @m_odr_reps}
=render :partial => "qi/qi_ordered_table_search_footer", :locals => {:collection_object => @m_odr_reps, :csv => true}
=render :partial => "qi/qi_ordered_table", :locals => {:qi_ordered_table_collection => @m_odr_reps}

View File

@ -40,7 +40,7 @@
-if current_admin.has_permission?("odr_rep.view_for_my") or current_admin.has_permission?("odr_rep.view")
.element
=link_to admin_m_odr_reps_path do
=link_to admin_m_odrs_path do
.cat#big_cat_stocks
=ic :"cubes"
Opérations ODR
@ -62,10 +62,10 @@
-if current_admin.has_permission?("virements.view")
.element
=link_to admin_m_odr_virements_path do
=link_to admin_m_odr_reps_path do
.cat#big_cat_payments
=ic :"eur"
Virements
Remboursements
-if current_admin.has_permission?("file_tunels.view")
.element

View File

@ -1,6 +1,6 @@
%div{:class => ("error has-error" if form.object.errors["#{field}_id".to_sym].size > 0 )}
%label=label
%input.p_fournisseur_autocomplete_input.form-control{:type => "text", :value => ("#{eval("form.object.#{field}.member_label")}" if eval("form.object.#{field}"))}
%input.form-control{:class => "#{field}_autocomplete_input", :type => "text", :value => ("#{eval("form.object.#{field}.member_label")}" if eval("form.object.#{field}"))}
= form.hidden_field "#{field}_id".to_sym, :class => "#{field}_id"

View File

@ -34,7 +34,7 @@
%span.qi_ordered_table_column{:onclick => "$(this).next('.qi_ordered_table_sort_select_wrapper').toggle();"}
=ic :columns
.qi_ordered_table_sort_select_wrapper{:style => "display:none;"}
=form_tag request.url, :method => "get", :onsubmit => "", :remote => false do

View File

@ -21,14 +21,14 @@
-v = object.send(key.to_s)
-if value.instance_of? Hash and value[:format]
-if value[:format] == :date
-if value.instance_of? Hash and (value[:format] or value[:as])
-value[:as] = value[:format] if value[:format] and !value[:as]
-if value[:as] == :date
%td=l v, :format => :short_date
-elsif value[:format] == :boolean
-elsif value[:as] == :boolean
%td="Oui" if v
-elsif value[:format] == :currency
-elsif value[:as] == :currency
%td.numeraire=number_to_currency v
-else

View File

@ -1,3 +1,6 @@
=hidden_field_tag :column, params[:column]
=hidden_field_tag :direction, params[:direction]
=link_to ic(:search)+" Rechercher", "#", :class => "btn btn-default btn-qi-search", :onclick => "$(this).closest('form').submit();$(this).html('...');return false;"

View File

@ -0,0 +1,12 @@
-i =0
-step = step || 4
-collec.each do |c|
=render c
-if i
-i += 1
-if i == step
.clear
-i = 0

View File

@ -2,20 +2,22 @@
-qi_ordered_table_model = qi_ordered_table_collection.klass
-key = key || ""
-inherit_key = key
-big_key = qi_ordered_table_name+key.to_s
=render :partial => "qi/qi_ordered_table_head", :locals => {:qi_ordered_table_name => qi_ordered_table_name, :qi_ordered_table_model => qi_ordered_table_model}
=render :partial => "qi/qi_ordered_table_head", :locals => {:qi_ordered_table_name => qi_ordered_table_name, :qi_ordered_table_model => qi_ordered_table_model, :key => key}
-@qi_table_orders = @qi_table_orders || {}
-if current_admin
-if ap = current_admin.admin_preferences.where(:key => "sort_table_"+qi_ordered_table_name).first
-if ap = current_admin.admin_preferences.where(:key => "sort_table_"+big_key).first
-qi_ordered_table_personalised = ap.value
-if ap = current_admin.admin_preferences.where(:key => "sort_table_"+qi_ordered_table_name+"_nbr_col").first
-if ap = current_admin.admin_preferences.where(:key => "sort_table_"+big_key+"_nbr_col").first
-qi_ordered_table_nbr_col = ap.value
-else
-qi_ordered_table_nbr_col = 1
@ -23,9 +25,9 @@
-else
-qi_ordered_table_personalised = session[:qi_sort_string][qi_ordered_table_name]
-qi_ordered_table_personalised = session[:qi_sort_string][big_key]
-qi_ordered_table_nbr_col = session[:qi_sort_string][qi_ordered_table_name+"_nbr_col"] || 1
-qi_ordered_table_nbr_col = session[:qi_sort_string][big_key+"_nbr_col"] || 1
@ -39,13 +41,12 @@
=form_tag request.url, :method => "get", :onsubmit => "", :remote => false do
=hidden_field_tag "qi_sort_string[class]",qi_ordered_table_name
=hidden_field_tag "qi_sort_string[class]",big_key
=hidden_field_tag "qi_sort_string[list]", "", :class => "qi_sort_string"
.qi_ordered_table_sort_select
-my_keys = []
-@qi_table_orders[qi_ordered_table_name.to_sym].each do |key, value|
-@qi_table_orders[big_key.to_sym].each do |key, value|
.qi_order_item{:"data-ref" => "#{key}", :class => "active", :onclick => "$(this).toggleClass('active');"}
-if value.instance_of? Hash
=value[:name]
@ -147,7 +148,7 @@
%table.table.table-striped.table-hover.table-bordered.data_table
%thead.header
%tr
-@qi_table_orders[qi_ordered_table_name.to_sym].each do |key, value|
-@qi_table_orders[big_key.to_sym].each do |key, value|
-if value.instance_of? Hash
-if value[:reorder]
-sort_name = value[:sort_name] ? value[:sort_name] : key
@ -168,7 +169,9 @@
%tbody{:id => "#{qi_ordered_table_name}_rows"}
=render qi_ordered_table_collection
-qi_ordered_table_collection.each do |ob|
-@inherit_key = inherit_key
=render :partial => "admin/#{qi_ordered_table_name}/#{qi_ordered_table_name.singularize}", :locals => {:inherit_key => "inherit_key", :"#{qi_ordered_table_name.singularize}" => ob }
.qi_pagination

View File

@ -1,177 +0,0 @@
-qi_ordered_table_name = qi_ordered_table_collection.klass.to_s.tableize
-qi_ordered_table_model = qi_ordered_table_collection.klass
=render :partial => "qi/qi_ordered_table_head", :locals => {:qi_ordered_table_name => qi_ordered_table_name, :qi_ordered_table_model => qi_ordered_table_model}
-@qi_table_orders = @qi_table_orders || {}
-if current_admin
-if ap = current_admin.admin_preferences.where(:key => "sort_table_"+qi_ordered_table_name).first
-qi_ordered_table_personalised = ap.value
-if ap = current_admin.admin_preferences.where(:key => "sort_table_"+qi_ordered_table_name+"_nbr_col").first
-qi_ordered_table_nbr_col = ap.value
-else
-qi_ordered_table_nbr_col = 1
-else
-qi_ordered_table_personalised = session[:qi_sort_string][qi_ordered_table_name]
-qi_ordered_table_nbr_col = session[:qi_sort_string][qi_ordered_table_name+"_nbr_col"] || 1
%span.qi_ordered_table_column{:onclick => "$(this).next('.qi_ordered_table_sort_select_wrapper').toggle();"}
=ic :columns
.qi_ordered_table_sort_select_wrapper{:style => "display:none;"}
=form_tag request.url, :method => "get", :onsubmit => "", :remote => false do
=hidden_field_tag "qi_sort_string[class]",qi_ordered_table_name
=hidden_field_tag "qi_sort_string[list]", "", :class => "qi_sort_string"
.qi_ordered_table_sort_select
-my_keys = []
-@qi_table_orders[qi_ordered_table_name.to_sym].each do |key, value|
.qi_order_item{:"data-ref" => "#{key}", :class => "active", :onclick => "$(this).toggleClass('active');"}
-if value.instance_of? Hash
=value[:name]
-else
=value
-my_keys << key
-qi_ordered_table_collection.klass.qi_table_order.each do |key, value|
-if !my_keys.include?(key)
.qi_order_item{:"data-ref" => "#{key}", :onclick => "$(this).toggleClass('active');"}
-if value.instance_of? Hash
=value[:name]
-else
=value
%hr{:style => "margin:3px 0;"}
-if false
Colonnes fixes :
=select_tag "qi_sort_string[nbr_colonnes]", options_for_select([0,1,2,3], qi_ordered_table_nbr_col)
=link_to "Mettre à jour", "#", :class => "btn btn-primary update_table_order_link"
:scss
.qi_ordered_table_column{
position:absolute;
color:rgba(0,0,0,0.2);
font-size:1.2em;
padding-top:3px;
padding-left:10px;
cursor:pointer;
&:hover{
color:rgba(0,0,0,0.6);
}
}
.qi_ordered_table_sort_select_wrapper{
background:rgba(white, 0.98);
box-shadow:0 0 10px rgba(0,0,0,0.2);
width:auto;
position:absolute;
margin-left:15px;
margin-top:25px;
z-index:5;
padding:5px 10px;
.qi_order_item{
padding:2px 0;
cursor:pointer;
}
.active{
font-weight:bold;
}
}
:coffeescript
$(".update_table_order_link").click ->
r = []
$(this).closest('.qi_ordered_table_sort_select_wrapper').find(".qi_order_item").each ->
if $(this).hasClass("active")
r.push $(this).data("ref")
$(this).closest("form").find(".qi_sort_string").val(r.join(','))
$.ajax
type: "GET",
url: "/",
data: $(this).closest("form").serialize(),
success: ->
location.reload()
$( ".qi_ordered_table_sort_select" ).sortable
axis: "y"
.qi_pannel.padding.new_table_container
.table-area
.table-area-inner
.freezeTable
%table.table.table-striped.table-hover.table-bordered.data_table
%thead.header
%tr
-@qi_table_orders[qi_ordered_table_name.to_sym].each do |key, value|
-if value.instance_of? Hash
-if value[:reorder]
-sort_name = value[:sort_name] ? value[:sort_name] : key
%th=raw sort_link sort_name.to_s, value[:name]
-else
%th=raw value[:name]
-else
%th=raw value
=#sort_link "code", "Code"
-if false
%th
%tbody{:id => "#{qi_ordered_table_name}_rows"}
=render qi_ordered_table_collection
.qi_pagination
= paginate qi_ordered_table_collection #, :remote => true
:javascript
resize();
$('.freezeTable').freezeTable({columnNum:#{qi_ordered_table_nbr_col},fixedNavbar:'#qi_header_wrapper'});

View File

@ -1,14 +1,16 @@
-key = key || ""
-big_key = qi_ordered_table_name+key.to_s
-@qi_table_orders = @qi_table_orders || {}
-if current_admin
-if ap = current_admin.admin_preferences.where(:key => "sort_table_"+qi_ordered_table_name).first
-if ap = current_admin.admin_preferences.where(:key => "sort_table_"+big_key).first
-qi_ordered_table_personalised = ap.value
-if ap = current_admin.admin_preferences.where(:key => "sort_table_"+qi_ordered_table_name+"_nbr_col").first
-if ap = current_admin.admin_preferences.where(:key => "sort_table_"+big_key+"_nbr_col").first
-qi_ordered_table_nbr_col = ap.value
-else
-qi_ordered_table_nbr_col = 1
@ -16,20 +18,20 @@
-else
-qi_ordered_table_personalised = session[:qi_sort_string][qi_ordered_table_name]
-qi_ordered_table_personalised = session[:qi_sort_string][big_key]
-qi_ordered_table_nbr_col = session[:qi_sort_string][qi_ordered_table_name+"_nbr_col"] || 1
-qi_ordered_table_nbr_col = session[:qi_sort_string][big_key+"_nbr_col"] || 1
-if qi_ordered_table_personalised.to_s != ""
-@qi_table_orders[qi_ordered_table_name.to_sym] = {}
-@qi_table_orders[big_key.to_sym] = {}
-qi_ordered_table_personalised.split(",").each do |k|
-if qi_ordered_table_model.qi_table_order[k.to_sym]
-@qi_table_orders[qi_ordered_table_name.to_sym][k.to_sym] = qi_ordered_table_model.qi_table_order[k.to_sym]
-@qi_table_orders[big_key.to_sym][k.to_sym] = qi_ordered_table_model.qi_table_order[k.to_sym]
-else
-@qi_table_orders[qi_ordered_table_name.to_sym] = qi_ordered_table_model.qi_table_order
-@qi_table_orders[big_key.to_sym] = qi_ordered_table_model.qi_table_order

View File

@ -1,35 +0,0 @@
-@qi_table_orders = @qi_table_orders || {}
-if current_admin
-if ap = current_admin.admin_preferences.where(:key => "sort_table_"+qi_ordered_table_name).first
-qi_ordered_table_personalised = ap.value
-if ap = current_admin.admin_preferences.where(:key => "sort_table_"+qi_ordered_table_name+"_nbr_col").first
-qi_ordered_table_nbr_col = ap.value
-else
-qi_ordered_table_nbr_col = 1
-else
-qi_ordered_table_personalised = session[:qi_sort_string][qi_ordered_table_name]
-qi_ordered_table_nbr_col = session[:qi_sort_string][qi_ordered_table_name+"_nbr_col"] || 1
-if qi_ordered_table_personalised.to_s != ""
-@qi_table_orders[qi_ordered_table_name.to_sym] = {}
-qi_ordered_table_personalised.split(",").each do |k|
-if qi_ordered_table_model.qi_table_order[k.to_sym]
-@qi_table_orders[qi_ordered_table_name.to_sym][k.to_sym] = qi_ordered_table_model.qi_table_order[k.to_sym]
-else
-@qi_table_orders[qi_ordered_table_name.to_sym] = qi_ordered_table_model.qi_table_order

View File

@ -1,6 +1,8 @@
-qi_ordered_table_model = object.class
-qi_ordered_table_name = qi_ordered_table_model.to_s.tableize
-big_key = qi_ordered_table_name.to_s+@inherit_key.to_s
-if !@qi_table_orders
=render :partial => "qi/qi_ordered_table_head", :locals => {:qi_ordered_table_name => qi_ordered_table_name, :qi_ordered_table_model => qi_ordered_table_model}
@ -8,7 +10,7 @@
-@qi_table_orders[qi_ordered_table_name.to_sym].each do |key,value|
-@qi_table_orders[big_key.to_sym].each do |key,value|
-if tr[:"#{key}"]
=raw tr[:"#{key}"]
@ -40,3 +42,4 @@
%td
Err :
=key

View File

@ -1,6 +1,7 @@
=hidden_field_tag :column, params[:column]
=hidden_field_tag :direction, params[:direction]
=link_to ic(:search)+" Rechercher", "#", :class => "btn btn-default btn-qi-search", :onclick => "$(this).closest('form').submit();$(this).html('...');return false;"
@ -10,4 +11,8 @@
="-"
=select_tag "search[per_page]", options_for_select([50,100,200,500], params[:search][:per_page])
résultats par page
résultats par page
-if csv = csv || nil and csv
="-"
=link_to "export csv", params.permit!.merge(:format => :csv)