Merge branch 'master' into feature-cleaner_order_details

Conflicts:
	app/assets/stylesheets/bootstrap_and_overrides.css.less
This commit is contained in:
wvengen 2014-01-20 13:36:46 +01:00
commit 8db516c5f0
10 changed files with 139 additions and 51 deletions

View file

@ -240,6 +240,10 @@ tr.unavailable {
// ********* Tweaks & fixes // ********* Tweaks & fixes
// Fix bootstrap dropdown menu on mobile
// https://github.com/twbs/bootstrap/issues/4550#issuecomment-31916049
.dropdown-backdrop { position: static; }
// need more space for supplier&order information (in German, at least) // need more space for supplier&order information (in German, at least)
.dl-horizontal { .dl-horizontal {
dt { width: 160px; } dt { width: 160px; }

View file

@ -31,4 +31,11 @@ class SessionsController < ApplicationController
session[:return_to] = nil session[:return_to] = nil
redirect_to login_url, :notice => I18n.t('sessions.logged_out') redirect_to login_url, :notice => I18n.t('sessions.logged_out')
end end
# redirect to root, going to default foodcoop when none given
# this may not be so much session-related, but it must be somewhere
def redirect_to_foodcoop
redirect_to root_path
end
end end

View file

@ -1,7 +1,7 @@
# An OrderArticle represents a single Article that is part of an Order. # An OrderArticle represents a single Article that is part of an Order.
class OrderArticle < ActiveRecord::Base class OrderArticle < ActiveRecord::Base
attr_reader :update_current_price attr_reader :update_global_price
belongs_to :order belongs_to :order
belongs_to :article belongs_to :article
@ -168,14 +168,20 @@ class OrderArticle < ActiveRecord::Base
if price_attributes.present? if price_attributes.present?
article_price.attributes = price_attributes article_price.attributes = price_attributes
if article_price.changed? if article_price.changed?
# Updates also price attributes of article if update_current_price is selected # Updates also price attributes of article if update_global_price is selected
if update_current_price if update_global_price
article.update_attributes!(price_attributes) article.update_attributes!(price_attributes)
self.article_price = article.article_prices.first # Assign new created article price to order article self.article_price = article.article_prices.first and save # Assign new created article price to order article
else else
# Creates a new article_price if neccessary # Creates a new article_price if neccessary
# Set created_at timestamp to order ends, to make sure the current article price isn't changed # Set created_at timestamp to order ends, to make sure the current article price isn't changed
create_article_price!(price_attributes.merge(created_at: order.ends)) and save create_article_price!(price_attributes.merge(created_at: order.ends)) and save
# TODO: The price_attributes do not include an article_id so that
# the entry in the database will not "know" which article is
# referenced. Let us check the effect of that and change it or
# comment on the meaning.
# Possibly this is the real reason why the global price is not
# affected instead of the `created_at: order.ends` injection.
end end
# Updates ordergroup values # Updates ordergroup values
@ -185,8 +191,8 @@ class OrderArticle < ActiveRecord::Base
end end
end end
def update_current_price=(value) def update_global_price=(value)
@update_current_price = (value == true or value == '1') ? true : false @update_global_price = (value == true or value == '1') ? true : false
end end
# Units missing for the next full unit_quantity of the article # Units missing for the next full unit_quantity of the article

View file

@ -25,7 +25,7 @@
= render partial: 'shared/article_fields_units', locals: {f_unit: f, f_uq: fprice} = render partial: 'shared/article_fields_units', locals: {f_unit: f, f_uq: fprice}
= render partial: 'shared/article_fields_price', locals: {f: fprice} = render partial: 'shared/article_fields_price', locals: {f: fprice}
= form.input :update_current_price, as: :boolean = form.input :update_global_price, as: :boolean
= f.input :order_number = f.input :order_number
.modal-footer .modal-footer
= link_to t('ui.close'), '#', class: 'btn', data: {dismiss: 'modal'} = link_to t('ui.close'), '#', class: 'btn', data: {dismiss: 'modal'}

View file

@ -0,0 +1,17 @@
# we'd like to show "0.0" as "0"
class Float
alias :foodsoft_to_s :to_s
def to_s
foodsoft_to_s.chomp(".0")
end
end
if defined? BigDecimal
class BigDecimal
alias :foodsoft_to_s :to_s
def to_s(format = DEFAULT_STRING_FORMAT)
foodsoft_to_s(format).chomp(".0")
end
end
end

View file

@ -88,7 +88,7 @@ de:
units_received_short: Geliefert units_received_short: Geliefert
units_to_order: Bestellte Gebinde units_to_order: Bestellte Gebinde
units_to_order_short: Bestellt units_to_order_short: Bestellt
update_current_price: Globalen Preis aktualisieren update_global_price: Globalen Preis aktualisieren
order_comment: order_comment:
text: Kommentiere diese Bestellung ... text: Kommentiere diese Bestellung ...
ordergroup: ordergroup:
@ -480,7 +480,7 @@ de:
title: ! 'Sortiermatrix der Bestellung: %{name}, beendet am %{date}' title: ! 'Sortiermatrix der Bestellung: %{name}, beendet am %{date}'
total: total:
one: Insgesamt ein Artikel one: Insgesamt ein Artikel
other: ! 'Insgesamt %{count} Artikel' other: Insgesamt %{count} Artikel
errors: errors:
general: Ein Problem ist aufgetreten. general: Ein Problem ist aufgetreten.
general_again: Ein Fehler ist aufgetreten. Bitte erneut versuchen. general_again: Ein Fehler ist aufgetreten. Bitte erneut versuchen.
@ -1083,6 +1083,12 @@ de:
home: Startseite home: Startseite
title: Wiki title: Wiki
workgroups: Arbeitsgruppen workgroups: Arbeitsgruppen
order_articles:
edit:
stock_alert: Preise von Lagerartikeln können nicht geändert werden!
title: Artikel aktualisieren
new:
title: Neuer gelieferter Artikel der Bestellung
ordergroups: ordergroups:
edit: edit:
title: Bestellgruppe bearbeiten title: Bestellgruppe bearbeiten
@ -1091,12 +1097,6 @@ de:
model: model:
error_single_group: ! '%{user} ist schon in einer anderen Bestellgruppe' error_single_group: ! '%{user} ist schon in einer anderen Bestellgruppe'
invalid_balance: ist keine gültige Zahl invalid_balance: ist keine gültige Zahl
order_articles:
edit:
stock_alert: Preise von Lagerartikeln können nicht geändert werden!
title: Artikel aktualisieren
new:
title: Neuer gelieferter Artikel der Bestellung
orders: orders:
articles: articles:
article_count: ! 'Bestellte Artikel:' article_count: ! 'Bestellte Artikel:'
@ -1155,7 +1155,7 @@ de:
notice_none: Keine neuen Artikel für den Empfang ausgewählt. notice_none: Keine neuen Artikel für den Empfang ausgewählt.
rest_to_stock: Rest ins Lager rest_to_stock: Rest ins Lager
submit: Bestellung in Empfang nehmen submit: Bestellung in Empfang nehmen
surplus_options: 'Verteilungsoptionen:' surplus_options: ! 'Verteilungsoptionen:'
title: »%{order}« in Empfang nehmen title: »%{order}« in Empfang nehmen
show: show:
action_end: Beenden! action_end: Beenden!
@ -1189,10 +1189,11 @@ de:
update: update:
notice: Die Bestellung wurde aktualisiert. notice: Die Bestellung wurde aktualisiert.
update_order_amounts: update_order_amounts:
msg1: ! '%{count} Artikel (%{units} Einheiten) aktualisiert'
msg2: ! '%{count} (%{units}) Toleranzmenge'
msg3:
msg4: ! '%{count} (%{units}) übrig'
update_order_amounts: update_order_amounts:
msg1: "%{count} Artikel (%{units} Einheiten) aktualisiert"
msg2: "%{count} (%{units}) Toleranzmenge"
msg4: "%{count} (%{units}) übrig"
pages: pages:
all: all:
new_page: Neue Seite anlegen new_page: Neue Seite anlegen
@ -1319,7 +1320,7 @@ de:
private: Nachricht erscheint nicht im Foodsoft Posteingang private: Nachricht erscheint nicht im Foodsoft Posteingang
order_article: order_article:
units_to_order: Wenn Du die Gesamtanzahl gelieferter Gebinde änderst, musst Du auch die individuelle Anzahl der einzelnen Bestellgruppen anpassen, indem Du auf den Artikelnamen klickst. Sie werden nicht automatisch neuberechnet und andernfalls werden den Bestellgruppen Artikel in Rechnung gestellt, die nicht geliefert wurden! units_to_order: Wenn Du die Gesamtanzahl gelieferter Gebinde änderst, musst Du auch die individuelle Anzahl der einzelnen Bestellgruppen anpassen, indem Du auf den Artikelnamen klickst. Sie werden nicht automatisch neuberechnet und andernfalls werden den Bestellgruppen Artikel in Rechnung gestellt, die nicht geliefert wurden!
update_current_price: Ändert auch den Preis für aktuelle Bestellungen update_global_price: Ändert auch den Preis für zukünftige Bestellungen
stock_article: stock_article:
copy: copy:
name: Bitte ändern name: Bitte ändern

View file

@ -88,7 +88,7 @@ en:
units_received_short: Received units_received_short: Received
units_to_order: Ordered units units_to_order: Ordered units
units_to_order_short: Ordered units_to_order_short: Ordered
update_current_price: Globally update current price update_global_price: Globally update current price
order_comment: order_comment:
text: Add comment to this order ... text: Add comment to this order ...
ordergroup: ordergroup:
@ -1085,6 +1085,12 @@ en:
home: Home home: Home
title: Wiki title: Wiki
workgroups: Workgroups workgroups: Workgroups
order_articles:
edit:
stock_alert: The price of stock articles cannot be changed!
title: Update article
new:
title: Add delivered article to order
ordergroups: ordergroups:
edit: edit:
title: Edit ordergroups title: Edit ordergroups
@ -1093,12 +1099,6 @@ en:
model: model:
error_single_group: ! '%{user} is already a member of another ordergroup' error_single_group: ! '%{user} is already a member of another ordergroup'
invalid_balance: is not a valid number invalid_balance: is not a valid number
order_articles:
edit:
stock_alert: The price of stock articles cannot be changed!
title: Update article
new:
title: Add delivered article to order
orders: orders:
articles: articles:
article_count: ! 'Ordered articles:' article_count: ! 'Ordered articles:'
@ -1157,7 +1157,7 @@ en:
notice_none: No new articles to receive notice_none: No new articles to receive
rest_to_stock: rest to stock rest_to_stock: rest to stock
submit: Receive order submit: Receive order
surplus_options: 'Distribution options:' surplus_options: ! 'Distribution options:'
title: Receiving %{order} title: Receiving %{order}
show: show:
action_end: Close! action_end: Close!
@ -1198,10 +1198,11 @@ en:
update: update:
notice: The order was updated. notice: The order was updated.
update_order_amounts: update_order_amounts:
msg1: "%{count} articles (%{units} units) updated" msg1: ! '%{count} articles (%{units} units) updated'
msg2: "%{count} (%{units}) using tolerance" msg2: ! '%{count} (%{units}) using tolerance'
msg3: "%{count} (%{units}) go to stock if foodsoft would support that [don't translate]" msg3: ! '%{count} (%{units}) go to stock if foodsoft would support that [don''t translate]'
msg4: "%{count} (%{units}) left over" msg4: ! '%{count} (%{units}) left over'
update_order_amounts:
pages: pages:
all: all:
new_page: Create new page new_page: Create new page
@ -1328,7 +1329,7 @@ en:
private: Message doesnt show in Foodsoft mail inbox private: Message doesnt show in Foodsoft mail inbox
order_article: order_article:
units_to_order: If you change the total amount of delivered units, you also have to change individual group amounts by clicking on the article name. They will not be automatically recalculated and so ordergroups may be accounted for articles that were not delivered! units_to_order: If you change the total amount of delivered units, you also have to change individual group amounts by clicking on the article name. They will not be automatically recalculated and so ordergroups may be accounted for articles that were not delivered!
update_current_price: Also update the price of the current order update_global_price: Also update the price of future orders
stock_article: stock_article:
copy: copy:
name: Please modify name: Please modify

View file

@ -77,12 +77,18 @@ fr:
note: note:
starts: Ouverture le starts: Ouverture le
status: status:
supplier:
order_article: order_article:
article: Article article: Article
missing_units: Unités manquantes missing_units: Unités manquantes
missing_units_short: missing_units_short:
quantity:
quantity_short:
units_received:
units_received_short:
units_to_order: Quantité units_to_order: Quantité
update_current_price: Mettre à jour le prix global units_to_order_short:
update_global_price: Mettre à jour le prix global
order_comment: order_comment:
text: Commenter cette commande... text: Commenter cette commande...
ordergroup: ordergroup:
@ -756,6 +762,7 @@ fr:
new_invoice: Ajouter une nouvelle facture new_invoice: Ajouter une nouvelle facture
show_invoice: Afficher la facture show_invoice: Afficher la facture
orders: orders:
old_price:
option_choose: Choix d'unE fournisseusE_r option_choose: Choix d'unE fournisseusE_r
option_stock: Stock option_stock: Stock
order_pdf: Générer un PDF order_pdf: Générer un PDF
@ -1081,6 +1088,12 @@ fr:
home: Page d'accueil home: Page d'accueil
title: Wiki title: Wiki
workgroups: Équipes workgroups: Équipes
order_articles:
edit:
stock_alert:
title: Mettre à jour la liste des article
new:
title:
ordergroups: ordergroups:
edit: edit:
title: Modifier les cellules title: Modifier les cellules
@ -1089,12 +1102,6 @@ fr:
model: model:
error_single_group: ! '%{user} fait déjà partie d''une autre cellule' error_single_group: ! '%{user} fait déjà partie d''une autre cellule'
invalid_balance: n'est pas un nombre valide invalid_balance: n'est pas un nombre valide
order_articles:
edit:
stock_alert:
title: Mettre à jour la liste des article
new:
title:
orders: orders:
articles: articles:
article_count: ! 'Articles commandés:' article_count: ! 'Articles commandés:'
@ -1106,6 +1113,9 @@ fr:
notice: La commande a bien été définie. notice: La commande a bien été définie.
edit: edit:
title: Modifier la commande title: Modifier la commande
edit_amount:
field_locked_title:
field_unlocked_title:
fax: fax:
amount: Quantité amount: Quantité
articles: Articles articles: Articles
@ -1124,6 +1134,7 @@ fr:
title: Article title: Article
index: index:
action_end: Terminer action_end: Terminer
action_receive:
confirm_delete: Vraiment supprimer la commande? confirm_delete: Vraiment supprimer la commande?
confirm_end: Veux tu vraiment mettre fin à la commande %{order}? Attention, il n'y aura pas d'annulation possible. confirm_end: Veux tu vraiment mettre fin à la commande %{order}? Attention, il n'y aura pas d'annulation possible.
new_order: Définir une nouvelle commande new_order: Définir une nouvelle commande
@ -1142,6 +1153,15 @@ fr:
warning_ordered_stock: warning_ordered_stock:
new: new:
title: Définir une nouvelle commande title: Définir une nouvelle commande
receive:
add_article:
consider_member_tolerance:
notice:
notice_none:
rest_to_stock:
submit:
surplus_options:
title:
show: show:
action_end: Clore! action_end: Clore!
amounts: ! 'Total net/brut:' amounts: ! 'Total net/brut:'
@ -1171,6 +1191,12 @@ fr:
open: en cours open: en cours
update: update:
notice: La commande a été mise à jour. notice: La commande a été mise à jour.
update_order_amounts:
msg1:
msg2:
msg3:
msg4:
update_order_amounts:
pages: pages:
all: all:
new_page: Créer une nouvelle page new_page: Créer une nouvelle page
@ -1297,7 +1323,7 @@ fr:
private: Le message n'apparaîtra pas dans la boîte de réception du Foodsoft private: Le message n'apparaîtra pas dans la boîte de réception du Foodsoft
order_article: order_article:
units_to_order: units_to_order:
update_current_price: Modifie aussi le prix des commandes en cours update_global_price:
stock_article: stock_article:
copy: copy:
name: Merci de modifier name: Merci de modifier

View file

@ -77,12 +77,18 @@ nl:
note: Notitie note: Notitie
starts: Start op starts: Start op
status: Status status: Status
supplier: Leverancier
order_article: order_article:
article: Artikel article: Artikel
missing_units: Missende eenheden missing_units: Missende eenheden
missing_units_short: Nodig missing_units_short: Nodig
quantity: Gewenst aantal artikelen
quantity_short: Gewenst
units_received: Ontvangen eenheden
units_received_short: Ontvangen
units_to_order: Aantal eenheden units_to_order: Aantal eenheden
update_current_price: Huidige prijs overal bijwerken units_to_order_short: Besteld
update_global_price: Huidige prijs overal bijwerken
order_comment: order_comment:
text: Commentaar voor deze bestelling toevoegen ... text: Commentaar voor deze bestelling toevoegen ...
ordergroup: ordergroup:
@ -740,6 +746,7 @@ nl:
new_invoice: Nieuwe rekening new_invoice: Nieuwe rekening
show_invoice: Rekening tonen show_invoice: Rekening tonen
orders: orders:
old_price: Oude prijs
option_choose: Leverancier/voorraad kiezen option_choose: Leverancier/voorraad kiezen
option_stock: Voorraad option_stock: Voorraad
order_pdf: PDF maken order_pdf: PDF maken
@ -1056,6 +1063,12 @@ nl:
home: Hoofdpagina home: Hoofdpagina
title: Wiki title: Wiki
workgroups: Werkgroepen workgroups: Werkgroepen
order_articles:
edit:
stock_alert: De prijs van voorraadartikelen kan niet aangepast worden!
title: Artikel bijwerken
new:
title: Geleverd artikel aan bestelling toevoegen
ordergroups: ordergroups:
edit: edit:
title: Huidhouden bewerken title: Huidhouden bewerken
@ -1064,12 +1077,6 @@ nl:
model: model:
error_single_group: ! '%{user} behoort al tot een ander huishouden' error_single_group: ! '%{user} behoort al tot een ander huishouden'
invalid_balance: is geen geldig nummer invalid_balance: is geen geldig nummer
order_articles:
edit:
stock_alert: De prijs van voorraadartikelen kan niet aangepast worden!
title: Artikel bijwerken
new:
title: Geleverd artikel aan bestelling toevoegen
orders: orders:
articles: articles:
article_count: ! 'Bestelde artikelen:' article_count: ! 'Bestelde artikelen:'
@ -1081,6 +1088,9 @@ nl:
notice: De bestelling is aangemaakt. notice: De bestelling is aangemaakt.
edit: edit:
title: Bestelling aanpassen title: Bestelling aanpassen
edit_amount:
field_locked_title:
field_unlocked_title:
fax: fax:
amount: Aantal amount: Aantal
articles: Artikelen articles: Artikelen
@ -1099,6 +1109,7 @@ nl:
title: Artikel title: Artikel
index: index:
action_end: Sluiten action_end: Sluiten
action_receive: Ontvangen
confirm_delete: Wil je de bestelling werkelijk verwijderen? confirm_delete: Wil je de bestelling werkelijk verwijderen?
confirm_end: Wil je de bestelling %{order} werkelijk sluiten? Dit kun je niet ongedaan maken. confirm_end: Wil je de bestelling %{order} werkelijk sluiten? Dit kun je niet ongedaan maken.
new_order: Nieuwe bestelling openen new_order: Nieuwe bestelling openen
@ -1117,6 +1128,15 @@ nl:
warning_ordered_stock: ! 'Opgelet: rood gemarkeerde artikelen zijn al besteld of gekocht door leden. Als je ze hier deselecteert, worden alle bestaande ledenbestellingen/-aankopen van deze artikelen verwijderd, en worden ze niet afgerekend.' warning_ordered_stock: ! 'Opgelet: rood gemarkeerde artikelen zijn al besteld of gekocht door leden. Als je ze hier deselecteert, worden alle bestaande ledenbestellingen/-aankopen van deze artikelen verwijderd, en worden ze niet afgerekend.'
new: new:
title: Nieuwe bestelling openen title: Nieuwe bestelling openen
receive:
add_article: Artikel toevoegen
consider_member_tolerance: verdelen over tolerantie van leden
notice: ! 'Bestelling ontvangen: %{msg}'
notice_none: Geen nieuwe artikelen te ontvangen
rest_to_stock: naar voorraad
submit: Bestelling ontvangen
surplus_options: ! 'Overschot verdelen over:'
title: ! 'Ontvangen: %{order}'
show: show:
action_end: Sluiten! action_end: Sluiten!
amounts: ! 'Totaal netto/bruto:' amounts: ! 'Totaal netto/bruto:'
@ -1148,6 +1168,12 @@ nl:
open: lopend open: lopend
update: update:
notice: De bestelling is bijgewerkt. notice: De bestelling is bijgewerkt.
update_order_amounts:
msg1:
msg2:
msg3:
msg4:
update_order_amounts:
pages: pages:
all: all:
new_page: Nieuwe pagina maken new_page: Nieuwe pagina maken
@ -1274,7 +1300,7 @@ nl:
private: Bericht wordt niet getoond in de Foodsoft inbox. private: Bericht wordt niet getoond in de Foodsoft inbox.
order_article: order_article:
units_to_order: Als je het aantal geleverde eenheden wijzigt, moet je daarna de hoeveelheden voor huishoudens aanpassen. Klik daarvoor op de artikelnaam. Als je dit vergeet, kunnen huishoudens belast worden voor artikelen die ze niet hebben gekregen! units_to_order: Als je het aantal geleverde eenheden wijzigt, moet je daarna de hoeveelheden voor huishoudens aanpassen. Klik daarvoor op de artikelnaam. Als je dit vergeet, kunnen huishoudens belast worden voor artikelen die ze niet hebben gekregen!
update_current_price: Ook prijs in huidige besteling aanpassen update_global_price: Prijs ook aanpassen voor toekomstige bestellingen
stock_article: stock_article:
copy: copy:
name: Wijzigen alsjeblieft name: Wijzigen alsjeblieft

View file

@ -6,7 +6,7 @@ Foodsoft::Application.routes.draw do
get "sessions/new" get "sessions/new"
root :to => redirect("/#{FoodsoftConfig.scope}") root :to => 'sessions#redirect_to_foodcoop'
scope '/:foodcoop' do scope '/:foodcoop' do