mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-02 02:11:33 +00:00
Restoring all changes of the last combined branch
This reverts commit 1e55e8a907.
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
Darkswarm.directive "integer", ->
|
||||
restrict: 'A'
|
||||
link: (scope, elem, attr) ->
|
||||
elem.bind 'input', ->
|
||||
elem.val Math.round(elem.val())
|
||||
@@ -11,6 +11,7 @@
|
||||
.small-5.medium-3.large-3.columns.text-right{"bo-if" => "!variant.product.group_buy"}
|
||||
|
||||
%input{type: :number,
|
||||
integer: true,
|
||||
value: nil,
|
||||
min: 0,
|
||||
placeholder: "0",
|
||||
@@ -26,14 +27,17 @@
|
||||
%span.bulk-input
|
||||
%input.bulk.first{type: :number,
|
||||
value: nil,
|
||||
integer: true,
|
||||
min: 0,
|
||||
"ng-model" => "variant.line_item.quantity",
|
||||
placeholder: "min",
|
||||
"ofn-disable-scroll" => true,
|
||||
max: "{{variant.on_demand && 9999 || variant.count_on_hand }}",
|
||||
name: "variants[{{variant.id}}]", id: "variants_{{variant.id}}"}
|
||||
%span.bulk-input{"bo-if" => "variant.product.group_buy"}
|
||||
%span.bulk-input
|
||||
%input.bulk.second{type: :number,
|
||||
"ng-disabled" => "!variant.line_item.quantity",
|
||||
integer: true,
|
||||
min: 0,
|
||||
"ng-model" => "variant.line_item.max_quantity",
|
||||
placeholder: "max",
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
padding: 4px 12px
|
||||
color: #fff
|
||||
.buttons
|
||||
margin-bottom: 0.1em
|
||||
.button
|
||||
height: auto
|
||||
top: 0px
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
/ insert_bottom "[data-hook='admin_tabs'], #admin_tabs[data-hook]"
|
||||
= tab :customers, :url => main_app.admin_customers_path
|
||||
@@ -68,7 +68,7 @@
|
||||
|
||||
.row.cta-container
|
||||
.columns.small-12
|
||||
%a.cta-hub{"ng-repeat" => "hub in producer.hubs | orderBy:'-active'",
|
||||
%a.cta-hub{"ng-repeat" => "hub in producer.hubs | visible | orderBy:'-active'",
|
||||
"bo-href" => "hub.path", "ofn-change-hub" => "hub",
|
||||
"bo-class" => "{primary: hub.active, secondary: !hub.active}"}
|
||||
%i.ofn-i_033-open-sign{"bo-if" => "hub.active"}
|
||||
|
||||
@@ -9,7 +9,11 @@
|
||||
.joyride-tip-guide{"ng-class" => "{ in: open }", "ng-show" => "open"}
|
||||
%span.joyride-nub.top
|
||||
.joyride-content-wrapper
|
||||
%h5 Your shopping cart
|
||||
%h5.text-left Your shopping cart
|
||||
.buttons.text-right
|
||||
%a.button.secondary.tiny.add_to_cart{ href: cart_path, type: :submit, "ng-disabled" => "Cart.dirty || Cart.empty()", "ng-class" => "{ dirty: Cart.dirty }" }
|
||||
{{ Cart.dirty ? 'Updating cart...' : (Cart.empty() ? 'Cart empty' : 'Edit your cart' ) }}
|
||||
%a.button.primary.tiny{href: checkout_path, "ng-disabled" => "Cart.dirty || Cart.empty()"} Checkout now
|
||||
%table
|
||||
%tr.product-cart{"ng-repeat" => "line_item in Cart.line_items_present()",
|
||||
"ng-controller" => "LineItemCtrl", "id" => "cart-variant-{{ line_item.variant.id }}"}
|
||||
|
||||
@@ -9,6 +9,6 @@
|
||||
= f.label :group_buy_0, 'No'
|
||||
%br.clear
|
||||
= f.field_container :group_buy_unit_size do
|
||||
= f.label :group_buy_unit_size
|
||||
= f.label :group_buy_unit_size, "Bulk unit size"
|
||||
%br
|
||||
= f.text_field :group_buy_unit_size
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
.row
|
||||
.alpha.six.columns
|
||||
= f.field_container :supplier do
|
||||
= f.label :supplier
|
||||
= f.collection_select(:supplier_id, Enterprise.is_primary_producer.managed_by(spree_current_user).by_name, :id, :name, {:include_blank => true}, {:class => "select2 fullwidth"})
|
||||
= f.error_message_on :supplier
|
||||
.four.columns
|
||||
= f.field_container :group_buy do
|
||||
= f.label :group_buy, 'Group buy?'
|
||||
%br
|
||||
.alpha.two.columns
|
||||
= f.radio_button :group_buy, '1', :checked => f.object.group_buy
|
||||
= f.label :group_buy_1, 'Yes'
|
||||
.omega.two.columns
|
||||
= f.radio_button :group_buy, '0', :checked => !f.object.group_buy
|
||||
= f.label :group_buy_0, 'No'
|
||||
.omega.six.columns
|
||||
= f.field_container :group_buy_unit_size do
|
||||
= f.label :group_buy_unit_size
|
||||
= f.text_field :group_buy_unit_size, :class => "fullwidth"
|
||||
@@ -19,9 +19,10 @@
|
||||
%h4
|
||||
Order confirmation
|
||||
%strong ##{@order.number}
|
||||
%p
|
||||
%h5
|
||||
%strong= "#{@order.bill_address.firstname} #{@order.bill_address.lastname}"
|
||||
completed the following order at your shopfront:
|
||||
= " <#{@order.email}>" if @order.email
|
||||
= @order.bill_address.phone if @order.bill_address.phone
|
||||
|
||||
= render 'order_summary'
|
||||
= render 'payment'
|
||||
|
||||
@@ -23,7 +23,7 @@ module OpenFoodNetwork
|
||||
when "bulk_coop_customer_payments"
|
||||
["Customer", "Date of Order", "Total Cost", "Amount Owing", "Amount Paid"]
|
||||
else
|
||||
["Supplier", "Product", "Unit Size", "Variant", "Weight", "Sum Total", "Sum Max Total", "Units Required", "Remainder"]
|
||||
["Supplier", "Product", "Bulk Unit Size", "Variant", "Weight", "Sum Total", "Sum Max Total", "Units Required", "Remainder"]
|
||||
end
|
||||
end
|
||||
|
||||
@@ -59,7 +59,7 @@ module OpenFoodNetwork
|
||||
sort_by: proc { |product| product.name },
|
||||
summary_columns: [ proc { |lis| lis.first.variant.product.supplier.name },
|
||||
proc { |lis| lis.first.variant.product.name },
|
||||
proc { |lis| lis.first.variant.product.group_buy ? (lis.first.variant.product.group_buy_unit_size || 0.0) : "" },
|
||||
proc { |lis| lis.first.variant.product.group_buy_unit_size || 0.0 },
|
||||
proc { |lis| "" },
|
||||
proc { |lis| "" },
|
||||
proc { |lis| lis.sum { |li| li.quantity * (li.variant.weight || 0) } },
|
||||
@@ -91,7 +91,7 @@ module OpenFoodNetwork
|
||||
else
|
||||
[ proc { |lis| lis.first.variant.product.supplier.name },
|
||||
proc { |lis| lis.first.variant.product.name },
|
||||
proc { |lis| lis.first.variant.product.group_buy ? (lis.first.variant.product.group_buy_unit_size || 0.0) : "" },
|
||||
proc { |lis| lis.first.variant.product.group_buy_unit_size || 0.0 },
|
||||
proc { |lis| lis.first.variant.full_name },
|
||||
proc { |lis| lis.first.variant.weight || 0 },
|
||||
proc { |lis| lis.sum { |li| li.quantity } },
|
||||
|
||||
@@ -2,7 +2,7 @@ require 'open_food_network/reports/bulk_coop_report'
|
||||
|
||||
module OpenFoodNetwork::Reports
|
||||
class BulkCoopAllocationReport < BulkCoopReport
|
||||
header "Customer", "Product", "Unit Size", "Variant", "Variant value", "Variant unit", "Weight", "Sum Total", "Total Available", "Unallocated", "Max quantity excess"
|
||||
header "Customer", "Product", "Bulk Unit Size", "Variant", "Variant value", "Variant unit", "Weight", "Sum Total", "Total Available", "Unallocated", "Max quantity excess"
|
||||
|
||||
organise do
|
||||
group { |li| li.variant.product }
|
||||
@@ -36,7 +36,7 @@ module OpenFoodNetwork::Reports
|
||||
columns do
|
||||
column { |lis| lis.first.order.bill_address.firstname + " " + lis.first.order.bill_address.lastname }
|
||||
column { |lis| lis.first.variant.product.name }
|
||||
column { |lis| lis.first.variant.product.group_buy ? (lis.first.variant.product.group_buy_unit_size || 0.0) : "" }
|
||||
column { |lis| lis.first.variant.product.group_buy_unit_size || 0.0 }
|
||||
column { |lis| lis.first.variant.full_name }
|
||||
column { |lis| OpenFoodNetwork::OptionValueNamer.new(lis.first.variant).value }
|
||||
column { |lis| OpenFoodNetwork::OptionValueNamer.new(lis.first.variant).unit }
|
||||
|
||||
@@ -22,11 +22,7 @@ module OpenFoodNetwork::Reports
|
||||
end
|
||||
|
||||
def group_buy_unit_size_f(lis)
|
||||
if lis.first.variant.product.group_buy
|
||||
group_buy_unit_size(lis)
|
||||
else
|
||||
""
|
||||
end
|
||||
group_buy_unit_size(lis)
|
||||
end
|
||||
|
||||
def total_amount(lis)
|
||||
|
||||
@@ -2,7 +2,7 @@ require 'open_food_network/reports/bulk_coop_report'
|
||||
|
||||
module OpenFoodNetwork::Reports
|
||||
class BulkCoopSupplierReport < BulkCoopReport
|
||||
header "Supplier", "Product", "Unit Size", "Variant", "Variant value", "Variant unit", "Weight", "Sum Total", "Units Required", "Unallocated", "Max quantity excess"
|
||||
header "Supplier", "Product", "Bulk Unit Size", "Variant", "Variant value", "Variant unit", "Weight", "Sum Total", "Units Required", "Unallocated", "Max quantity excess"
|
||||
|
||||
organise do
|
||||
group { |li| li.variant.product.supplier }
|
||||
|
||||
@@ -50,11 +50,12 @@ feature %q{
|
||||
scenario "can add a product to an existing order", js: true do
|
||||
login_to_admin_section
|
||||
visit '/admin/orders'
|
||||
page.find('td.actions a.icon-edit').click
|
||||
|
||||
targetted_select2_search @product.name, from: ".variant_autocomplete", dropdown_css: ".select2-search"
|
||||
click_edit
|
||||
|
||||
click_icon :plus
|
||||
targetted_select2_search @product.name, from: '#add_variant_id', dropdown_css: '.select2-drop'
|
||||
|
||||
click_link 'Add'
|
||||
|
||||
page.should have_selector 'td', text: @product.name
|
||||
@order.line_items(true).map(&:product).should include @product
|
||||
@@ -153,4 +154,21 @@ feature %q{
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
# Working around intermittent click failing
|
||||
# Possible causes of failure:
|
||||
# - the link moves
|
||||
# - the missing content (font icon only)
|
||||
# - the screen is not big enough
|
||||
# However, some operations before the click or a second click on failure work.
|
||||
#
|
||||
# A lot of people had similar problems:
|
||||
# https://github.com/teampoltergeist/poltergeist/issues/520
|
||||
# https://github.com/thoughtbot/capybara-webkit/issues/494
|
||||
def click_edit
|
||||
click_result = click_icon :edit
|
||||
unless click_result['status'] == 'success'
|
||||
click_icon :edit
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -82,7 +82,7 @@ feature %q{
|
||||
visit spree.edit_admin_product_path(product)
|
||||
|
||||
choose 'product_group_buy_1'
|
||||
fill_in 'Group buy unit size', :with => '10'
|
||||
fill_in 'Bulk unit size', :with => '10'
|
||||
|
||||
click_button 'Update'
|
||||
|
||||
|
||||
@@ -97,9 +97,7 @@ feature "shopping with variant overrides defined", js: true do
|
||||
|
||||
it "shows the correct prices in the checkout" do
|
||||
fill_in "variants[#{v1.id}]", with: "2"
|
||||
show_cart
|
||||
wait_until_enabled 'li.cart a.button'
|
||||
click_link 'Checkout now'
|
||||
click_checkout
|
||||
|
||||
page.should have_selector 'form.edit_order .cart-total', text: '$122.21'
|
||||
page.should have_selector 'form.edit_order .shipping', text: '$0.00'
|
||||
@@ -111,9 +109,7 @@ feature "shopping with variant overrides defined", js: true do
|
||||
describe "creating orders" do
|
||||
it "creates the order with the correct prices" do
|
||||
fill_in "variants[#{v1.id}]", with: "2"
|
||||
show_cart
|
||||
wait_until_enabled 'li.cart a.button'
|
||||
click_link 'Checkout now'
|
||||
click_checkout
|
||||
|
||||
complete_checkout
|
||||
|
||||
@@ -124,9 +120,7 @@ feature "shopping with variant overrides defined", js: true do
|
||||
|
||||
it "subtracts stock from the override" do
|
||||
fill_in "variants[#{v4.id}]", with: "2"
|
||||
show_cart
|
||||
wait_until_enabled 'li.cart a.button'
|
||||
click_link 'Checkout now'
|
||||
click_checkout
|
||||
|
||||
expect do
|
||||
expect do
|
||||
@@ -137,9 +131,7 @@ feature "shopping with variant overrides defined", js: true do
|
||||
|
||||
it "subtracts stock from stock-overridden on_demand variants" do
|
||||
fill_in "variants[#{v6.id}]", with: "2"
|
||||
show_cart
|
||||
wait_until_enabled 'li.cart a.button'
|
||||
click_link 'Checkout now'
|
||||
click_checkout
|
||||
|
||||
expect do
|
||||
expect do
|
||||
@@ -150,9 +142,7 @@ feature "shopping with variant overrides defined", js: true do
|
||||
|
||||
it "does not subtract stock from overrides that do not override count_on_hand" do
|
||||
fill_in "variants[#{v1.id}]", with: "2"
|
||||
show_cart
|
||||
wait_until_enabled 'li.cart a.button'
|
||||
click_link 'Checkout now'
|
||||
click_checkout
|
||||
|
||||
expect do
|
||||
complete_checkout
|
||||
@@ -163,9 +153,7 @@ feature "shopping with variant overrides defined", js: true do
|
||||
it "does not show out of stock flags on order confirmation page" do
|
||||
v4.update_attribute :count_on_hand, 0
|
||||
fill_in "variants[#{v4.id}]", with: "2"
|
||||
show_cart
|
||||
wait_until_enabled 'li.cart a.button'
|
||||
click_link 'Checkout now'
|
||||
click_checkout
|
||||
|
||||
complete_checkout
|
||||
|
||||
@@ -208,4 +196,11 @@ feature "shopping with variant overrides defined", js: true do
|
||||
place_order
|
||||
page.should have_content "Your order has been processed successfully"
|
||||
end
|
||||
|
||||
def click_checkout
|
||||
show_cart
|
||||
wait_until_enabled 'li.cart a.button'
|
||||
click_link 'Checkout now', match: :first
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user