Make list of ordered articles sortable in _edit_results_by_articles

* For the moment you can sort by article name and order number

Signed-off-by: bennibu <benni@dresdener27.de>
This commit is contained in:
sandoz 2009-04-01 06:46:01 +08:00 committed by bennibu
parent 2db8aec0e5
commit 5a7fe17437
3 changed files with 37 additions and 8 deletions

View file

@ -15,13 +15,40 @@ class Finance::BalancingController < ApplicationController
def new def new
@order = Order.find(params[:id]) @order = Order.find(params[:id])
@comments = @order.comments @comments = @order.comments
if params['sort']
sort = case params['sort']
when "name" then "articles.name"
when "order_number" then "articles.order_number"
when "name_reverse" then "articles.name DESC"
when "order_number_reverse" then "articles.order_number DESC"
end
else
sort = "articles.name"
end
@articles = @order.order_articles.ordered.find(
:all,
:include => :article,
:order => sort
)
case params[:view] case params[:view]
when 'editResults' when 'editResults'
render :partial => 'edit_results_by_articles' render :partial => 'edit_results_by_articles' and return
when 'groupsOverview' when 'groupsOverview'
render :partial => 'shared/articles_by_groups', :locals => {:order => @order} render :partial => 'shared/articles_by_groups', :locals => {:order => @order} and return
when 'articlesOverview' when 'articlesOverview'
render :partial => 'shared/articles_by_articles', :locals => {:order => @order} render :partial => 'shared/articles_by_articles', :locals => {:order => @order} and return
end
respond_to do |format|
format.html # new.haml
format.js do
render :update do |page|
page.replace_html 'results', :partial => "edit_results_by_articles"
end
end
end end
end end

View file

@ -58,7 +58,7 @@ module ApplicationHelper
return result return result
end end
def sort_link_helper(text, param, per_page = (@per_page || 10) ) def sort_link_helper(text, param, per_page = (@per_page || 10), action = "list" )
key = param key = param
key += "_reverse" if params[:sort] == param key += "_reverse" if params[:sort] == param
options = { options = {
@ -69,7 +69,7 @@ module ApplicationHelper
} }
html_options = { html_options = {
:title => _('Sort by this field'), :title => _('Sort by this field'),
:href => url_for(:action => 'list', :params => params.merge({:sort => key, :page => nil, :per_page => per_page})) :href => url_for(:action => action, :params => params.merge({:sort => key, :page => nil, :per_page => per_page}))
} }
link_to_remote(text, options, html_options) link_to_remote(text, options, html_options)
end end

View file

@ -6,8 +6,10 @@
%table{:class => "ordered_articles", :style => "clear:both"} %table{:class => "ordered_articles", :style => "clear:both"}
%thead %thead
%tr %tr
%th{:colspan => "1"} Artikel %th[sort_td_class_helper "name"]{:colspan => "1"}
%th Nr. = sort_link_helper "Artikel", "name", 1000, "new"
%th[sort_td_class_helper "order_number"]
= sort_link_helper "Nr.", "order_number", 1000, "new"
%th Menge %th Menge
%th GebGr * Einheit %th GebGr * Einheit
%th Netto %th Netto
@ -16,5 +18,5 @@
%th Pfand %th Pfand
%th{:colspan => "2"} %th{:colspan => "2"}
%tbody#result_table %tbody#result_table
- for order_article in @order.order_articles.ordered.all(:include => [:article, :article_price]) - for order_article in @articles
= render :partial => "order_article_result", :locals => {:order_article => order_article} = render :partial => "order_article_result", :locals => {:order_article => order_article}