Merge branch 'openfoodfoundation:master' into Add-Finnish-to-Flatpickr

This commit is contained in:
Jari Huttunen
2025-06-07 23:44:11 +03:00
committed by GitHub
29 changed files with 5187 additions and 133 deletions

View File

@@ -238,11 +238,6 @@ Rails/UniqueValidationWithoutIndex:
- 'app/models/spree/tax_category.rb'
- 'app/models/spree/zone.rb'
# Offense count: 1
Security/Open:
Exclude:
- 'app/services/image_importer.rb'
# Offense count: 23
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle.
@@ -288,21 +283,6 @@ Style/MissingRespondToMissing:
- 'app/models/spree/gateway.rb'
- 'app/models/spree/preferences/configuration.rb'
# Offense count: 22
# This cop supports safe autocorrection (--autocorrect).
Style/NestedModifier:
Exclude:
- 'spec/controllers/admin/subscriptions_controller_spec.rb'
- 'spec/controllers/line_items_controller_spec.rb'
- 'spec/controllers/spree/admin/orders_controller_spec.rb'
- 'spec/controllers/spree/orders_controller_spec.rb'
- 'spec/factories/order_factory.rb'
- 'spec/models/proxy_order_spec.rb'
- 'spec/models/spree/line_item_spec.rb'
- 'spec/services/place_proxy_order_spec.rb'
- 'spec/system/admin/payments_stripe_spec.rb'
- 'spec/system/admin/reports_spec.rb'
# Offense count: 38
Style/OpenStructUse:
Exclude:
@@ -331,12 +311,3 @@ Style/OptionalBooleanParameter:
- 'engines/order_management/app/services/order_management/stock/estimator.rb'
- 'lib/spree/core/controller_helpers/order.rb'
- 'spec/support/request/web_helper.rb'
# Offense count: 19
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: AllowedMethods, AllowedPatterns.
Style/ReturnNilInPredicateMethodDefinition:
Exclude:
- 'app/models/order_cycle.rb'
- 'app/serializers/api/admin/customer_serializer.rb'
- 'engines/order_management/app/services/order_management/subscriptions/validator.rb'

View File

@@ -5,7 +5,7 @@ class VoucherAdjustmentsController < BaseController
def create
if voucher_params[:voucher_code].blank?
@order.errors.add(:voucher_code, I18n.t('checkout.errors.voucher_not_found'))
@order.errors.add(:voucher_code, I18n.t('checkout.errors.voucher_code_blank'))
return render_error
end
@@ -43,7 +43,7 @@ class VoucherAdjustmentsController < BaseController
return false if @order.errors.present?
if voucher.nil?
@order.errors.add(:voucher_code, I18n.t('checkout.errors.voucher_not_found'))
@order.errors.add(:voucher_code, I18n.t('checkout.errors.voucher_code_not_found'))
return false
end

View File

@@ -345,8 +345,8 @@ class OrderCycle < ApplicationRecord
end
def orders_close_at_after_orders_open_at?
return if orders_open_at.blank? || orders_close_at.blank?
return if orders_close_at > orders_open_at
return false if orders_open_at.blank? || orders_close_at.blank?
return false if orders_close_at > orders_open_at
errors.add(:orders_close_at, :after_orders_open_at)
end

View File

@@ -25,7 +25,7 @@ module Api
end
def default_card_present?
return unless object.user
return false unless object.user
object.user.default_card.present?
end

View File

@@ -1,15 +1,23 @@
# frozen_string_literal: true
require "private_address_check"
require "private_address_check/tcpsocket_ext"
class ImageImporter
def import(url, product)
valid_url = URI.parse(url)
file = open(valid_url.to_s)
filename = File.basename(valid_url.path)
metadata = { custom: { origin: url } }
Spree::Image.create(
attachment: { io: file, filename: },
viewable_id: product.id,
viewable_type: Spree::Product,
)
image = Spree::Image.create do |img|
PrivateAddressCheck.only_public_connections do
img.attachment.attach(io: valid_url.open, filename:, metadata:)
end
end
product.image = image if image
rescue StandardError
# Any URL parsing or network error shouldn't impact the product import
# at all. Maybe we'll add UX for error handling later.
nil
end
end

View File

