Merge branch 'master' of git@github.com:bennibu/foodsoft

This commit is contained in:
Benjamin Meichsner 2009-04-20 14:13:47 +02:00
commit a3fbc2d37b
5 changed files with 76 additions and 2 deletions

View file

@ -41,6 +41,34 @@ class FoodcoopController < ApplicationController
@groups = Workgroup.find :all, :order => "name" @groups = Workgroup.find :all, :order => "name"
end end
def ordergroups
#@order_groups = Ordergroup.find :all, :order => "name"
if (params[:per_page] && params[:per_page].to_i > 0 && params[:per_page].to_i <= 100)
@per_page = params[:per_page].to_i
else
@per_page = 20
end
if (params[:only_active].to_i == 1)
if (! params[:query].blank?)
conditions = ["orders.starts >= ? AND name LIKE ?", Time.now.months_ago(3), "%#{params[:query]}%"]
else
conditions = ["orders.starts >= ?", Time.now.months_ago(3)]
end
else
# if somebody uses the search field:
conditions = ["name LIKE ?", "%#{params[:query]}%"] unless params[:query].blank?
end
@total = Ordergroup.count(:conditions => conditions, :include => "orders")
@order_groups = Ordergroup.paginate(:page => params[:page], :per_page => @per_page, :conditions => conditions, :order => "name", :include => "orders")
respond_to do |format|
format.html # index.html.erb
format.js { render :partial => "ordergroups" }
end
end
def group def group
end end

View file

@ -79,12 +79,12 @@ class OrderArticle < ActiveRecord::Base
# Calculate price for ordered quantity. # Calculate price for ordered quantity.
def total_price def total_price
units_to_order * price.price units_to_order * price.unit_quantity * price.price
end end
# Calculate gross price for ordered qunatity. # Calculate gross price for ordered qunatity.
def total_gross_price def total_gross_price
units_to_order * price.gross_price units_to_order * price.unit_quantity * price.gross_price
end end
def ordered_quantities_equal_to_group_orders? def ordered_quantities_equal_to_group_orders?

View file

@ -0,0 +1,23 @@
%p
%table{:style => "width:100%"}
%tr
%td
= pagination_links_remote @order_groups, :update => :order_groups
%td{:style => "text-align:right"}
- if @total > 20
= items_per_page :update => :order_groups
%table.list
%thead
%tr
%th Name
%th #Mitglieder
%th Kontakt
%tbody
- for order_group in @order_groups
%tr{:class => cycle('even','odd', :name => 'order_group')}
%td=h order_group.name
%th=h order_group.users.length
%td=h order_group.contact

View file

@ -0,0 +1,22 @@
%h1 Bestellgruppen der Foodcoop
.left_column{:style => "width:100%"}
.box_title
%h2 Übersicht
.column_content
#user_filter{:style => "margin-right:2em;"}
%form{:id=>"sform", :action=>"", :style=>"display:inline;"}
%label{:for => 'article_name'} Suche nach Name:
= text_field_tag("query", params['query'], :size => 10 )
%label{:for => 'only_active'} Nur aktive:
= check_box_tag('only_active')
= observe_form 'sform', :frequency => 2, |
:before => "Element.show('loader')", |
:success => "Element.hide('loader')", |
:url => {:action => 'ordergroups'}, |
:update => :order_groups, |
:method => :get |
#order_groups
= render :partial => "ordergroups"

View file

@ -12,6 +12,7 @@
:subnav => [ :subnav => [
{ :name => "Mitglieder", :url => "/foodcoop/members"}, { :name => "Mitglieder", :url => "/foodcoop/members"},
{ :name => "Abeitsgruppen", :url => "/foodcoop/workgroups"}, { :name => "Abeitsgruppen", :url => "/foodcoop/workgroups"},
{ :name => "Bestellgruppen", :url => "/foodcoop/ordergroups"},
{ :name => "Nachrichten", :url => "/messages"}, { :name => "Nachrichten", :url => "/messages"},
{ :name => "Aufgaben", :url => "/tasks"} { :name => "Aufgaben", :url => "/tasks"}
] ]