@@ -107,6 +107,9 @@ cy:
count_on_hand:
using_producer_stock_settings_but_count_on_hand_set: "rhaid bod yn wag oherwydd defnydd o osodiadau stoc cynhyrchwyr"
limited_stock_but_no_count_on_hand: "rhaid nodi hyn oherwydd gorfodi stoc gyfyngedig"
connected_apps:
vine:
api_request_error: "An error occured when connecting to Vine API"
messages:
confirmation: "Nid ywn cyfateb %{attribute}"
blank: "ni chaniateir ei adael yn wag"
@@ -539,6 +542,7 @@ cy:
not_found_voucher: "Ymddiheuriadau, ni chafwyd hyd i'r daleb honno; dylech wirio'r cod."
vine_voucher_redeemer_service:
errors:
vine_api: "Roedd nam wrth gyfathrebu gyda'r API"
redeeming_failed: "Methwyd â defnyddio'r daleb"
actions:
create_and_add_another: "Creu ac Ychwanegu Un arall"
@@ -604,6 +608,7 @@ cy:
image:
edit: Golygu
product_preview:
product_preview: Rhagolwg o gynnyrch
shop_tab: Siop
adjustments:
skipped_changing_canceled_order: "Nid yw'n bosib newid archeb a ganslwyd"
@@ -775,14 +780,35 @@ cy:
user_guide: Canllaw Defnyddiwr
map: Cefndir
dfc_product_imports:
connection_invalid_html: |
Methwyd â chysylltu â'ch cyfrif OIDC.
Gofynnir ichi adnewyddu eich cysylltiad OIDC yma:%{oidc_settings_link}
absent_variant:
reset: "Ailosod stoc"
index:
title: "Catalog cynnyrch DFC"
catalog_url: "%{count} cynnyrch i'w fewnforio gan: %{catalog_url}"
absent_products:
one: |
Nid yw un cynnyrch ar gael yn y catalog bellach.
Nodir nad yw ar gael trwy ailosod y stoc i sero.
other: |
%{count}nid yw cynnyrch ar gael yn y catalog bellach.
Nodir nad ydynt ar gael trwy ailosod y stoc i sero.
enterprise: "Mewnforio i fenter: %{enterprise_name}"
select_all: "Dewis/Dad-ddewis pob un"
update: Diweddaru
new: Newydd
selected:
zero: "dewiswyd 0"
one: "dewiswyd 1"
other: "Dewiswyd %{count}"
import: Mewnforio
invalid_url: Nid yw'r URL catalog yma'n ddilys.
import:
title: "Mewnforio catalog cynnyrch DFC"
imported_products: "Cynnyrch a fewnforiwyd: %{count}"
reset_products: "Ailosod stoc ar gyfer cynnyrch absennol: %{count}"
enterprise_fees:
index:
title: "Ffioedd Menter"
@@ -836,6 +862,7 @@ cy:
variants:
infinity: "Anfeidredd"
to_order_tip: "Nid oes gan eitemau a gynhyrchir ar gyfer archeb lefel stoc benodol, megis torthau o fara a gynhyrchir yn ffres ar gyfer archeb."
back_to_products_list: "Nôl at y rhestr cynnyrch"
editing_product: "Golygu cynnyrch"
tabs:
product_details: "Manylion Cynnyrch"
@@ -921,6 +948,7 @@ cy:
category_field_name: "Categori"
tax_category_field_name: "Categori Treth"
producer_field_name: "Cynhyrchydd"
select_unit_scale: Dewis graddfa uned
add_a_tag: Ychwanegu tag
clone:
success: Llwyddwyd i glonior cynnyrch
@@ -968,6 +996,7 @@ cy:
shipping_categories: Categorïau Cludo
dfc_import_form:
title: "Mewnforio o gatalog DFC"
enterprise: "Creu cynnyrch ar gyfer menter"
catalog_url: "URL catalog DFC"
preview: Rhagolwg
import:
@@ -1209,12 +1238,15 @@ cy:
own: Yn berchen
sells: Gwerthu
sells_tip: "Dim - nid yw'r fenter yn gwerthu i gwsmeriaid yn uniongyrchol.<br /> Fy Menter - Mae'r Fenter yn gwerthu ei chynnyrch ei hun i gwsmeriaid.<br /> Unrhyw un - Gall y Fenter werthu ei chynnyrch ei hun neu gynnyrch mentrau eraill.<br />"
external_billing_id: Rhif Adnabod Bilio Allanol
external_billing_id_placeholder: eg. INV-2024-123456
external_billing_id_tip: "Hwn yw'r rhif adnabod a ddefnyddir gan y system bilio allanol er mwyn adnabod y fenter hon."
visible_in_search: Yn amlwg wrth chwilio?
visible_in_search_tip: "Gall siopau fod yn: <br />1. yn weladwy'n gyhoeddus, yn ymddangos ar fap a rhestrau'r OFN; <br />2. Yn gudd ar fapiau a rhestrau ond gyda chyfeirnod trwy siopau eraill a gyda chysylltiad yn eu proffil; <br />3. Yn gwbl gudd."
visible: Cyhoeddus
not_visible: Cudd
hidden: Cuddio pob cyfeirnod
admin_only_legend: At ddefnydd gweinyddol yn unig
properties:
legend: "Manylion"
permalink:
@@ -1253,8 +1285,12 @@ cy:
enable_subscriptions_true: "Galluogwyd"
customer_names_in_reports: "Enwau Cwsmeriaid mewn Adroddiadau"
customer_names_tip: "Galluogi eich cyflenwyr i weld enwau eich cwsmeriaid mewn adroddiadau"
producers_to_edit_orders: "Galluogi cynhyrchwyr i olygu archebion"
producers_to_edit_orders_tip: "Galluogi eich cyflenwyr i weld archebion sy'n cynnwys eu cynnyrch nhw, a golygu'r nifer a'r pwysau ar gyfer eu cynnyrch nhw'n unig."
customer_names_false: "Analluogwyd"
customer_names_true: "Galluogwyd"
customer_contacts_in_reports: "Manylion cyswllt cwsmer mewn adroddiadau"
customer_contacts_tip: "Galluogi eich cyflenwyr i weld eich ebost cwsmer a rhifau ffôn mewn adroddiadau"
customer_contacts_false: "Analluogwyd"
customer_contacts_true: "Galluogwyd"
producers_edit_orders_false: "Analluogwyd"
@@ -1385,6 +1421,7 @@ cy:
enable: "Adnoddau"
disable: "Datgysylltu"
need_to_be_manager: "Only managers can connect apps."
vine_api_key: "VINE API Key"
vine_secret: "VINE secret"
description: "To enable VINE for your enterprise, enter your API key and secret."
link_label_html: "VINE<i class=\"icon-external-link\"></i>"
@@ -1445,8 +1482,10 @@ cy:
contact_name: Enw Cyswllt
edit:
editing: 'Gosodiadau:'
back_link: Nôl at y rhestr o fentrau
new:
title: Menter Newydd
back_link: Nôl at y rhestr o fentrau
welcome:
welcome_title: Croeso i'r Open Food Network!
welcome_text: 'Rydych chi wedi llwyddo i greu '
@@ -1631,6 +1670,7 @@ cy:
promo_image_remove: "Dileu Delwedd"
promo_image_remove_confirm: "Bydd y ddelwedd hyrwyddo'n cael ei dileu yn syth ar ôl i chi gadarnhau."
white_label_logo_label: "Defnyddir y Logo yn ffrynt y siop"
white_label_logo_hint: 217 x 44 picsel
white_label_logo_remove: "Dileu Delwedd"
white_label_logo_remove_confirm: "Ydych chin siŵr eich bod chi am ddileur logo yma?"
user_guide_link:
@@ -1677,6 +1717,7 @@ cy:
email_confirmation: "Mae cadarnhad e-bost yn yr arfaeth. Rydym wedi anfon e-bost cadarnhad at %{email}."
not_visible: "nid yw %{enterprise} yn weladwy ac felly ni ellir ei ddarganfod ar y map nac mewn chwiliadau"
reports:
none: dim
deprecated: "Anghymeradwywyd yr adroddiad hwn a chaiff ei ddileu mewn datganiad yn y dyfodol"
hidden_field: "< Cudd >"
unitsize: MAINT UNEDAU
@@ -1701,6 +1742,7 @@ cy:
pack_by_customer: Pecyn fesul Cwsmer
pack_by_supplier: Pecyn fesul Cyflenwr
pack_by_product: Pecynnu yn ôl Cynnyrch
pay_your_suppliers: Talu eich cyflenwyr
display:
report_is_big: "Maer adroddiad hwn yn fawr, a gall arafu eich dyfais"
display_anyway: "Arddangos prun bynnag"
@@ -1747,6 +1789,8 @@ cy:
enterprise_fee_summary:
name: "Crynodeb Ffioedd y Fenter"
description: "Crynodeb o Ffioedd y Fenter a gasglwyd"
suppliers:
name: Cyflenwyr
enterprise_fees_with_tax_report_by_order: "Ffioedd Menter gydag Adroddiad Treth Fesul Archeb"
enterprise_fees_with_tax_report_by_producer: "Ffioedd Menter gydag Adroddiad Treth Fesul Cynhyrchydd"
errors:
@@ -2042,6 +2086,8 @@ cy:
no_shipping_methods_available: Nid yw'n bosibl talu oherwydd diffyg opsiynau cludo. Cysylltwch â pherchennog y siop.
voucher_not_found: Heb ei ganfod
add_voucher_error: Roedd gwall wrth ychwanegur daleb
create_voucher_error: "Roedd nam wrth greu'r daleb: %{error}"
voucher_redeeming_error: Roedd nam wrth geisio defnyddio eich taleb
shops:
hubs:
show_closed_shops: "Dangos siopau caeëdig"
@@ -2656,6 +2702,7 @@ cy:
confirm_hub_change: "Wyt ti'n siwr? Bydd hyn yn newid yr hwb a ddewiswyd gennych ac yn cael gwagio'r holl eitemau o'ch basged siopa."
confirm_oc_change: "Wyt ti'n siwr? Bydd hyn yn newid y cylch archebu a ddewiswyd gennych ac yn gwagio unrhyw eitemau o'ch basged siopa."
location_placeholder: "Teipiwch leoliad ..."
gmap_load_failure: "Nid oedd modd llwytho'r map. Gofynnir ichi wirio gosodiadau'ch porwr a chaniatáu cwcis 3ydd parti ar gyfer y wefan hon."
error_required: "ni chaniateir ei adael yn wag"
error_number: "rhaid defnyddio rhif"
error_email: "rhaid defnyddio cyfeiriad e-bost"
@@ -3049,9 +3096,11 @@ cy:
report_header_hub_code: Cod Hwb
report_header_hub_id: Dull Adnabod Hyb
report_header_hub_business_number: "Rhif Busnes yr Hyb"
report_header_hub_external_billing_id: "Hyb Rhif Adnabod Bilio Allanol"
report_header_hub_legal_name: "Enw Cyfreithiol yr Hyb"
report_header_hub_contact_name: "Enw Cyswllt yr Hyb"
report_header_hub_email: "Ebost Cyhoeddus yr Hyb"
report_header_hub_contact_email: Ebost Cyswllt yr Hyb
report_header_hub_owner_email: Ebost Perchennog yr Hyb
report_header_hub_phone: "Rhif Ffôn yr Hyb"
report_header_hub_address_line1: "Llinell 1af Cyfeiriad yr Hyb"
@@ -3123,6 +3172,7 @@ cy:
report_header_producer_suburb: Maestref y Cynhyrchydd
report_header_producer_tax_status: Statws Treth y Cynhyrchwr
report_header_producer_charges_sales_tax?: Cofrestrwyd ar gyfer GST/TAW
report_header_producer_address: Cyfeiriad y cynhyrchydd
report_header_unit: Uned
report_header_group_buy_unit_quantity: Nifer Unedau Grŵp Prynu
report_header_cost: Cost
@@ -3167,6 +3217,7 @@ cy:
report_header_item_fees_price: "Eitem + Ffioedd (%{currency})"
report_header_admin_handling_fees: "Gweinyddiaeth a Thrin (%{currency})"
report_header_ship_price: "Anfon(%{currency})"
report_header_total_tax_on_product: "Cyfanswm treth ar y cynnyrch (%{currency})"
report_header_pay_fee_price: "Talu Ffi (%{currency})"
report_header_total_price: "Cyfanswm (%{currency})"
report_header_product_total_price: "Cyfanswm y Cynnyrch (%{currency})"
@@ -3183,7 +3234,11 @@ cy:
report_header_total_units: Cyfanswm Unedau
report_header_sum_max_total: "Cyfanswm Swm Uchafswm"
report_header_total_excl_vat: "Cyfanswm heb dreth (%{currency_symbol})"
report_header_total_fees_excl_tax: "Cyfanswm ffioedd heb dreth (%{currency_symbol})"
report_header_total_tax_on_fees: "Cyfanswm treth ar ffioedd (%{currency_symbol})"
report_header_total: "Cyfanswm (%{currency_symbol})"
report_header_total_incl_vat: "Cyfanswm gan gynnwys treth (%{currency_symbol})"
report_header_total_excl_fees_and_tax: "Cyfanswm heb ffioedd a threth (%{currency_symbol})"
report_header_temp_controlled: Rheoli tymheredd?
report_header_shipment_state: "Sir Anfon"
report_header_shipping_method: "Dull anfon"
@@ -3893,6 +3948,7 @@ cy:
error: Webhook endpoint failed to delete
spree:
order_updated: "Diweddarwyd yr archeb"
cannot_perform_operation: "Methu â chyflawni'r weithred hon"
add_country: "Ychwanegu gwlad"
add_state: "Ychwanegu sir"
adjustment: "Addasiad"
@@ -4029,6 +4085,7 @@ cy:
tax_rate_amount_explanation: "Mae cyfraddau treth yn swm degol i helpu gyda chyfrifiadau, (h.y. os yw'r gyfradd dreth yn 5% yna nodwch 0.05)"
included_in_price: "Wedi'i gynnwys yn y Pris"
show_rate_in_label: "Dangos cyfradd yn y label"
back_to_tax_rates_list: "Nôl at y rhestr o gyfraddau treth"
tax_settings: "Gosodiadau Treth"
zones: "Parthau"
new_zone: "Parth Newydd"
@@ -4041,6 +4098,7 @@ cy:
iso_name: "Enw ISO"
states_required: "Angen y Siroedd"
editing_country: "Yn golygu'r wlad "
back_to_countries_list: "Nôl at y rhestr o Wledydd"
states: "Siroedd"
abbreviation: "Talfyriad"
new_state: "Sir Newydd"
@@ -4205,6 +4263,7 @@ cy:
continue: "Parhau"
new:
new_return_authorization: "Awdurdodi Dychwelyd nwyddau newydd"
back_to_return_authorizations_list: "Nôl at y Rhestr Awdurdodi Dychwelyd cynnyrch"
continue: "Parhau"
edit:
receive: "derbyn"
@@ -4417,6 +4476,8 @@ cy:
new_product: "Cynnyrch Newydd"
supplier: "Cyflenwr"
supplier_select_placeholder: "Dewis cyflenwr"
search_for_suppliers: "Chwilio am gyflenwyr"
search_for_units: "Chwilio am Unedau"
product_name: "Enw Cynnyrch"
units: "Maint yr Uned"
value: "Gwerth"
@@ -4462,6 +4523,7 @@ cy:
reports:
table:
select_and_search: "Dewis hidlwyr a chlicio ar %{option} i gael mynediad i'ch data."
hidden_customer_details_tip: "Os nad yw enwau a/neu fanylion cyswllt cwsmeriaid yn weladwy, gallwch ofyn i'r dosbarthwr ddiweddaru dewisiadau'r siop i ganiatáu i gyflenwyr weld manylion cwsmeriaid mewn adroddiadau."
products_and_inventory:
all_products:
message: "Noder y caiff lefelau stoc eu hadrodd o restrau cynnyrch cyflenwyr yn unig. Os ydych yn defnyddior rhestr stoc i reoli maint eich stoc, caiff y gwerthoedd hyn eu hanwybyddu yn yr adroddiad hwn."
@@ -4480,6 +4542,7 @@ cy:
form:
disabled: "Analluogwyd?"
email: "E-bost"
admin: "Gweinyddwr uwch?"
enterprise_limit: "Uchafswm Mentrau"
confirm_password: "Cadarnhau Cyfrinair"
password: "Cyfrinair"
@@ -4530,6 +4593,7 @@ cy:
total: "Cyfanswm"
billing_address_name: "Enw"
taxons:
back_to_list: "Nôl at y Rhestr Categorïau Cynnyrch"
index:
title: "Categorïau Cynnyrch"
new_taxon: 'Categori cynnyrch newydd'
@@ -4630,6 +4694,7 @@ cy:
invoice_attached_text: Gweler ynghlwm anfoneb ar gyfer eich archeb ddiweddar gan
user_mailer:
reset_password_instructions:
dear_customer: "Annwyl gwsmer"
request_sent_text: |
Derbyniwyd cais i ail-osod eich cyfrinair.
Os nad chi wnaeth y cais yma, anwybyddwch yr ebost yma.

View File

@@ -5,6 +5,8 @@ de_CH:
spree/product: Produkt
spree/shipping_method: Lieferoption
attributes:
spree/image:
attachment: Anhang
spree/order/ship_address:
address1: "Lieferadresse Straße + Hausnummer"
address2: "Lieferadresse Adresszusatz"
@@ -13,6 +15,14 @@ de_CH:
phone: "Telefonnummer"
firstname: "Vorname"
lastname: "Nachname"
zipcode: "Postleitzahl der Lieferadresse"
spree/order/bill_address:
address1: "Rechnungsadresse (Strasse + Hausnummer)"
zipcode: "Postleitzahl der Rechnungsadresse"
city: "Ort der Rechnungsadresse"
country: "Land der Rechnungsadresse"
firstname: "Rechnungsadresse Vorname"
lastname: "Rechnungsadresse Nachname"
spree/user:
password: "Passwort"
password_confirmation: "Passwort erneut eingeben"
@@ -39,7 +49,9 @@ de_CH:
primary_taxon: "Produktkategorie"
shipping_category_id: "Lieferkategorie"
supplier: "Lieferant"
variant_unit: "Einheit"
variant_unit_name: "Name der Varianteneinheit"
unit_value: "Einheitswert"
spree/credit_card:
base: "Kreditkarte"
number: "Kreditkartennummer"
@@ -50,6 +62,8 @@ de_CH:
orders_close_at: Schliesszeitpunkt
variant_override:
count_on_hand: "Verfügbar"
spree/payment_method/calculator:
preferred_flat_percent: "Rechner Pauschalprozentsatz:"
errors:
models:
spree/user:
@@ -96,6 +110,8 @@ de_CH:
aspect_ratio_is_not: "muss ein Seitenverhältnis von %{aspect_ratio} haben"
aspect_ratio_unknown: "hat ein unbekanntes Seitenverhältnis"
image_not_processable: "ist kein gültiges Bild"
not_found:
title: "Die gesuchte Seite existiert nicht (404)"
stripe:
error_code:
incorrect_number: "Die Kreditkartennummer ist fehlerhaft."
@@ -445,11 +461,15 @@ de_CH:
title: Lieferkategorien
producers:
title: Unsere Produzenten
per_page: "%{count} Artikel pro Seite"
colums: Spalten
columns:
image: Bild
name: Name
unit_scale: Einheit
unit: Einheit
unit_value: Einheitswert
display_as: Einheit anzeigen als
price: Preis
producer: Produzent
category: Kategorie
@@ -477,9 +497,11 @@ de_CH:
clone: Duplizieren
delete: Löschen
remove: Löschen
preview: Vorschau
image:
edit: Bearbeiten
product_preview:
product_preview: Produktvorschau
shop_tab: Laden
adjustments:
skipped_changing_canceled_order: "Eine stornierte Bestellung kann nicht geändert werden."
@@ -558,6 +580,7 @@ de_CH:
terms_of_service: "Nutzungsbedingungen"
delete: "Löschen"
confirm_delete: "Sind Sie sicher, dass Sie die derzeitigen Nutzungsbedingungen löschen möchten?"
attachment: "Anhang"
number_localization:
number_localization_settings: "Zahlenformateinstellungen"
enable_localized_number: "Verwenden Sie die internationale Tausendertrennungslogik"
@@ -695,7 +718,12 @@ de_CH:
index:
header:
title: Produkte verwalten
content:
loading: Laden Ihrer Produkte
filters:
search_products: Nach Produkten suchen
all_producers: Alle Produzenten
all_categories: Alle Kategorien
producers:
label: Unsere Produzenten
categories:
@@ -705,10 +733,24 @@ de_CH:
search: Suche
sort:
pagination:
products_total_html:
one: "<strong>%{count} Produkt</strong> für Ihre Suchkriterien gefunden. Es werden %{from} bis %{to} angezeigt."
other: "<strong>%{count} Produkte</strong> zu Ihren Suchkriterien gefunden. Es werden %{from} bis %{to} angezeigt."
per_page:
show: Anzeigen
per_page: "%{num} pro Seite"
clear_search: Suche zurücksetzen
no_products:
no_products_found: Keine Produkte gefunden.
table:
changed_summary:
one: "%{count} Produkt geändert."
other: "%{count} Produkte geändert."
error_summary:
invalid:
one: "%{count} Produkt konnte nicht gespeichert werden. Bitte überprüfen Sie die Fehler und versuchen Sie es erneut."
other: "%{count} Produkte konnten nicht gespeichert werden. Bitte überprüfen Sie den Fehler und versuchen Sie es erneut."
reset: Änderungen verwerfen
save: Änderungen speichern
product_variant_row:
new_variant: Neue Produktvariante
@@ -719,6 +761,7 @@ de_CH:
category_field_name: "Kategorie"
tax_category_field_name: "Steuerkategorie"
producer_field_name: "Produzent"
select_unit_scale: Einheit auswählen
add_a_tag: Stichwort hinzufügen
product_import:
title: Produkte importieren
@@ -759,6 +802,8 @@ de_CH:
product_categories: Produktkategorien
tax_categories: Steuerkategorien
shipping_categories: Lieferkategorien
dfc_import_form:
preview: Vorschau
import:
review: Überprüfung
import: Importieren
@@ -778,6 +823,7 @@ de_CH:
no_name: Für einige Produkte ist kein Name definiert.
blank_enterprise: Für einige Produkte ist kein Unternehmen definiert.
reset_absent?: Fehlende Produkte zurücksetzen?
reset_absent_tip: Setzen Sie den Bestand für alle vorhandenen Produkte, die nicht in der Datei vorhanden sind, auf Null
overwrite_all: Alle überschreiben
overwrite_empty: Überschreiben, wenn leer
default_stock: Lagerbestand setzen
@@ -1116,6 +1162,10 @@ de_CH:
rate: Steuersatz
customers: Kunde
active: Aktiv?
white_label:
hide_ofn_navigation: "OFN-Navigation ausblenden"
hide_groups_tab: "Gruppenregisterkarte im Schaufenster ausblenden"
create_custom_tab: "Benutzerdefinierte Registerkarte im Schaufenster erstellen"
connected_apps:
affiliate_sales_data:
loading: "Wird geladen ..."
@@ -1175,8 +1225,10 @@ de_CH:
contact_name: Kontaktname
edit:
editing: 'Einstellungen:'
back_link: Zurück zur Unternehmensliste
new:
title: Neues Unternehmen
back_link: Zurück zur Unternehmensliste
welcome:
welcome_title: Willkommen im Open Food Schweiz!
welcome_text: 'Erfolgreich erstellt:'
@@ -1242,6 +1294,7 @@ de_CH:
checkout_options:
back_end: "Nur im Backoffice"
cancel: "Stornieren"
checkout_options: "Checkout Optionen"
distributor: "Verteilstelle"
payment_methods: "Zahlungsarten"
save: "Speichern"
@@ -1252,6 +1305,7 @@ de_CH:
edit: "1. Allgemeine Einstellungen"
incoming: "2. Eingehende Produkte"
outgoing: "3. Ausgehende Produkte"
checkout_options: "4. Checkout Optionen"
exchange_form:
pickup_time_tip: Datum und Uhrzeit, ab wann Bestellungen dieses Bestellzylus für den Kunden bereit sind.
pickup_instructions_placeholder: "Informationen zur Abholung"
@@ -1339,6 +1393,7 @@ de_CH:
logo_label: "Logo"
logo_remove: "Bild löschen"
logo_remove_confirm: "Das Logo wird sofort nach Ihrer Bestätigung gelöscht."
promo_image_label: "Promo-Bild"
promo_image_note1: 'BITTE BEACHTEN SIE:'
promo_image_note2: Das hier hochgeladene Bild wird auf 1200 x 260 Pixel beschnitten.
promo_image_note3: Das Bild wird oben auf der Profilseite Ihres Unternehmens und in Pop-ups angezeigt.
@@ -1400,11 +1455,14 @@ de_CH:
lettuce_share: LettuceShare
payment_methods: Zahlungsarten
delivery: Lieferungen
sales_tax_totals_by_producer: Umsatzsteuersumme nach Produzent
sales_tax_totals_by_order: Umsatzsteuersumme nach Bestellung
tax_types: Steuerarten
tax_rates: Steuersätze
pack_by_customer: Packliste nach Kunden
pack_by_supplier: Packliste nach Lieferanten
pack_by_product: Packliste nach Produkten
pay_your_suppliers: Bezahlen Sie Ihre Lieferanten
orders_and_distributors:
name: Bestellungen und Verteilstellen
description: Bestellungen mit Verteilstellendetails
@@ -1433,6 +1491,10 @@ de_CH:
enterprise_fee_summary:
name: "Unternehmensgebühren"
description: "Bericht der erhobenen Gebühren"
suppliers:
name: Lieferanten
enterprise_fees_with_tax_report_by_order: "Unternehmensgebühren mit Steuerbericht nach Auftrag"
enterprise_fees_with_tax_report_by_producer: "Unternehmensgebühren mit Steuerbericht nach Produzent"
errors:
no_report_type: "Bitte wählen Sie eine Berichtsart aus."
report_not_found: "Bericht wurde nicht gefunden."
@@ -1684,6 +1746,7 @@ de_CH:
invalid_email: "Bitte geben Sie eine gültige E-Mail-Adresse ein."
select_a_shipping_method: Bitte wählen Sie eine Lieferoption aus.
select_a_payment_method: Bitte wählen Sie eine Zahlungsart aus.
no_shipping_methods_available: Eine Kaufabwicklung ist aufgrund fehlender Versandoptionen nicht möglich. Bitte kontaktieren Sie den Shop-Betreiber.
voucher_not_found: Nicht gefunden
shops:
hubs:
@@ -1751,10 +1814,11 @@ de_CH:
invoice_column_price: "Preis"
invoice_column_item: "Artikel"
invoice_column_qty: "Menge"
invoice_column_unit_price_with_taxes: "Stückpreis (inkl. Steuern)"
invoice_column_unit_price_without_taxes: "Stückpreis (zzgl. Steuern)"
invoice_column_unit_price_with_taxes: "Stückpreis (inkl. MwSt.)"
invoice_column_unit_price_without_taxes: "Stückpreis (ohne MwSt.)"
invoice_column_price_with_taxes: "Gesamtpreis (inkl. Steuern)"
invoice_column_price_without_taxes: "Gesamtpreis (zzgl. Steuern)"
invoice_column_price_per_unit_without_taxes: "Preis pro Einheit (ohne MwSt.)"
invoice_column_tax_rate: "Steuersatz"
invoice_tax_total: "Umsatzsteuersumme:"
tax_invoice: "RECHNUNG"
@@ -2377,7 +2441,7 @@ de_CH:
title: "Art des Profils"
headline: "Wählen Sie bitte die Profilart für %{enterprise} aus!"
question: "Ist das Unternehmen ein Produzent?"
yes_producer: "Ja, es ist ein Produzent."
yes_producer: "Ja, ich bin ein Produzent."
no_producer: "Nein, es ist kein Produzent."
producer_field_error: "Bitte wählen Sie: Ist das Unternehmen ein Produzent?"
yes_producer_help: "Produzenten stellen leckere Lebensmittel oder Getränke her. Sie sind ein Produzent, wenn Sie anbauen, brauen, backen, fermentieren, melken oder sonst wie Lebenmittel produzieren."
@@ -3761,6 +3825,8 @@ de_CH:
viewing: "Angezeigt wird %{start} bis %{end}."
print_invoices: "Rechnungen drucken"
resend_confirmation: "Bestätigung erneut senden"
selected:
zero: "Keine Bestellung ausgewählt"
sortable_header:
payment_state: "Zahlungsstatus"
shipment_state: "Lieferstatus"
@@ -3986,8 +4052,10 @@ de_CH:
display_name: "Variantenname"
display_as_placeholder: 'z. B. 2 kg'
display_name_placeholder: 'z. B. Tomaten'
unit_scale: "Einheit"
unit: Einheit
price: Preis
unit_value: Einheitswert
variant_category: Kategorie
autocomplete:
out_of_stock: "nicht vorrätig"
@@ -4094,6 +4162,7 @@ de_CH:
invoice_attached_text: Im Anhang finden Sie die Rechnung Ihrer letzten Bestellung vom
user_mailer:
reset_password_instructions:
dear_customer: "Liebe Kundin, lieber Kunde,"
request_sent_text: |
Wir haben eine Anfrage zum Zurücksetzen Ihres Passworts erhalten.
Sollten Sie kein neues Passwort angefordert haben, ignorieren Sie bitte diese E-Mail.
@@ -4201,6 +4270,7 @@ de_CH:
total: Gesamt
paid?: Bezahlt?
status: Status
completed: Abgeschlossen
cancelled: Storniert
saved_cards:
default?: Standard?

View File

@@ -2172,7 +2172,8 @@ en:
select_a_shipping_method: Select a shipping method
select_a_payment_method: Select a payment method
no_shipping_methods_available: Checkout is not possible due to absence of shipping options. Please contact the shop owner.
voucher_not_found: Not found
voucher_code_blank: Please enter a valid voucher code
voucher_code_not_found: invalid. It either doesn't exist or has been redeemed fully
add_voucher_error: There was an error while adding the voucher
create_voucher_error: "There was an error while creating the voucher: %{error}"
voucher_redeeming_error: There was an error while trying to redeem your voucher

View File

@@ -898,6 +898,7 @@ en_CA:
search_for_categories: Search for categories
select_category: Select category
all_categories: All categories
select_tag: Select tag
producers:
label: Producers
categories:
@@ -1017,6 +1018,7 @@ en_CA:
no_name: No name
blank_enterprise: some products do not have an enterprise associated
reset_absent?: Reset absent products
reset_absent_tip: Set stock to zero for all existing products not present in the file
overwrite_all: Overwrite all
overwrite_empty: Overwrite if empty
default_stock: Set stock level
@@ -1662,6 +1664,7 @@ en_CA:
logo_hint: 300 x 300 pixels
logo_remove: "Remove Image"
logo_remove_confirm: "The logo will be removed immediately after you confirm."
promo_image_label: "Promo image"
promo_image_note1: 'PLEASE NOTE:'
promo_image_note2: Any promo image uploaded here will be cropped to 1200 x 260.
promo_image_note3: The promo image is displayed at the top of an enterprise's profile page and pop-ups.
@@ -1669,6 +1672,7 @@ en_CA:
promo_image_remove: "Remove Image"
promo_image_remove_confirm: "The promo image will be removed immediately after you confirm."
white_label_logo_label: "Logo used in shopfront"
white_label_logo_hint: 217 x 44 pixels
white_label_logo_remove: "Remove Image"
white_label_logo_remove_confirm: "Are you sure you want to remove this logo?"
user_guide_link:
@@ -4261,6 +4265,7 @@ en_CA:
orders:
add_product:
cannot_add_item_to_canceled_order: "You cannot add an item to a cancelled order."
cannot_add_item_to_shipped_order: "Cannot add item to shipped order"
include_out_of_stock_variants: "Include variants with no available stock"
shipment:
mark_as_shipped_message_html: "This will mark the order as shipped. <br />Are you sure you want to proceed?"

View File

@@ -898,6 +898,7 @@ en_GB:
search_for_categories: Search for categories
select_category: Select category
all_categories: All categories
select_tag: Select tag
producers:
label: Producer
categories:
@@ -1017,6 +1018,7 @@ en_GB:
no_name: No name
blank_enterprise: some products do not have an enterprise defined
reset_absent?: Reset absent products
reset_absent_tip: Set stock to zero for all existing products not present in the file
overwrite_all: Overwrite all
overwrite_empty: Overwrite if empty
default_stock: Set stock level
@@ -1662,6 +1664,7 @@ en_GB:
logo_hint: 300 x 300 pixels
logo_remove: "Remove Image"
logo_remove_confirm: "The logo will be removed immediately after you confirm."
promo_image_label: "Promo image"
promo_image_note1: 'PLEASE NOTE:'
promo_image_note2: Any promo image uploaded here will be cropped to 1200 x 260.
promo_image_note3: The promo image is displayed at the top of an enterprise's profile page and pop-ups.
@@ -1669,6 +1672,7 @@ en_GB:
promo_image_remove: "Remove Image"
promo_image_remove_confirm: "The promo image will be removed immediately after you confirm."
white_label_logo_label: "Logo used in shopfront"
white_label_logo_hint: 217 x 44 pixels
white_label_logo_remove: "Remove Image"
white_label_logo_remove_confirm: "Are you sure you want to remove this logo?"
user_guide_link:
@@ -4268,6 +4272,7 @@ en_GB:
orders:
add_product:
cannot_add_item_to_canceled_order: "Cannot add item to canceled order"
cannot_add_item_to_shipped_order: "Cannot add item to shipped order"
include_out_of_stock_variants: "Include variants with no available stock"
shipment:
mark_as_shipped_message_html: "This will mark the order as Shipped.<br />Are you sure you want to proceed?"

4892
config/locales/fi.yml Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -898,6 +898,7 @@ fr_CA:
search_for_categories: Rechercher des catégories
select_category: Sélectionner catégorie
all_categories: Toutes les catégories
select_tag: Choisir le tag
producers:
label: Producteurs
categories:
@@ -1019,6 +1020,7 @@ fr_CA:
no_name: Pas de nom
blank_enterprise: certains produits n'ont pas d'entreprise associée
reset_absent?: Mettre à zéro le produits absents du fichier
reset_absent_tip: Mettre le stock à zéro pour tous les produits existants non présents dans le fichier
overwrite_all: Modifier tous
overwrite_empty: Modifier si vide
default_stock: Indiquer niveau de stock
@@ -1666,6 +1668,7 @@ fr_CA:
logo_hint: 300 x 300 pixels
logo_remove: "Supprimer l'image"
logo_remove_confirm: "Le logo sera supprimé juste après votre confirmation."
promo_image_label: "image promotionnelle"
promo_image_note1: 'ATTENTION:'
promo_image_note2: Votre bannière doit mesurer 1200 x 260, toute image non conforme sera rognée.
promo_image_note3: La bannière est affichée en haut de la page de votre entreprise et dans sa version condensée (pop-up).
@@ -1673,6 +1676,7 @@ fr_CA:
promo_image_remove: "Supprimer l'image"
promo_image_remove_confirm: "La bannière sera supprimée juste après votre confirmation."
white_label_logo_label: "logo utilisé pour la boutique"
white_label_logo_hint: 217 x 44 pixels
white_label_logo_remove: "Supprimer l'image"
white_label_logo_remove_confirm: "Etes-vous certain.e de vouloir supprimer le logo?"
user_guide_link:
@@ -4315,6 +4319,7 @@ fr_CA:
orders:
add_product:
cannot_add_item_to_canceled_order: "Il n'est pas possible d'ajouter des produits sur une commande annulée."
cannot_add_item_to_shipped_order: "Il n'est pas possible d'ajouter des produits sur une commande livrée."
include_out_of_stock_variants: "Inclure les variantes sans stock"
shipment:
mark_as_shipped_message_html: "Cette action marque la commande comme livrée. <br /> Etes-vous certain de vouloir faire ceci? "

View File

@@ -41,53 +41,53 @@ module OrderManagement
private
def shipping_method_allowed?
return unless shipping_method
return if shipping_method.distributors.include?(shop)
return false unless shipping_method
return false if shipping_method.distributors.include?(shop)
errors.add(:shipping_method, :not_available_to_shop, shop: shop.name)
end
def payment_method_allowed?
return unless payment_method
return if payment_method.distributors.include?(shop)
return false unless payment_method
return false if payment_method.distributors.include?(shop)
errors.add(:payment_method, :not_available_to_shop, shop: shop.name)
end
def payment_method_type_allowed?
return unless payment_method
return if Subscription::ALLOWED_PAYMENT_METHOD_TYPES.include? payment_method.type
return false unless payment_method
return false if Subscription::ALLOWED_PAYMENT_METHOD_TYPES.include? payment_method.type
errors.add(:payment_method, :invalid_type)
end
def ends_at_after_begins_at?
# Only validates ends_at if it is present
return if begins_at.blank? || ends_at.blank?
return if ends_at > begins_at
return false if begins_at.blank? || ends_at.blank?
return false if ends_at > begins_at
errors.add(:ends_at, :after_begins_at)
end
def customer_allowed?
return unless customer
return if customer.enterprise == shop
return false unless customer
return false if customer.enterprise == shop
errors.add(:customer, :does_not_belong_to_shop, shop: shop.name)
end
def schedule_allowed?
return unless schedule
return if schedule.coordinators.include?(shop)
return false unless schedule
return false if schedule.coordinators.include?(shop)
errors.add(:schedule, :not_coordinated_by_shop, shop: shop.name)
end
def credit_card_ok?
return unless customer && payment_method
return unless stripe_payment_method?(payment_method)
return false unless customer && payment_method
return false unless stripe_payment_method?(payment_method)
return errors.add(:payment_method, :charges_not_allowed) unless customer.allow_charges
return if customer.user&.default_card.present?
return false if customer.user&.default_card.present?
errors.add(:payment_method, :no_default_card)
end
@@ -97,7 +97,7 @@ module OrderManagement
end
def subscription_line_items_present?
return if subscription_line_items.any? { |sli|
return false if subscription_line_items.any? { |sli|
sli.quantity > 0 && !sli.marked_for_destruction?
}

View File

@@ -10,7 +10,7 @@
"pretty-quick": "pretty-quick"
},
"dependencies": {
"@floating-ui/dom": "^1.7.0",
"@floating-ui/dom": "^1.7.1",
"@hotwired/stimulus": "^3.2",
"@hotwired/turbo": "^8.0.13",
"@rails/webpacker": "5.4.4",
@@ -44,7 +44,7 @@
"karma-coffee-preprocessor": "~1.0.1",
"karma-jasmine": "~0.3.8",
"prettier": "3.2.4",
"pretty-quick": "4.1.1",
"pretty-quick": "4.2.2",
"webpack-dev-server": "~3"
}
}

View File

@@ -458,7 +458,7 @@ RSpec.describe Admin::SubscriptionsController do
}
let!(:order) { proxy_order.initialise_order! }
before { break unless order.next! while !order.completed? }
before { Orders::WorkflowService.new(order).complete! }
context "when no 'open_orders' directive has been provided" do
it "renders an error, asking what to do" do
@@ -562,7 +562,7 @@ RSpec.describe Admin::SubscriptionsController do
}
let!(:order) { proxy_order.initialise_order! }
before { break unless order.next! while !order.completed? }
before { Orders::WorkflowService.new(order).complete! }
context "when no 'open_orders' directive has been provided" do
it "renders an error, asking what to do" do
@@ -668,7 +668,7 @@ RSpec.describe Admin::SubscriptionsController do
}
let!(:order) { proxy_order.initialise_order! }
before { break unless order.next! while !order.completed? }
before { Orders::WorkflowService.new(order).complete! }
context "when no associated orders are 'canceled'" do
it 'renders the unpaused subscription as json, leaves the order untouched' do

View File

@@ -11,7 +11,7 @@ RSpec.describe LineItemsController do
let!(:completed_order) do
order = create(:completed_order_with_totals, user:, distributor:,
order_cycle:, line_items_count: 1)
break unless order.next! while !order.completed?
Orders::WorkflowService.new(order).complete!
order
end
@@ -35,7 +35,7 @@ RSpec.describe LineItemsController do
let(:item) do
order = create(:completed_order_with_totals)
item = create(:line_item, order:)
break unless order.next! while !order.completed?
Orders::WorkflowService.new(order).complete!
item
end
@@ -177,7 +177,7 @@ RSpec.describe LineItemsController do
order_cycle:, line_items_count: 2)
order.reload.line_items.first.update(variant_id: variant1.id)
order.line_items.last.update(variant_id: variant2.id)
break unless order.next! while !order.completed?
Orders::WorkflowService.new(order).complete!
order.recreate_all_fees!
order
end

View File

@@ -85,7 +85,7 @@ RSpec.describe Spree::Admin::OrdersController do
order_cycle:)
order.reload.line_items.first.update(variant_id: variant1.id)
order.line_items.last.update(variant_id: variant2.id)
break unless order.next! while !order.completed?
Orders::WorkflowService.new(order).complete!
order.recreate_all_fees!
order
end

View File

@@ -293,7 +293,7 @@ RSpec.describe Spree::OrdersController do
order_cycle:)
order.reload.line_items.first.update(variant_id: variant1.id)
order.reload.line_items.last.update(variant_id: variant2.id)
break unless order.next! while !order.completed?
Orders::WorkflowService.new(order).complete!
order.recreate_all_fees!
order
end

View File

@@ -128,10 +128,12 @@ FactoryBot.define do
payment_method: evaluator.payment_method)
order.recreate_all_fees!
order.ship_address = evaluator.ship_address
break unless a = order.next! while !order.delivery?
while !order.delivery?
break unless a = order.next!
end
order.select_shipping_method(evaluator.shipping_method.id)
break unless a = order.next! while !order.completed?
Orders::WorkflowService.new(order).complete!
end
end
end
@@ -164,7 +166,7 @@ FactoryBot.define do
create(:payment, state: "checkout", order:, amount: order.total,
payment_method: evaluator.payment_method)
order.ship_address = evaluator.ship_address
break unless order.next! while !order.completed?
Orders::WorkflowService.new(order).complete!
order.update_columns(
completed_at: evaluator.completed_at,
@@ -260,7 +262,7 @@ FactoryBot.define do
tax_category: evaluator.shipping_tax_category)
order.reload
break unless order.next! while !order.completed?
Orders::WorkflowService.new(order).complete!
order.reload
end
end

File diff suppressed because one or more lines are too long

View File

@@ -116,7 +116,7 @@ RSpec.describe ProxyOrder do
allow(Spree::OrderMailer).to receive(:cancel_email) {
double(:email, deliver_later: true)
}
break unless order.next! while !order.completed?
Orders::WorkflowService.new(order).complete!
order.cancel
order.reload
end
@@ -130,7 +130,7 @@ RSpec.describe ProxyOrder do
end
context "and the order has not been cancelled" do
before { break unless order.next! while !order.completed? }
before { Orders::WorkflowService.new(order).complete! }
it "returns true and clears canceled_at" do
expect(proxy_order.resume).to be true
@@ -159,7 +159,7 @@ RSpec.describe ProxyOrder do
allow(Spree::OrderMailer).to receive(:cancel_email) {
double(:email, deliver_later: true)
}
break unless order.next! while !order.completed?
Orders::WorkflowService.new(order).complete!
order.cancel
end
@@ -172,7 +172,7 @@ RSpec.describe ProxyOrder do
end
context "and the order has not been cancelled" do
before { break unless order.next! while !order.completed? }
before { Orders::WorkflowService.new(order).complete! }
it "returns false and does nothing" do
expect(proxy_order.resume).to eq false

View File

@@ -300,7 +300,7 @@ module Spree
order.reload
order.update_totals
order.payments << create(:payment, amount: order.total)
break unless order.next! until order.completed?
Orders::WorkflowService.new(order).complete!
order.payment_state = 'paid'
order.select_shipping_method(shipping_method.id)
order.shipment.update!(order)

View File

@@ -47,7 +47,7 @@ RSpec.describe VoucherAdjustmentsController do
post("/voucher_adjustments", params:)
expect(response).to be_unprocessable
expect(flash[:error]).to match "Voucher code Not found"
expect(flash[:error]).to match "Voucher code invalid."
end
end
@@ -123,7 +123,7 @@ RSpec.describe VoucherAdjustmentsController do
post("/voucher_adjustments", params:)
expect(response).to be_unprocessable
expect(flash[:error]).to match "Voucher code Not found"
expect(flash[:error]).to match "Voucher code invalid."
end
end
@@ -149,7 +149,7 @@ RSpec.describe VoucherAdjustmentsController do
post("/voucher_adjustments", params:)
expect(response).to be_unprocessable
expect(flash[:error]).to match "Voucher code Not found"
expect(flash[:error]).to match "Voucher code invalid"
end
end

View File

@@ -3,19 +3,19 @@
require 'spec_helper'
RSpec.describe ImageImporter do
let(:url) { Rails.root.join("spec/fixtures/files/logo.png").to_s }
let(:ofn_url) { "https://s3.amazonaws.com/ofn_production/eofop2en1y6tu9fr1x9b0wzwgs5r" }
let(:product) { create(:product) }
describe "#import" do
it "downloads and attaches to the product" do
it "downloads from the Internet", :vcr do
expect {
subject.import(url, product)
subject.import(ofn_url, product)
}.to change {
Spree::Image.count
}.by(1)
expect(product.image).not_to be_nil
expect(product.reload.image.attachment_blob.byte_size).to eq 6274
expect(product.reload.image.attachment_blob.byte_size).to eq 12_926
end
end
end

View File

@@ -52,7 +52,7 @@ RSpec.describe PlaceProxyOrder do
before do
proxy_order.initialise_order!
break unless order.next! while !order.completed?
Orders::WorkflowService.new(order).complete!
end
it "records an issue and ignores it" do

View File

@@ -101,7 +101,7 @@ RSpec.describe '
stub_payment_intents_post_request order:, stripe_account_header: true
stub_successful_capture_request(order:)
break unless order.next! while !order.payment?
Orders::WorkflowService.new(order).advance_to_payment
end
it "adds a payment with state complete" do

View File

@@ -261,15 +261,18 @@ RSpec.describe '
before do
order1.reload
break unless order1.next! until order1.delivery?
while !order1.delivery?
break unless order1.next!
end
order1.select_shipping_method(shipping_method.id)
order1.recreate_all_fees!
break unless order1.next! until order1.payment?
order_workflow = Orders::WorkflowService.new(order1)
order_workflow.advance_to_payment
create(:payment, state: "checkout", order: order1, amount: order1.reload.total,
payment_method: create(:payment_method, distributors: [distributor1]))
break unless order1.next! until order1.complete?
order_workflow.complete!
login_as_admin
visit admin_reports_path

View File

@@ -169,7 +169,7 @@ RSpec.describe "As a consumer, I want to checkout my order" do
fill_in "Enter voucher code", with: "non_code"
click_button("Apply")
expect(page).to have_content("Voucher code Not found")
expect(page).to have_content("Voucher code invalid")
end
end

View File

@@ -1127,19 +1127,19 @@
resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7"
integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==
"@floating-ui/core@^1.7.0":
version "1.7.0"
resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.7.0.tgz#1aff27a993ea1b254a586318c29c3b16ea0f4d0a"
integrity sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==
"@floating-ui/core@^1.7.1":
version "1.7.1"
resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.7.1.tgz#1abc6b157d4a936174f9dbd078278c3a81c8bc6b"
integrity sha512-azI0DrjMMfIug/ExbBaeDVJXcY0a7EPvPjb2xAJPa4HeimBX+Z18HK8QQR3jb6356SnDDdxx+hinMLcJEDdOjw==
dependencies:
"@floating-ui/utils" "^0.2.9"
"@floating-ui/dom@^1.7.0":
version "1.7.0"
resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.7.0.tgz#f9f83ee4fee78ac23ad9e65b128fc11a27857532"
integrity sha512-lGTor4VlXcesUMh1cupTUTDoCxMb0V6bm3CnxHzQcw8Eaf1jQbgQX4i02fYgT0vJ82tb5MZ4CZk1LRGkktJCzg==
"@floating-ui/dom@^1.7.1":
version "1.7.1"
resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.7.1.tgz#76a4e3cbf7a08edf40c34711cf64e0cc8053d912"
integrity sha512-cwsmW/zyw5ltYTUeeYJ60CnQuPqmGwuGVhG9w0PRaRKkAyi38BT5CKrpIbb+jtahSwUl04cWzSx9ZOIxeS6RsQ==
dependencies:
"@floating-ui/core" "^1.7.0"
"@floating-ui/core" "^1.7.1"
"@floating-ui/utils" "^0.2.9"
"@floating-ui/utils@^0.2.9":
@@ -1424,6 +1424,11 @@
resolved "https://registry.yarnpkg.com/@orchidjs/unicode-variants/-/unicode-variants-1.1.2.tgz#1fd71791a67fdd1591ebe0dcaadd3964537a824e"
integrity sha512-5DobW1CHgnBROOEpFlEXytED5OosEWESFvg/VYmH0143oXcijYTprRYJTs+55HzGM4IqxiLFSuqEzu9mPNwVsA==
"@pkgr/core@^0.2.7":
version "0.2.7"
resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.7.tgz#eb5014dfd0b03e7f3ba2eeeff506eed89b028058"
integrity sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==
"@rails/actioncable@^6 || ^7 || ^8":
version "8.0.200"
resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-8.0.200.tgz#1d27d9d55e45266e061190db045925e0b4d53d6b"
@@ -4102,14 +4107,6 @@ find-up@^4.0.0, find-up@^4.1.0:
locate-path "^5.0.0"
path-exists "^4.0.0"
find-up@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
dependencies:
locate-path "^6.0.0"
path-exists "^4.0.0"
findup-sync@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1"
@@ -4685,10 +4682,10 @@ iferr@^0.1.5:
resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
ignore@^7.0.3:
version "7.0.3"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.3.tgz#397ef9315dfe0595671eefe8b633fec6943ab733"
integrity sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==
ignore@^7.0.5:
version "7.0.5"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9"
integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==
import-cwd@^2.0.0:
version "2.1.0"
@@ -5891,13 +5888,6 @@ locate-path@^5.0.0:
dependencies:
p-locate "^4.1.0"
locate-path@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
dependencies:
p-locate "^5.0.0"
lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
@@ -6634,13 +6624,6 @@ p-locate@^4.1.0:
dependencies:
p-limit "^2.2.0"
p-locate@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
dependencies:
p-limit "^3.0.2"
p-map@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
@@ -7554,13 +7537,13 @@ pretty-format@^27.5.1:
ansi-styles "^5.0.0"
react-is "^17.0.1"
pretty-quick@4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-4.1.1.tgz#8a0c883e4beeb0eddbe7eda50d7b1251d4f72968"
integrity sha512-9Ud0l/CspNTmyIdYac9X7Inb3o8fuUsw+1zJFvCGn+at0t1UwUcUdo2RSZ41gcmfLv1fxgWQxWEfItR7CBwugg==
pretty-quick@4.2.2:
version "4.2.2"
resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-4.2.2.tgz#0fc31da666f182fe14e119905fc9829b5b85a234"
integrity sha512-uAh96tBW1SsD34VhhDmWuEmqbpfYc/B3j++5MC/6b3Cb8Ow7NJsvKFhg0eoGu2xXX+o9RkahkTK6sUdd8E7g5w==
dependencies:
find-up "^5.0.0"
ignore "^7.0.3"
"@pkgr/core" "^0.2.7"
ignore "^7.0.5"
mri "^1.2.0"
picocolors "^1.1.1"
picomatch "^4.0.2"