Compare commits

..

3 Commits

Author SHA1 Message Date
Pau Pérez Fabregat
ef84a165c7 Merge pull request #5663 from luisramos0/constraints
Make db timestamps nullable
2020-06-25 13:16:10 +02:00
Pau Perez
970750281d Update all locales with the latest Transifex translations 2020-06-23 18:08:21 +02:00
Pau Pérez Fabregat
ec3899a4d4 Merge pull request #5660 from coopdevs/fix-spree-preferences
Migrate all spree pref. keys to the new format
2020-06-23 18:01:16 +02:00
842 changed files with 7085 additions and 22601 deletions

View File

@@ -9,11 +9,10 @@ assignees: ''
Steps:
- [ ] Include translations: `tx pull --force`
- [ ] Include translations
- [ ] [Draft new release]
- [ ] Notify #instance-managers of user-facing changes.
- [ ] Test: https://semaphoreci.com/openfoodfoundation/openfoodnetwork-2/branches/master <!-- replace the URL -->
- [ ] Update translations if necessary
- [ ] Publish and notify #global-community
- [ ] Deploy and notify #instance-managers
- [ ] Nudge next release manager

View File

@@ -23,6 +23,10 @@ The categories are based on https://keepachangelog.com/en/1.0.0/. -->
Changelog Category: Added | Changed | Deprecated | Removed | Fixed | Security
#### How is this related to the Spree upgrade?
<!-- Any known conflicts with the Spree Upgrade?
Explain them or remove this section. -->
#### Discourse thread

1
.gitignore vendored
View File

@@ -1,6 +1,5 @@
.bundle
.rbenv-version
.python-version
.byebug_history
.swp
*.swo

View File

@@ -21,10 +21,12 @@
Layout/LineLength:
Max: 100
Exclude:
- Gemfile
- app/controllers/admin/bulk_line_items_controller.rb
- app/controllers/admin/contents_controller.rb
- app/controllers/admin/customers_controller.rb
- app/controllers/admin/enterprise_fees_controller.rb
- app/controllers/admin/enterprise_groups_controller.rb
- app/controllers/admin/enterprise_relationships_controller.rb
- app/controllers/admin/enterprise_roles_controller.rb
- app/controllers/admin/enterprises_controller.rb
@@ -36,6 +38,9 @@ Layout/LineLength:
- app/controllers/admin/variant_overrides_controller.rb
- app/controllers/api/enterprise_attachment_controller.rb
- app/controllers/api/product_images_controller.rb
- app/controllers/spree/admin/adjustments_controller_decorator.rb
- app/controllers/spree/admin/orders_controller_decorator.rb
- app/controllers/spree/credit_cards_controller.rb
- app/controllers/spree/paypal_controller_decorator.rb
- app/controllers/stripe/callbacks_controller.rb
- app/helpers/angular_form_builder.rb
@@ -45,6 +50,8 @@ Layout/LineLength:
- app/helpers/injection_helper.rb
- app/helpers/markdown_helper.rb
- app/helpers/order_cycles_helper.rb
- app/helpers/shop_helper.rb
- app/helpers/spree/admin/base_helper_decorator.rb
- app/helpers/spree/orders_helper.rb
- app/jobs/subscription_confirm_job.rb
- app/mailers/subscription_mailer.rb
@@ -54,10 +61,14 @@ Layout/LineLength:
- app/models/concerns/variant_stock.rb
- app/models/content_configuration.rb
- app/models/customer.rb
- app/models/enterprise_fee.rb
- app/models/enterprise_group.rb
- app/models/enterprise_role.rb
- app/models/inventory_item.rb
- app/models/product_import/entry_processor.rb
- app/models/product_import/entry_validator.rb
- app/models/product_import/product_importer.rb
- app/models/product_import/spreadsheet_data.rb
- app/models/product_import/spreadsheet_entry.rb
- app/models/product_import/unit_converter.rb
- app/models/proxy_order.rb
@@ -74,23 +85,19 @@ Layout/LineLength:
- app/models/spree/payment_method_decorator.rb
- app/models/spree/product_decorator.rb
- app/models/spree/shipping_method_decorator.rb
- app/models/spree/taxon_decorator.rb
- app/models/spree/tax_rate_decorator.rb
- app/models/spree/taxon_decorator.rb
- app/models/spree/user.rb
- app/models/subscription.rb
- app/models/variant_override.rb
- app/models/variant_override_set.rb
- app/serializers/api/admin/subscription_line_item_serializer.rb
- app/services/cart_service.rb
- app/services/default_stock_location.rb
- app/services/embedded_page_service.rb
- app/services/order_cycle_form.rb
- app/services/order_factory.rb
- engines/order_management/app/services/order_management/subscriptions/validator.rb
- app/services/variants_stock_levels.rb
- engines/web/app/helpers/web/cookies_policy_helper.rb
- engines/web/config/routes.rb
- engines/web/spec/features/consumer/cookies_spec.rb
- Gemfile
- lib/discourse/single_sign_on.rb
- lib/open_food_network/available_payment_method_filter.rb
- lib/open_food_network/bulk_coop_report.rb
@@ -105,11 +112,12 @@ Layout/LineLength:
- lib/open_food_network/payments_report.rb
- lib/open_food_network/reports/bulk_coop_allocation_report.rb
- lib/open_food_network/sales_tax_report.rb
- lib/open_food_network/scope_variants_for_search.rb
- lib/open_food_network/variant_and_line_item_naming.rb
- lib/open_food_network/xero_invoices_report.rb
- lib/spree/core/controller_helpers/respond_with_decorator.rb
- lib/spree/localized_number.rb
- lib/spree/product_filters.rb
- lib/stripe/profile_storer.rb
- lib/tasks/data.rake
- lib/tasks/enterprises.rake
- spec/controllers/admin/bulk_line_items_controller_spec.rb
@@ -143,21 +151,19 @@ Layout/LineLength:
- spec/controllers/shops_controller_spec.rb
- spec/controllers/spree/admin/adjustments_controller_spec.rb
- spec/controllers/spree/admin/base_controller_spec.rb
- spec/controllers/spree/admin/orders_controller_spec.rb
- spec/controllers/spree/admin/orders/customer_details_controller_spec.rb
- spec/controllers/spree/admin/orders_controller_spec.rb
- spec/controllers/spree/admin/payment_methods_controller_spec.rb
- spec/controllers/spree/admin/products_controller_spec.rb
- spec/controllers/spree/admin/reports_controller_spec.rb
- spec/controllers/spree/admin/variants_controller_spec.rb
- spec/controllers/spree/credit_cards_controller_spec.rb
- spec/controllers/spree/orders_controller_spec.rb
- spec/controllers/spree/users_controller_spec.rb
- spec/controllers/spree/user_sessions_controller_spec.rb
- spec/controllers/spree/users_controller_spec.rb
- spec/controllers/stripe/callbacks_controller_spec.rb
- spec/controllers/stripe/webhooks_controller_spec.rb
- spec/controllers/user_confirmations_controller_spec.rb
- spec/factories/order_factory.rb
- spec/factories.rb
- spec/features/admin/adjustments_spec.rb
- spec/features/admin/bulk_order_management_spec.rb
- spec/features/admin/bulk_product_update_spec.rb
@@ -165,19 +171,13 @@ Layout/LineLength:
- spec/features/admin/enterprise_fees_spec.rb
- spec/features/admin/enterprise_relationships_spec.rb
- spec/features/admin/enterprise_roles_spec.rb
- spec/features/admin/enterprise_user_spec.rb
- spec/features/admin/enterprises/images_spec.rb
- spec/features/admin/enterprises/index_spec.rb
- spec/features/admin/enterprises_spec.rb
- spec/features/admin/enterprise_user_spec.rb
- spec/features/admin/image_settings_spec.rb
- spec/features/admin/multilingual_spec.rb
- spec/features/admin/order_cycles/complex_creating_specific_time_spec.rb
- spec/features/admin/order_cycles/complex_editing_multiple_product_pages_spec.rb
- spec/features/admin/order_cycles/complex_editing_spec.rb
- spec/features/admin/order_cycles/complex_updating_specific_time_spec.rb
- spec/features/admin/order_cycles/list_spec.rb
- spec/features/admin/order_cycles/simple_spec.rb
- spec/features/admin/order_spec.rb
- spec/features/admin/order_cycles_spec.rb
- spec/features/admin/overview_spec.rb
- spec/features/admin/payment_method_spec.rb
- spec/features/admin/product_import_spec.rb
@@ -193,11 +193,9 @@ Layout/LineLength:
- spec/features/consumer/account/settings_spec.rb
- spec/features/consumer/account_spec.rb
- spec/features/consumer/authentication_spec.rb
- spec/features/consumer/caching/darkwarm_caching_spec.rb
- spec/features/consumer/caching/shops_caching_spec.rb
- spec/features/consumer/cookies_spec.rb
- spec/features/consumer/groups_spec.rb
- spec/features/consumer/multilingual_spec.rb
- spec/features/consumer/producers_spec.rb
- spec/features/consumer/registration_spec.rb
- spec/features/consumer/shopping/cart_spec.rb
- spec/features/consumer/shopping/checkout_auth_spec.rb
@@ -236,7 +234,6 @@ Layout/LineLength:
- spec/lib/open_food_network/products_and_inventory_report_spec.rb
- spec/lib/open_food_network/scope_variant_to_hub_spec.rb
- spec/lib/open_food_network/tag_rule_applicator_spec.rb
- spec/lib/open_food_network/user_balance_calculator_spec.rb
- spec/lib/open_food_network/users_and_enterprises_report_spec.rb
- spec/lib/open_food_network/xero_invoices_report_spec.rb
- spec/lib/stripe/account_connector_spec.rb
@@ -257,8 +254,8 @@ Layout/LineLength:
- spec/models/exchange_spec.rb
- spec/models/model_set_spec.rb
- spec/models/order_cycle_spec.rb
- spec/models/producer_property_spec.rb
- spec/models/product_importer_spec.rb
- spec/models/product_import/reset_absent_spec.rb
- spec/models/proxy_order_spec.rb
- spec/models/spree/ability_spec.rb
- spec/models/spree/adjustment_spec.rb
@@ -272,9 +269,10 @@ Layout/LineLength:
- spec/models/spree/payment_spec.rb
- spec/models/spree/product_set_spec.rb
- spec/models/spree/product_spec.rb
- spec/models/spree/property_spec.rb
- spec/models/spree/shipping_method_spec.rb
- spec/models/spree/taxon_spec.rb
- spec/models/spree/tax_rate_spec.rb
- spec/models/spree/taxon_spec.rb
- spec/models/spree/user_spec.rb
- spec/models/spree/variant_spec.rb
- spec/models/stripe_account_spec.rb
@@ -287,10 +285,10 @@ Layout/LineLength:
- spec/performance/orders_controller_spec.rb
- spec/performance/shop_controller_spec.rb
- spec/requests/checkout/failed_checkout_spec.rb
- spec/requests/checkout/stripe_sca_spec.rb
- spec/requests/embedded_shopfronts_headers_spec.rb
- spec/serializers/api/admin/customer_serializer_spec.rb
- spec/serializers/api/admin/exchange_serializer_spec.rb
- spec/serializers/api/admin/for_order_cycle/enterprise_serializer_spec.rb
- spec/serializers/api/admin/for_order_cycle/supplied_product_serializer_spec.rb
- spec/serializers/api/admin/order_cycle_serializer_spec.rb
- spec/serializers/api/admin/subscription_customer_serializer_spec.rb
@@ -299,7 +297,6 @@ Layout/LineLength:
- spec/serializers/api/enterprise_shopfront_serializer_spec.rb
- spec/serializers/api/order_serializer_spec.rb
- spec/services/cart_service_spec.rb
- spec/services/checkout/form_data_adapter_spec.rb
- spec/services/embedded_page_service_spec.rb
- spec/services/exchange_products_renderer_spec.rb
- spec/services/order_cycle_distributed_products_spec.rb
@@ -307,36 +304,19 @@ Layout/LineLength:
- spec/services/order_cycle_form_spec.rb
- spec/services/order_factory_spec.rb
- spec/services/order_syncer_spec.rb
- spec/services/order_tax_adjustments_fetcher_spec.rb
- spec/services/permissions/order_spec.rb
- spec/services/permitted_attributes/order_cycle_spec.rb
- spec/services/products_renderer_spec.rb
- spec/services/product_tag_rules_filterer_spec.rb
- spec/services/products_renderer_spec.rb
- spec/spec_helper.rb
- spec/support/cancan_helper.rb
- spec/support/delayed_job_helper.rb
- spec/support/matchers/delegate_matchers.rb
- spec/support/matchers/select2_matchers.rb
- spec/support/matchers/table_matchers.rb
- spec/support/request/authentication_workflow.rb
- spec/support/request/shop_workflow.rb
- spec/support/request/web_helper.rb
- spec/support/seeds.rb
- engines/order_management/app/services/order_management/reports/bulk_coop/bulk_coop_report.rb
- spec/controllers/base_controller2_spec.rb
- spec/features/consumer/caching/darkswarm_caching_spec.rb
- spec/models/calculator/flexi_rate_spec.rb
- spec/models/calculator/price_sack_spec.rb
- spec/models/spree/stock_item_spec.rb
- spec/requests/api/orders_spec.rb
- spec/swagger_helper.rb
- spec/views/spree/admin/payment_methods/index.html.haml_spec.rb
- app/models/spree/image.rb
- app/models/spree/payment_method.rb
- spec/factories/line_item_factory.rb
- spec/factories/shipment_factory.rb
- spec/factories/stock_location_factory.rb
- spec/factories/user_factory.rb
- spec/lib/spree/core/calculated_adjustments_spec.rb
Metrics/AbcSize:
Max: 15
@@ -347,6 +327,7 @@ Metrics/AbcSize:
- app/controllers/admin/enterprises_controller.rb
- app/controllers/admin/order_cycles_controller.rb
- app/controllers/admin/product_import_controller.rb
- app/controllers/admin/schedules_controller.rb
- app/controllers/admin/stripe_accounts_controller.rb
- app/controllers/admin/subscription_line_items_controller.rb
- app/controllers/admin/subscriptions_controller.rb
@@ -356,12 +337,14 @@ Metrics/AbcSize:
- app/controllers/api/shipments_controller.rb
- app/controllers/api/taxons_controller.rb
- app/controllers/api/variants_controller.rb
- app/controllers/base_controller.rb
- app/controllers/cart_controller.rb
- app/controllers/discourse_sso_controller.rb
- app/controllers/enterprises_controller.rb
- app/controllers/spree/admin/adjustments_controller_decorator.rb
- app/controllers/spree/admin/image_settings_controller.rb
- app/controllers/spree/admin/orders_controller.rb
- app/controllers/spree/admin/orders/customer_details_controller.rb
- app/controllers/spree/admin/orders_controller.rb
- app/controllers/spree/admin/overview_controller.rb
- app/controllers/spree/admin/payment_methods_controller.rb
- app/controllers/spree/admin/payments_controller.rb
@@ -371,12 +354,13 @@ Metrics/AbcSize:
- app/controllers/spree/admin/search_controller.rb
- app/controllers/spree/admin/taxons_controller.rb
- app/controllers/spree/admin/users_controller.rb
- app/controllers/spree/admin/variants_controller.rb
- app/controllers/spree/credit_cards_controller.rb
- app/controllers/spree/orders_controller.rb
- app/controllers/spree/user_passwords_controller.rb
- app/controllers/spree/user_registrations_controller.rb
- app/controllers/spree/users_controller.rb
- app/controllers/spree/user_sessions_controller.rb
- app/controllers/spree/users_controller.rb
- app/controllers/stripe/callbacks_controller.rb
- app/controllers/user_confirmations_controller.rb
- app/controllers/user_passwords_controller.rb
@@ -384,19 +368,18 @@ Metrics/AbcSize:
- app/helpers/checkout_helper.rb
- app/helpers/i18n_helper.rb
- app/helpers/order_cycles_helper.rb
- app/helpers/spree/admin/base_helper.rb
- app/helpers/spree/admin/navigation_helper.rb
- app/helpers/spree/admin/base_helper.rb
- app/helpers/spree/admin/zones_helper.rb
- app/helpers/spree/orders_helper.rb
- app/models/calculator/flat_percent_per_item.rb
- app/models/column_preference.rb
- app/models/enterprise_group.rb
- app/models/enterprise.rb
- app/models/enterprise_group.rb
- app/models/enterprise_relationship.rb
- app/models/model_set.rb
- app/models/product_import/entry_processor.rb
- app/models/product_import/entry_validator.rb
- app/models/product_import/product_importer.rb
- app/models/proxy_order.rb
- app/models/spree/ability_decorator.rb
- app/models/spree/calculator/default_tax_decorator.rb
@@ -405,20 +388,14 @@ Metrics/AbcSize:
- app/models/spree/order_decorator.rb
- app/models/spree/payment_decorator.rb
- app/models/spree/product_decorator.rb
- app/models/spree/shipment.rb
- app/models/spree/taxon_decorator.rb
- app/models/spree/tax_rate_decorator.rb
- app/serializers/api/admin/enterprise_serializer.rb
- app/serializers/api/admin/order_cycle_serializer.rb
- app/serializers/api/product_serializer.rb
- app/serializers/api/variant_serializer.rb
- app/services/cart_service.rb
- app/services/create_order_cycle.rb
- app/services/order_cycle_form.rb
- app/services/order_syncer.rb
- engines/order_management/app/services/order_management/order/updater.rb
- engines/order_management/app/services/order_management/stock/estimator.rb
- engines/order_management/app/services/order_management/stock/package.rb
- engines/order_management/app/services/order_management/stock/packer.rb
- engines/order_management/app/services/order_management/subscriptions/validator.rb
- lib/active_merchant/billing/gateways/stripe_decorator.rb
- lib/active_merchant/billing/gateways/stripe_payment_intents.rb
@@ -437,42 +414,27 @@ Metrics/AbcSize:
- lib/open_food_network/payments_report.rb
- lib/open_food_network/permissions.rb
- lib/open_food_network/products_and_inventory_report.rb
- lib/open_food_network/rack_request_blocker.rb
- lib/open_food_network/reports/line_items.rb
- lib/open_food_network/sales_tax_report.rb
- lib/open_food_network/users_and_enterprises_report.rb
- lib/open_food_network/variant_and_line_item_naming.rb
- lib/open_food_network/xero_invoices_report.rb
- lib/spree/api/controller_setup.rb
- lib/spree/core/controller_helpers/order.rb
- lib/spree/core/controller_helpers/respond_with.rb
- lib/spree/core/controller_helpers/ssl.rb
- lib/spree/core/controller_helpers/respond_with_decorator.rb
- lib/spree/localized_number.rb
- lib/stripe/account_connector.rb
- lib/tasks/enterprises.rake
- lib/tasks/sample_data/order_factory.rb
- lib/tasks/sample_data/product_factory.rb
- spec/features/admin/product_import_spec.rb
- spec/features/admin/reports_spec.rb
- spec/features/admin/subscriptions_spec.rb
- spec/features/consumer/shopping/checkout_paypal_spec.rb
- spec/features/consumer/shopping/shopping_spec.rb
- spec/features/consumer/shopping/variant_overrides_spec.rb
- spec/models/enterprise_spec.rb
- spec/models/product_importer_spec.rb
- spec/services/order_checkout_restart_spec.rb
- spec/services/restart_checkout_spec.rb
- spec/support/performance_helper.rb
- app/controllers/application_controller.rb
- app/models/spree/order/checkout.rb
- app/models/spree/payment/processing.rb
- app/models/spree/payment.rb
- engines/order_management/app/services/order_management/reports/bulk_coop/bulk_coop_report.rb
- app/models/spree/zone.rb
- lib/spree/core/calculated_adjustments.rb
- lib/spree/core/delegate_belongs_to.rb
- lib/spree/core/permalinks.rb
- lib/spree/core/s3_support.rb
- lib/spree/money.rb
- spec/support/i18n_translations_checker.rb
Metrics/BlockLength:
Max: 25
@@ -490,19 +452,15 @@ Metrics/BlockLength:
"scenario"
]
Exclude:
- app/models/spree/shipment.rb
- lib/spree/core/controller_helpers/common.rb
- lib/spree/core/controller_helpers/ssl.rb
- lib/tasks/data.rake
- spec/controllers/spree/admin/invoices_controller_spec.rb
- spec/factories.rb
- spec/factories/enterprise_factory.rb
- spec/factories/order_cycle_factory.rb
- spec/factories/order_factory.rb
- spec/factories/product_factory.rb
- spec/factories.rb
- spec/factories/shipping_method_factory.rb
- spec/factories/subscription_factory.rb
- spec/factories/user_factory.rb
- spec/factories/variant_factory.rb
- spec/features/consumer/shopping/embedded_shopfronts_spec.rb
- spec/lib/open_food_network/group_buy_report_spec.rb
@@ -511,13 +469,6 @@ Metrics/BlockLength:
- spec/support/delayed_job_helper.rb
- spec/support/matchers/select2_matchers.rb
- spec/support/matchers/table_matchers.rb
- app/models/spree/order/checkout.rb
- app/models/spree/payment/processing.rb
- spec/requests/api/orders_spec.rb
- spec/swagger_helper.rb
- spec/factories/address_factory.rb
- spec/factories/payment_method_factory.rb
- spec/factories/shipment_factory.rb
Metrics/CyclomaticComplexity:
Max: 6
@@ -529,32 +480,25 @@ Metrics/CyclomaticComplexity:
- app/helpers/checkout_helper.rb
- app/helpers/i18n_helper.rb
- app/helpers/order_cycles_helper.rb
- app/helpers/spree/admin/base_helper.rb
- app/helpers/spree/admin/navigation_helper.rb
- app/helpers/spree/admin/base_helper.rb
- app/models/enterprise.rb
- app/models/enterprise_relationship.rb
- app/models/product_import/entry_processor.rb
- app/models/product_import/entry_validator.rb
- app/models/spree/ability_decorator.rb
- app/models/spree/payment_decorator.rb
- app/models/spree/payment_method_decorator.rb
- app/models/spree/product_decorator.rb
- app/models/variant_override_set.rb
- app/services/cart_service.rb
- engines/order_management/app/services/order_management/stock/estimator.rb
- lib/active_merchant/billing/gateways/stripe_payment_intents.rb
- lib/discourse/single_sign_on.rb
- lib/open_food_network/bulk_coop_report.rb
- lib/open_food_network/enterprise_issue_validator.rb
- lib/spree/core/controller_helpers/order.rb
- lib/spree/core/controller_helpers/respond_with.rb
- lib/spree/core/controller_helpers/ssl.rb
- lib/spree/core/controller_helpers/order_decorator.rb
- lib/spree/core/controller_helpers/respond_with_decorator.rb
- lib/spree/localized_number.rb
- spec/models/product_importer_spec.rb
- app/models/spree/order/checkout.rb
- app/models/spree/payment.rb
- engines/order_management/app/services/order_management/reports/bulk_coop/bulk_coop_report.rb
- app/models/spree/payment_method.rb
- app/models/spree/zone.rb
- lib/spree/core/calculated_adjustments.rb
Metrics/PerceivedComplexity:
Max: 7
@@ -568,28 +512,23 @@ Metrics/PerceivedComplexity:
- app/helpers/order_cycles_helper.rb
- app/helpers/spree/admin/navigation_helper.rb
- app/models/enterprise_relationship.rb
- app/models/product_import/entry_processor.rb
- app/models/product_import/entry_validator.rb
- app/models/spree/ability_decorator.rb
- app/models/spree/order_decorator.rb
- app/models/spree/product_decorator.rb
- engines/order_management/app/services/order_management/stock/estimator.rb
- lib/active_merchant/billing/gateways/stripe_payment_intents.rb
- lib/discourse/single_sign_on.rb
- lib/open_food_network/bulk_coop_report.rb
- lib/open_food_network/enterprise_issue_validator.rb
- lib/spree/core/controller_helpers/order.rb
- lib/spree/core/controller_helpers/respond_with.rb
- lib/spree/core/controller_helpers/ssl.rb
- lib/spree/core/controller_helpers/order_decorator.rb
- lib/spree/core/controller_helpers/respond_with_decorator.rb
- lib/spree/localized_number.rb
- spec/models/product_importer_spec.rb
- app/models/spree/order/checkout.rb
- engines/order_management/app/services/order_management/reports/bulk_coop/bulk_coop_report.rb
- app/models/spree/zone.rb
- lib/spree/core/calculated_adjustments.rb
Metrics/MethodLength:
Max: 10
Exclude:
- app/controllers/admin/contents_controller.rb
- app/controllers/admin/customers_controller.rb
- app/controllers/admin/enterprise_fees_controller.rb
- app/controllers/admin/enterprises_controller.rb
@@ -601,11 +540,12 @@ Metrics/MethodLength:
- app/controllers/api/shipments_controller.rb
- app/controllers/api/taxons_controller.rb
- app/controllers/api/variants_controller.rb
- app/controllers/base_controller.rb
- app/controllers/cart_controller.rb
- app/controllers/shop_controller.rb
- app/controllers/spree/admin/image_settings_controller.rb
- app/controllers/spree/admin/orders_controller.rb
- app/controllers/spree/admin/orders/customer_details_controller.rb
- app/controllers/spree/admin/orders_controller.rb
- app/controllers/spree/admin/payment_methods_controller.rb
- app/controllers/spree/admin/payments_controller.rb
- app/controllers/spree/admin/products_controller.rb
@@ -624,9 +564,9 @@ Metrics/MethodLength:
- app/controllers/user_registrations_controller.rb
- app/helpers/checkout_helper.rb
- app/helpers/order_cycles_helper.rb
- app/helpers/spree/admin/base_helper.rb
- app/helpers/spree/admin/navigation_helper.rb
- app/mailers/producer_mailer.rb
- app/helpers/spree/admin/base_helper.rb
- app/jobs/subscription_placement_job.rb
- app/models/column_preference.rb
- app/models/enterprise.rb
- app/models/enterprise_relationship.rb
@@ -642,15 +582,10 @@ Metrics/MethodLength:
- app/models/spree/payment_decorator.rb
- app/models/spree/payment_method_decorator.rb
- app/models/spree/product_decorator.rb
- app/models/spree/shipment.rb
- app/serializers/api/admin/order_cycle_serializer.rb
- app/serializers/api/cached_enterprise_serializer.rb
- app/services/order_cycle_form.rb
- app/services/permitted_attributes/checkout.rb
- engines/order_management/app/services/order_management/order/updater.rb
- engines/order_management/app/services/order_management/reports/enterprise_fee_summary/scope.rb
- engines/order_management/app/services/order_management/stock/estimator.rb
- engines/order_management/app/services/order_management/stock/package.rb
- lib/active_merchant/billing/gateways/stripe_payment_intents.rb
- lib/discourse/single_sign_on.rb
- lib/open_food_network/bulk_coop_report.rb
@@ -678,50 +613,30 @@ Metrics/MethodLength:
- lib/open_food_network/users_and_enterprises_report.rb
- lib/open_food_network/xero_invoices_report.rb
- lib/spree/api/controller_setup.rb
- lib/spree/core/controller_helpers/auth.rb
- lib/spree/core/controller_helpers/order.rb
- lib/spree/core/controller_helpers/respond_with.rb
- lib/spree/core/controller_helpers/ssl.rb
- lib/spree/core/controller_helpers/respond_with_decorator.rb
- lib/spree/localized_number.rb
- lib/stripe/profile_storer.rb
- lib/tasks/data/truncate_data.rb
- lib/tasks/sample_data/group_factory.rb
- lib/tasks/sample_data/order_factory.rb
- lib/tasks/sample_data/product_factory.rb
- spec/features/consumer/shopping/checkout_paypal_spec.rb
- spec/features/consumer/shopping/variant_overrides_spec.rb
- spec/models/product_importer_spec.rb
- spec/support/request/authentication_helper.rb
- app/models/spree/order/checkout.rb
- app/models/spree/payment/processing.rb
- engines/order_management/app/services/order_management/reports/bulk_coop/bulk_coop_allocation_report.rb
- engines/order_management/app/services/order_management/reports/bulk_coop/bulk_coop_report.rb
- engines/order_management/app/services/order_management/reports/bulk_coop/bulk_coop_supplier_report.rb
- app/models/spree/credit_card.rb
- app/models/spree/payment_method.rb
- app/models/spree/zone.rb
- lib/spree/core/calculated_adjustments.rb
- lib/spree/core/delegate_belongs_to.rb
- lib/spree/core/permalinks.rb
- lib/spree/core/s3_support.rb
- lib/spree/responder.rb
- spec/support/i18n_translations_checker.rb
- spec/support/request/authentication_workflow.rb
Metrics/ClassLength:
Max: 100
Exclude:
- app/controllers/admin/enterprises_controller.rb
- app/controllers/admin/order_cycles_controller.rb
- app/controllers/admin/schedules_controller.rb
- app/controllers/admin/subscriptions_controller.rb
- app/controllers/api/products_controller.rb
- app/controllers/application_controller.rb
- app/controllers/checkout_controller.rb
- app/controllers/spree/admin/base_controller.rb
- app/controllers/spree/admin/orders_controller.rb
- app/controllers/spree/admin/payment_methods_controller.rb
- app/controllers/spree/admin/products_controller.rb
- app/controllers/spree/admin/reports_controller.rb
- app/controllers/spree/admin/resource_controller.rb
- app/controllers/spree/admin/products_controller.rb
- app/controllers/spree/admin/users_controller.rb
- app/controllers/spree/orders_controller.rb
- app/models/enterprise.rb
@@ -730,12 +645,10 @@ Metrics/ClassLength:
- app/models/product_import/entry_validator.rb
- app/models/product_import/product_importer.rb
- app/models/spree/ability_decorator.rb
- app/models/spree/shipment.rb
- app/models/spree/user.rb
- app/serializers/api/cached_enterprise_serializer.rb
- app/serializers/api/enterprise_shopfront_serializer.rb
- app/services/cart_service.rb
- engines/order_management/app/services/order_management/order/updater.rb
- engines/order_management/app/services/order_management/reports/enterprise_fee_summary/scope.rb
- lib/active_merchant/billing/gateways/stripe_payment_intents.rb
- lib/open_food_network/bulk_coop_report.rb
@@ -748,20 +661,14 @@ Metrics/ClassLength:
- lib/open_food_network/permissions.rb
- lib/open_food_network/users_and_enterprises_report.rb
- lib/open_food_network/xero_invoices_report.rb
- app/models/spree/payment.rb
- engines/order_management/app/services/order_management/reports/bulk_coop/bulk_coop_report.rb
- app/models/spree/credit_card.rb
- app/models/spree/zone.rb
Metrics/ModuleLength:
Max: 100
Exclude:
- app/helpers/admin/injection_helper.rb
- app/helpers/injection_helper.rb
- app/helpers/spree/admin/base_helper.rb
- app/helpers/spree/admin/navigation_helper.rb
- engines/order_management/spec/services/order_management/order/updater_spec.rb
- engines/order_management/spec/services/order_management/stock/package_spec.rb
- app/helpers/spree/admin/base_helper.rb
- engines/order_management/spec/services/order_management/subscriptions/estimator_spec.rb
- engines/order_management/spec/services/order_management/subscriptions/form_spec.rb
- engines/order_management/spec/services/order_management/subscriptions/proxy_order_syncer_spec.rb
@@ -785,7 +692,6 @@ Metrics/ModuleLength:
- spec/lib/open_food_network/products_and_inventory_report_spec.rb
- spec/lib/open_food_network/scope_variant_to_hub_spec.rb
- spec/lib/open_food_network/tag_rule_applicator_spec.rb
- spec/lib/open_food_network/user_balance_calculator_spec.rb
- spec/lib/open_food_network/users_and_enterprises_report_spec.rb
- spec/models/spree/ability_spec.rb
- spec/models/spree/adjustment_spec.rb
@@ -795,10 +701,6 @@ Metrics/ModuleLength:
- spec/models/spree/variant_spec.rb
- spec/services/permissions/order_spec.rb
- spec/support/request/web_helper.rb
- app/models/spree/order/checkout.rb
- app/models/spree/payment/processing.rb
- spec/lib/open_food_network/packing_report_spec.rb
- spec/models/spree/credit_card_spec.rb
Metrics/ParameterLists:
Max: 5
@@ -807,8 +709,3 @@ Metrics/ParameterLists:
- app/models/product_import/entry_processor.rb
- lib/open_food_network/xero_invoices_report.rb
- spec/features/admin/reports_spec.rb
Lint/UselessAssignment:
Exclude:
- 'spec/**/*'
- 'lib/spree/core/controller_helpers/common.rb'

View File

@@ -40,12 +40,6 @@ Layout/MultilineMethodCallIndentation:
Layout/LineLength:
Max: 100
Lint/RaiseException:
Enabled: true
Lint/StructNewOverride:
Enabled: true
## TEMPORARY/CONTESTED SETTINGS
#
# These are still to be decided upon, but recommended for inclusion by

File diff suppressed because it is too large Load Diff

View File

@@ -17,13 +17,7 @@ Better to have at least 2GB free on your computer in order to download images an
Open a terminal with a shell.
Clone the repository. If you're planning on contributing code to the project (which we [LOVE](CONTRIBUTING.md)), it is a good idea to begin by forking this repo using the Fork button in the top-right corner of this screen. You should then be able to use git clone to copy your fork onto your local machine.
```sh
$ git clone https://github.com/YOUR_GITHUB_USERNAME_HERE/openfoodnetwork
```
Otherwise, if you just want to get things running, clone from the OFN main repo:
Clone the repository:
```sh
$ git clone git@github.com:openfoodfoundation/openfoodnetwork.git

View File

@@ -1,6 +1,6 @@
### Getting Started
This is a general guide to setting up an Open Food Network **development environment on your local machine**. If you want to setup OFN on a server, please have a look at the [ofn-install deployment guide](https://github.com/openfoodfoundation/ofn-install/wiki).
This is a general guide to setting up an Open Food Network development environment on your local machine.
### Requirements

24
Gemfile
View File

@@ -3,7 +3,7 @@ ruby "2.3.7"
git_source(:github) { |repo_name| "https://github.com/#{repo_name}.git" }
gem 'i18n', '~> 0.6.11'
gem 'i18n-js', '~> 3.7.1'
gem 'i18n-js', '~> 3.7.0'
gem 'rails', '~> 4.0.13'
gem 'rails-i18n', '~> 4.0'
gem 'rails_safe_tasks', '~> 1.0'
@@ -33,27 +33,24 @@ gem 'httparty', '~> 0.18' # Used to check alerts in spree_core, this is not used
gem 'json', '>= 1.7.7'
gem 'money', '5.1.1'
gem 'paranoia', '~> 2.0'
gem 'ransack', '~> 1.8.10'
gem 'ransack', '~> 1.2.3'
gem 'state_machine', '1.2.0'
gem 'stringex', '~> 1.5.1'
gem 'spree_i18n', github: 'spree/spree_i18n', branch: '1-3-stable'
# Our branch contains the following changes:
# Our branch contains two changes
# - Pass customer email and phone number to PayPal (merged to upstream master)
# - Change type of password from string to password to hide it in the form
# - Skip CA cert file and use the ones provided by the OS
gem 'spree_paypal_express', github: 'openfoodfoundation/better_spree_paypal_express', branch: '2-1-0-stable'
gem 'stripe'
# We need at least this version to have Digicert's root certificate
# which is needed for Pin Payments (and possibly others).
gem 'activemerchant', '~> 1.78.0'
gem 'devise', '~> 3.5.10' # v4.0.0 needs rails 4.1
gem 'devise', '~> 3.0.1'
gem 'devise-encryptable'
gem 'devise-token_authenticatable', '~> 0.4.10' # v0.5.0 needs devise v4
gem 'jwt', '~> 2.2'
gem 'oauth2', '~> 1.4.4' # Used for Stripe Connect
@@ -78,19 +75,21 @@ gem 'truncate_html', '0.9.2'
gem 'unicorn'
gem 'actionpack-action_caching'
# AMS 0.9.x and 0.10.x are very different from 0.8.4 and the upgrade is not straight forward
# AMS is deprecated, we will introduce an alternative at some point
# AMS is pinned to 0.8.4 because 0.9.x is a complete re-write, as is 0.10.x
# Once Rails is updated to 5.x we should bump directly to 0.10.x
gem "active_model_serializers", "0.8.4"
gem 'activerecord-session_store'
gem 'acts-as-taggable-on', '~> 4.0'
gem 'acts-as-taggable-on', '~> 3.4'
gem 'angularjs-file-upload-rails', '~> 2.4.1'
gem 'blockenspiel'
gem 'custom_error_message', github: 'jeremydurham/custom-err-msg'
gem 'dalli'
gem 'diffy'
gem 'figaro'
gem 'geocoder'
gem 'gmaps4rails'
gem 'oj'
gem 'paper_trail', '~> 7.1.3'
gem 'paper_trail', '~> 5.2.3'
gem 'paperclip', '~> 3.4.1'
gem 'rack-rewrite'
gem 'rack-ssl', require: 'rack/ssl'
@@ -111,7 +110,7 @@ gem 'test-unit', '~> 3.3'
gem 'coffee-rails', '~> 4.2.2'
gem 'compass-rails'
gem 'mini_racer', '0.2.15'
gem 'mini_racer', '0.2.14'
gem 'uglifier', '>= 1.0.3'
@@ -146,7 +145,6 @@ group :test, :development do
gem 'letter_opener', '>= 1.4.1'
gem 'rspec-rails', ">= 3.5.2"
gem 'rspec-retry'
gem 'rswag'
gem 'selenium-webdriver'
gem 'shoulda-matchers'
gem 'timecop'

View File

@@ -6,7 +6,7 @@ GIT
GIT
remote: https://github.com/openfoodfoundation/better_spree_paypal_express.git
revision: 1736e3268239a841576d2719a1f276cf9b74c5c5
revision: e28e4a8c5cedba504eea9cdad4be440d277d7e68
branch: 2-1-0-stable
specs:
spree_paypal_express (2.0.3)
@@ -22,7 +22,7 @@ GIT
GIT
remote: https://github.com/openfoodfoundation/spree.git
revision: cbb24a6ed701166ffaf2ab60a402154100d74766
revision: 0b0c422369c82b6dd7e7cb627a24e3a9fca19a6c
branch: 2-1-0-stable
specs:
spree_core (2.1.0)
@@ -108,7 +108,7 @@ GEM
activesupport (= 4.0.13)
arel (~> 4.0.0)
activerecord-deprecated_finders (1.0.4)
activerecord-import (1.0.6)
activerecord-import (1.0.5)
activerecord (>= 3.2)
activerecord-postgresql-adapter (0.0.1)
pg
@@ -124,8 +124,8 @@ GEM
multi_json (~> 1.3)
thread_safe (~> 0.1)
tzinfo (~> 0.3.37)
acts-as-taggable-on (4.0.0)
activerecord (>= 4.0)
acts-as-taggable-on (3.5.0)
activerecord (>= 3.2, < 5)
acts_as_list (0.2.0)
activerecord (>= 3.0)
addressable (2.7.0)
@@ -148,7 +148,10 @@ GEM
nokogiri (>= 1.4.4)
uuidtools (~> 2.1)
bcrypt (3.1.13)
bugsnag (6.17.0)
bcrypt-ruby (3.1.5)
bcrypt (>= 3.1.3)
blockenspiel (0.5.0)
bugsnag (6.13.1)
concurrent-ruby (~> 1.0)
builder (3.1.4)
byebug (11.0.1)
@@ -192,19 +195,19 @@ GEM
compass (~> 1.0.0)
sass-rails (< 5.1)
sprockets (< 4.0)
concurrent-ruby (1.1.7)
concurrent-ruby (1.1.6)
crack (0.4.3)
safe_yaml (~> 1.0.0)
css_parser (1.7.1)
addressable
daemons (1.3.1)
dalli (2.7.10)
database_cleaner (1.8.5)
database_cleaner (1.7.0)
db2fog (0.9.0)
activerecord (>= 3.2.0, < 5.0)
fog (~> 1.0)
rails (>= 3.2.0, < 5.0)
ddtrace (0.40.0)
ddtrace (0.36.0)
msgpack
debugger-linecache (1.2.0)
delayed_job (4.1.8)
@@ -217,18 +220,15 @@ GEM
delayed_job (> 2.0.3)
rack-protection (>= 1.5.5)
sinatra (>= 1.4.4)
devise (3.5.10)
bcrypt (~> 3.0)
devise (3.0.4)
bcrypt-ruby (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 3.2.6, < 5)
responders
thread_safe (~> 0.1)
warden (~> 1.2.3)
devise-encryptable (0.2.0)
devise (>= 2.1.0)
devise-token_authenticatable (0.4.10)
devise (>= 3.5.2, < 4.0.0)
diff-lcs (1.3)
diffy (3.3.0)
docile (1.3.2)
dry-inflector (0.1.2)
erubis (2.7.0)
@@ -407,7 +407,7 @@ GEM
fuubar (2.5.0)
rspec-core (~> 3.0)
ruby-progressbar (~> 1.4)
geocoder (1.6.3)
geocoder (1.5.2)
get_process_mem (0.2.5)
ffi (~> 1.0)
gmaps4rails (2.1.2)
@@ -421,7 +421,7 @@ GEM
mime-types (~> 3.0)
multi_xml (>= 0.5.2)
i18n (0.6.11)
i18n-js (3.7.1)
i18n-js (3.7.0)
i18n (>= 0.6.6)
immigrant (0.3.6)
activerecord (>= 3.0)
@@ -434,12 +434,10 @@ GEM
jquery-ui-rails (4.2.1)
railties (>= 3.2.16)
json (1.8.6)
json-schema (2.8.1)
addressable (>= 2.4)
json_spec (1.1.5)
multi_json (~> 1.0)
rspec (>= 2.0, < 4.0)
jwt (2.2.2)
jwt (2.2.1)
kaminari (0.14.1)
actionpack (>= 3.0.0)
activesupport (>= 3.0.0)
@@ -459,7 +457,7 @@ GEM
mime-types-data (3.2020.0512)
mini_mime (1.0.2)
mini_portile2 (2.4.0)
mini_racer (0.2.15)
mini_racer (0.2.14)
libv8 (> 7.3)
minitest (4.7.5)
momentjs-rails (2.20.1)
@@ -467,7 +465,7 @@ GEM
money (5.1.1)
i18n (~> 0.6.0)
msgpack (1.3.3)
multi_json (1.15.0)
multi_json (1.14.1)
multi_xml (0.6.0)
multipart-post (2.1.1)
newrelic_rpm (3.18.1.330)
@@ -479,11 +477,11 @@ GEM
multi_json (~> 1.3)
multi_xml (~> 0.5)
rack (>= 1.2, < 3)
oj (3.10.8)
oj (3.10.6)
optimist (3.0.0)
orm_adapter (0.5.0)
paper_trail (7.1.3)
activerecord (>= 4.0, < 5.2)
paper_trail (5.2.3)
activerecord (>= 3.0, < 6.0)
request_store (~> 1.1)
paperclip (3.4.2)
activemodel (>= 3.0.0)
@@ -502,6 +500,8 @@ GEM
paypal-sdk-merchant (1.106.1)
paypal-sdk-core (~> 0.2.3)
pg (0.21.0)
polyamorous (1.0.0)
activerecord (>= 3.0)
power_assert (1.2.0)
pry (0.12.2)
coderay (~> 1.1.0)
@@ -509,7 +509,7 @@ GEM
pry-byebug (3.7.0)
byebug (~> 11.0)
pry (~> 0.10)
public_suffix (4.0.5)
public_suffix (4.0.3)
rack (1.5.5)
rack-mini-profiler (2.0.2)
rack (>= 1.2.0)
@@ -540,11 +540,12 @@ GEM
rainbow (3.0.0)
raindrops (0.19.1)
rake (13.0.1)
ransack (1.8.10)
actionpack (>= 3.0, < 5.2)
activerecord (>= 3.0, < 5.2)
activesupport (>= 3.0, < 5.2)
ransack (1.2.3)
actionpack (>= 3.0)
activerecord (>= 3.0)
activesupport (>= 3.0)
i18n
polyamorous (~> 1.0.0)
rb-fsevent (0.10.3)
rb-inotify (0.10.1)
ffi (~> 1.0)
@@ -554,10 +555,8 @@ GEM
nokogiri (~> 1.5)
optimist (~> 3.0)
redcarpet (3.5.0)
request_store (1.5.0)
request_store (1.4.1)
rack (>= 1.4)
responders (1.1.2)
railties (>= 3.2, < 4.2)
rexml (3.2.4)
roadie (3.4.0)
css_parser (~> 1.4)
@@ -591,19 +590,6 @@ GEM
rspec-retry (0.6.2)
rspec-core (> 3.3)
rspec-support (3.9.2)
rswag (2.3.1)
rswag-api (= 2.3.1)
rswag-specs (= 2.3.1)
rswag-ui (= 2.3.1)
rswag-api (2.3.1)
railties (>= 3.1, < 7.0)
rswag-specs (2.3.1)
activesupport (>= 3.1, < 7.0)
json-schema (~> 2.2)
railties (>= 3.1, < 7.0)
rswag-ui (2.3.1)
actionpack (>= 3.1, < 7.0)
railties (>= 3.1, < 7.0)
rubocop (0.81.0)
jaro_winkler (~> 1.5.1)
parallel (~> 1.10)
@@ -671,7 +657,7 @@ GEM
uglifier (4.2.0)
execjs (>= 0.3.0, < 3)
unicode-display_width (1.7.0)
unicorn (5.6.0)
unicorn (5.5.5)
kgio (~> 2.6)
raindrops (~> 0.7)
unicorn-rails (2.2.1)
@@ -693,7 +679,7 @@ GEM
hashdiff (>= 0.4.0, < 2.0.0)
whenever (1.0.0)
chronic (>= 0.6.3)
wicked_pdf (2.1.0)
wicked_pdf (1.4.0)
activesupport
wkhtmltopdf-binary (0.12.5)
xml-simple (1.1.5)
@@ -711,7 +697,7 @@ DEPENDENCIES
activerecord-import
activerecord-postgresql-adapter
activerecord-session_store
acts-as-taggable-on (~> 4.0)
acts-as-taggable-on (~> 3.4)
acts_as_list (= 0.2.0)
andand
angular-rails-templates (~> 0.3.0)
@@ -721,6 +707,7 @@ DEPENDENCIES
awesome_nested_set (~> 3.0.0.rc.1)
awesome_print
aws-sdk (= 1.11.1)
blockenspiel
bugsnag
byebug (~> 11.0.0)
cancan (~> 1.6.10)
@@ -738,10 +725,10 @@ DEPENDENCIES
debugger-linecache
delayed_job_active_record
delayed_job_web
devise (~> 3.5.10)
devise (~> 3.0.1)
devise-encryptable
devise-token_authenticatable (~> 0.4.10)
dfc_provider!
diffy
eventmachine (>= 1.2.3)
factory_bot_rails (= 4.10.0)
ffaker (~> 1.16)
@@ -756,7 +743,7 @@ DEPENDENCIES
highline (= 1.6.18)
httparty (~> 0.18)
i18n (~> 0.6.11)
i18n-js (~> 3.7.1)
i18n-js (~> 3.7.0)
immigrant
jquery-migrate-rails
jquery-rails (= 3.1.5)
@@ -767,7 +754,7 @@ DEPENDENCIES
kaminari (~> 0.14.1)
knapsack
letter_opener (>= 1.4.1)
mini_racer (= 0.2.15)
mini_racer (= 0.2.14)
momentjs-rails
money (= 5.1.1)
newrelic_rpm (~> 3.0)
@@ -775,7 +762,7 @@ DEPENDENCIES
ofn-qz!
oj
order_management!
paper_trail (~> 7.1.3)
paper_trail (~> 5.2.3)
paperclip (~> 3.4.1)
paranoia (~> 2.0)
pg (~> 0.21.0)
@@ -787,13 +774,12 @@ DEPENDENCIES
rails (~> 4.0.13)
rails-i18n (~> 4.0)
rails_safe_tasks (~> 1.0)
ransack (~> 1.8.10)
ransack (~> 1.2.3)
redcarpet
roadie-rails (~> 1.3.0)
roo (~> 2.8.3)
rspec-rails (>= 3.5.2)
rspec-retry
rswag
rubocop
rubocop-rails
sass

View File

Before

Width:  |  Height:  |  Size: 283 KiB

After

Width:  |  Height:  |  Size: 283 KiB

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

View File

Before

Width:  |  Height:  |  Size: 957 B

After

Width:  |  Height:  |  Size: 957 B

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -80,11 +80,7 @@
//= require moment/nb.js
//= require moment/pt-br.js
//= require moment/pt.js
//= require moment/ru.js
//= require moment/sv.js
//= require moment/ca.js
//= require moment/ar.js
//= require moment/tr.js
// foundation
//= require ../shared/mm-foundation-tpls-0.9.0-20180826174721.min.js

View File

@@ -23,13 +23,10 @@ angular.module("admin.orders").controller "ordersCtrl", ($scope, $timeout, Reque
$scope.fetchResults()
$scope.fetchResults = (page=1) ->
startDateWithTime = $scope.appendStringIfNotEmpty($scope['q']['completed_at_gteq'], ' 00:00:00')
endDateWithTime = $scope.appendStringIfNotEmpty($scope['q']['completed_at_lteq'], ' 23:59:59')
$scope.resetSelected()
params = {
'q[completed_at_gteq]': startDateWithTime,
'q[completed_at_lteq]': endDateWithTime,
'q[completed_at_lt]': $scope['q']['completed_at_lt'],
'q[completed_at_gt]': $scope['q']['completed_at_gt'],
'q[state_eq]': $scope['q']['state_eq'],
'q[number_cont]': $scope['q']['number_cont'],
'q[email_cont]': $scope['q']['email_cont'],
@@ -46,11 +43,6 @@ angular.module("admin.orders").controller "ordersCtrl", ($scope, $timeout, Reque
}
RequestMonitor.load(Orders.index(params).$promise)
$scope.appendStringIfNotEmpty = (baseString, stringToAppend) ->
return baseString unless baseString
baseString + stringToAppend
$scope.resetSelected = ->
$scope.selected_orders.length = 0
$scope.selected = false

View File

@@ -37,11 +37,7 @@
#= require moment/nb.js
#= require moment/pt-br.js
#= require moment/pt.js
#= require moment/ru.js
#= require moment/sv.js
#= require moment/ca.js
#= require moment/ar.js
#= require moment/tr.js
#
#= require modernizr
#

View File

@@ -2,6 +2,15 @@ Darkswarm.controller "OrderCycleCtrl", ($scope, $rootScope, $timeout, OrderCycle
$scope.order_cycle = OrderCycle.order_cycle
$scope.OrderCycle = OrderCycle
# Timeout forces this to be evaluated after everything is loaded
# This is a hack. We should probably write our own "popover" directive
# That takes an expression instead of a trigger, and binds to that
$timeout =>
$rootScope.$broadcast 'orderCycleSelected'
if !$scope.OrderCycle.selected()
$("#order_cycle_id").trigger("openTrigger")
Darkswarm.controller "OrderCycleChangeCtrl", ($scope, $rootScope, $timeout, OrderCycle, Products, Variants, Cart, ChangeableOrdersAlert) ->
# Track previous order cycle id for use with revertOrderCycle()
$scope.previous_order_cycle_id = OrderCycle.order_cycle.order_cycle_id

View File

@@ -1,4 +1,4 @@
Darkswarm.controller "PageSelectionCtrl", ($scope, $rootScope, $location) ->
Darkswarm.controller "PageSelectionCtrl", ($scope, $location) ->
$scope.selectedPage = ->
# The path looks like `/contact` for the URL `https://ofn.org/shop#/contact`.
# We remove the slash at the beginning.
@@ -15,8 +15,3 @@ Darkswarm.controller "PageSelectionCtrl", ($scope, $rootScope, $location) ->
$scope.whitelistPages = (pages) ->
$scope.whitelist = pages
$scope.lastPage = pages[0]
# when an order cycle is changed, ensure the shop tab is active to save a click
$rootScope.$on "orderCycleSelected", ->
if $scope.selectedPage() != "shop"
$location.path("shop")

View File

@@ -12,11 +12,6 @@ Darkswarm.controller "ProductsCtrl", ($scope, $sce, $filter, $rootScope, Product
$scope.supplied_properties = null
$scope.showFilterSidebar = false
# Update filters after initial load of shop tab
$timeout =>
$scope.update_filters()
# Update filters when order cycle changed
$rootScope.$on "orderCycleSelected", ->
$scope.update_filters()
$scope.clearAll()

View File

@@ -16,5 +16,8 @@ window.Darkswarm = angular.module("Darkswarm", [
$httpProvider.defaults.headers['common']['X-Requested-With'] = 'XMLHttpRequest'
$httpProvider.defaults.headers.common.Accept = "application/json, text/javascript, */*"
# This allows us to trigger these two events on tooltips
$tooltipProvider.setTriggers( 'openTrigger': 'closeTrigger' )
# We manually handle our scrolling
$anchorScrollProvider.disableAutoScrolling()

View File

@@ -1,9 +0,0 @@
Darkswarm.directive "disableEnterWithBlur", ()->
# Stops enter from doing normal enter things, and blurs the input
restrict: 'A'
link: (scope, element, attrs)->
element.bind "keydown keypress", (e)->
code = e.keyCode || e.which
if code == 13
element.blur()
e.preventDefault()

View File

@@ -43,7 +43,7 @@ Darkswarm.directive 'mapSearch', ($timeout, Search) ->
# When the map loads, and we have a search from ?query, perform that search
scope.performUrlSearch = (map) ->
google.maps.event.addListenerOnce map, "idle", =>
google.maps.event.trigger(scope.input, 'focus',{});
google.maps.event.trigger(scope.input, 'focus');
google.maps.event.trigger(scope.input, 'keydown', {keyCode: 13});
# Bias the SearchBox results towards places that are within the bounds of the

View File

@@ -1,4 +1,4 @@
Darkswarm.directive 'ofnOpenStreetMap', ($window, MapCentreCalculator, Enterprises, EnterpriseModal, availableCountries, openStreetMapConfig) ->
Darkswarm.directive 'ofnOpenStreetMap', ($window, Enterprises, EnterpriseModal, availableCountries, openStreetMapConfig) ->
restrict: 'E'
replace: true
scope: true
@@ -11,6 +11,34 @@ Darkswarm.directive 'ofnOpenStreetMap', ($window, MapCentreCalculator, Enterpris
openStreetMapProviderName = openStreetMapConfig.open_street_map_provider_name
openStreetMapProviderOptions = JSON.parse(openStreetMapConfig.open_street_map_provider_options)
average = (values) ->
total = values.reduce (sum, value) ->
sum = sum + value
, 0
total / values.length
averageAngle = (angleName) ->
positiveAngles = []
negativeAngles = []
for enterprise in Enterprises.enterprises
if enterprise.latitude? && enterprise.longitude?
if enterprise[angleName] > 0
positiveAngles.push(enterprise[angleName])
else
negativeAngles.push(enterprise[angleName])
averageNegativeAngle = average(negativeAngles)
averagePositiveAngle = average(positiveAngles)
if negativeAngles.length == 0
averagePositiveAngle
else if positiveAngles.length == 0
averageNegativeAngle
else if averagePositiveAngle > averageNegativeAngle
averagePositiveAngle - averageNegativeAngle
else
averageNegativeAngle - averagePositiveAngle
buildMarker = (enterprise, latlng, title) ->
icon = L.icon
iconUrl: enterprise.icon
@@ -33,31 +61,28 @@ Darkswarm.directive 'ofnOpenStreetMap', ($window, MapCentreCalculator, Enterpris
displayMap = ->
setMapDimensions()
averageLatitude = averageAngle("latitude")
averageLongitude = averageAngle("longitude")
zoomLevel = 6
map = L.map('open-street-map')
L.tileLayer.provider(openStreetMapProviderName, openStreetMapProviderOptions).addTo(map)
map.setView([MapCentreCalculator.initialLatitude(), MapCentreCalculator.initialLongitude()], zoomLevel)
map.setView([averageLatitude, averageLongitude], zoomLevel)
displayEnterprises = ->
for enterprise in Enterprises.geocodedEnterprises()
marker = buildMarker(enterprise, { lat: enterprise.latitude, lng: enterprise.longitude }, enterprise.name).addTo(map)
enterpriseNames.push(enterpriseName(enterprise))
markers.push(marker)
disableSearchField = () =>
$('#open-street-map--search input').prop("disabled", true)
for enterprise in Enterprises.enterprises
if enterprise.latitude? && enterprise.longitude?
marker = buildMarker(enterprise, { lat: enterprise.latitude, lng: enterprise.longitude }, enterprise.name).addTo(map)
enterpriseNames.push(enterpriseName(enterprise))
markers.push(marker)
displaySearchField = () ->
new Autocomplete('#open-street-map--search',
onSubmit: goToEnterprise
search: searchEnterprises
)
overwriteInlinePositionRelativeToAbsoluteOnSearchField()
if Enterprises.geocodedEnterprises().length == 0
disableSearchField()
overwriteInlinePositionRelativeToAbsoluteOnSearchField = ->
$('#open-street-map--search').css("position", "absolute")
overwriteInlinePositionRelativeToPositionSearchField = ->
$('#open-street-map--search').css("position", "absolute")
overwriteInlinePositionRelativeToPositionSearchField()
searchEnterprises = (input) ->
if input.length < 1

View File

@@ -12,4 +12,4 @@ Darkswarm.filter "sensible_timeframe", (date_in_wordsFilter)->
if moment().add(2, 'days') < moment(date, dateFormat)
t 'orders_open'
else
t('closing') + ' ' + date_in_wordsFilter(date)
t('closing') + date_in_wordsFilter(date)

View File

@@ -1,4 +1,4 @@
Darkswarm.factory 'Cart', (CurrentOrder, Variants, $timeout, $http, $modal, $rootScope, $resource, localStorageService, Messages) ->
Darkswarm.factory 'Cart', (CurrentOrder, Variants, $timeout, $http, $modal, $rootScope, $resource, localStorageService, RailsFlashLoader) ->
# Handles syncing of current cart/order state to server
new class Cart
dirty: false
@@ -50,7 +50,7 @@ Darkswarm.factory 'Cart', (CurrentOrder, Variants, $timeout, $http, $modal, $roo
@popQueue() if @update_enqueued
.error (response, status)=>
Messages.flash({error: t('js.cart.add_to_cart_failed')})
RailsFlashLoader.loadFlash({error: t('js.cart.add_to_cart_failed')})
@update_running = false
compareAndNotifyStockLevels: (stockLevels) =>

View File

@@ -1,4 +1,4 @@
Darkswarm.factory 'Checkout', ($injector, CurrentOrder, ShippingMethods, StripeElements, PaymentMethods, $http, Navigation, CurrentHub, Messages)->
Darkswarm.factory 'Checkout', ($injector, CurrentOrder, ShippingMethods, StripeElements, PaymentMethods, $http, Navigation, CurrentHub, RailsFlashLoader, Loading)->
new class Checkout
errors: {}
secrets: {}
@@ -13,7 +13,7 @@ Darkswarm.factory 'Checkout', ($injector, CurrentOrder, ShippingMethods, StripeE
@submit()
submit: =>
Messages.loading(t 'submitting_order')
Loading.message = t 'submitting_order'
$http.put('/checkout.json', {order: @preprocess()})
.then (response) =>
Navigation.go response.data.path
@@ -24,8 +24,7 @@ Darkswarm.factory 'Checkout', ($injector, CurrentOrder, ShippingMethods, StripeE
try
@loadFlash(error: t("checkout.failed")) # inform the user about the unexpected error
finally
Bugsnag.notify(error)
throw error
throw error # generate a BugsnagJS alert
handle_checkout_error_response: (response) =>
throw response unless response.data?
@@ -39,7 +38,8 @@ Darkswarm.factory 'Checkout', ($injector, CurrentOrder, ShippingMethods, StripeE
@loadFlash(response.data.flash)
loadFlash: (flash) =>
Messages.flash(flash)
Loading.clear()
RailsFlashLoader.loadFlash(flash)
# Rails wants our Spree::Address data to be provided with _attributes
preprocess: ->

View File

@@ -1,4 +1,4 @@
Darkswarm.factory 'CreditCard', ($injector, $rootScope, CreditCards, StripeElements, Navigation, $http, Messages)->
Darkswarm.factory 'CreditCard', ($injector, $rootScope, CreditCards, StripeElements, Navigation, $http, RailsFlashLoader, Loading)->
new class CreditCard
visible: false
errors: {}
@@ -12,15 +12,16 @@ Darkswarm.factory 'CreditCard', ($injector, $rootScope, CreditCards, StripeEleme
params = @process_params()
$http.put('/credit_cards/new_from_token', params )
.success (data, status) =>
Messages.clear()
Loading.clear()
@reset()
CreditCards.add(data)
.error (response, status) =>
if response.path
Navigation.go response.path
else
Loading.clear()
@errors = response.errors
Messages.flash(response.flash)
RailsFlashLoader.loadFlash(response.flash)
setFullName: ->
@secrets.name = "#{@secrets.first_name} #{@secrets.last_name}"

View File

@@ -1,4 +1,4 @@
Darkswarm.factory 'CreditCards', ($http, $filter, savedCreditCards, Messages)->
Darkswarm.factory 'CreditCards', ($http, $filter, savedCreditCards, RailsFlashLoader)->
new class CreditCard
saved: $filter('orderBy')(savedCreditCards,'-is_default')
@@ -10,6 +10,6 @@ Darkswarm.factory 'CreditCards', ($http, $filter, savedCreditCards, Messages)->
for othercard in @saved when othercard != card
othercard.is_default = false
$http.put("/credit_cards/#{card.id}", is_default: true).then (data) ->
Messages.success(t('js.default_card_updated'))
RailsFlashLoader.loadFlash({success: t('js.default_card_updated')})
, (response) ->
Messages.flash(response.data.flash)
RailsFlashLoader.loadFlash({error: response.data.flash.error})

View File

@@ -1,4 +1,4 @@
angular.module("Darkswarm").factory 'Customer', ($resource, Messages) ->
angular.module("Darkswarm").factory 'Customer', ($resource, RailsFlashLoader) ->
Customer = $resource('/api/customers/:id/:action.json', {}, {
'index':
method: 'GET'
@@ -13,8 +13,8 @@ angular.module("Darkswarm").factory 'Customer', ($resource, Messages) ->
Customer.prototype.update = ->
@$update().then (response) =>
Messages.success(t('js.changes_saved'))
RailsFlashLoader.loadFlash({success: t('js.changes_saved')})
, (response) =>
Messages.error(response.data.error)
RailsFlashLoader.loadFlash({error: response.data.error})
Customer

View File

@@ -84,8 +84,3 @@ Darkswarm.factory 'Enterprises', (enterprises, ShopsResource, CurrentHub, Taxons
resetDistance: ->
enterprise.distance = null for enterprise in @enterprises
geocodedEnterprises: =>
@enterprises.filter (enterprise) ->
enterprise.latitude? && enterprise.longitude?

View File

@@ -1,5 +1,5 @@
Darkswarm.factory "Loading", ->
new class Loading
message: null
message: null
clear: =>
@message = null

View File

@@ -2,7 +2,9 @@ Darkswarm.factory "OfnMap", (Enterprises, EnterpriseListModal, MapConfiguration)
new class OfnMap
constructor: ->
@coordinates = {}
@enterprises = Enterprises.geocodedEnterprises()
@enterprises = Enterprises.enterprises.filter (enterprise) ->
# Remove enterprises w/o lat or long
enterprise.latitude != null || enterprise.longitude != null
@enterprises = @enterprise_markers(@enterprises)
enterprise_markers: (enterprises) ->

View File

@@ -1,30 +0,0 @@
Darkswarm.factory 'MapCentreCalculator', (Enterprises, openStreetMapConfig) ->
new class MapCentreCalculator
initialLatitude: =>
if Enterprises.geocodedEnterprises().length > 0
@_calculate("latitude", Enterprises.geocodedEnterprises())
else
openStreetMapConfig.open_street_map_default_latitude
initialLongitude: =>
if Enterprises.geocodedEnterprises().length > 0
@_calculate("longitude", Enterprises.geocodedEnterprises())
else
openStreetMapConfig.open_street_map_default_longitude
_calculate: (angleName, coordinates) =>
angles = []
for coordinate in coordinates
angles.push(coordinate[angleName])
minimumAngle = Math.min.apply(null, angles)
maximumAngle = Math.max.apply(null, angles)
distanceBetweenMinimumAndMaximum = if maximumAngle > minimumAngle
maximumAngle - minimumAngle
else
minimumAngle - maximumAngle
minimumAngle + (distanceBetweenMinimumAndMaximum / 2)

View File

@@ -1,17 +0,0 @@
Darkswarm.factory "Messages", (Loading, RailsFlashLoader)->
new class Messages
loading: (message) ->
Loading.message = message
success: (message) ->
@flash(success: message)
error: (message) ->
@flash(error: message)
flash: (flash) ->
@clear()
RailsFlashLoader.loadFlash(flash)
clear: ->
Loading.clear()

View File

@@ -34,7 +34,7 @@ Darkswarm.factory 'Products', (OrderCycleResource, OrderCycle, Shopfront, curren
product.price = Math.min.apply(null, prices)
product.hasVariants = product.variants?.length > 0
product.primaryImage = product.images[0]?.small_url if product.images
product.primaryImageOrMissing = product.primaryImage || "/noimage/small.png"
product.primaryImageOrMissing = product.primaryImage || "/assets/noimage/small.png"
product.largeImage = product.images[0]?.large_url if product.images
dereference: ->

View File

@@ -1,4 +1,4 @@
Darkswarm.factory 'StripeElements', ($rootScope, Messages) ->
Darkswarm.factory 'StripeElements', ($rootScope, Loading, RailsFlashLoader) ->
new class StripeElements
# These are both set from the StripeElements directive
stripe: null
@@ -8,49 +8,39 @@ Darkswarm.factory 'StripeElements', ($rootScope, Messages) ->
requestToken: (secrets, submit, loading_message = t("processing_payment")) ->
return unless @stripe? && @card?
Messages.loading loading_message
Loading.message = loading_message
cardData = @makeCardData(secrets)
@stripe.createToken(@card, cardData).then (response) =>
if(response.error)
@reportError(response.error, t("error") + ": #{response.error.message}")
Loading.clear()
RailsFlashLoader.loadFlash({error: t("error") + ": #{response.error.message}"})
@triggerAngularDigest()
console.error(JSON.stringify(response.error))
else
secrets.token = response.token.id
secrets.cc_type = @mapTokenApiCardBrand(response.token.card.brand)
secrets.card = response.token.card
submit()
.catch (response) =>
# Stripe handles errors in the response above. This code may never be
# reached. But if we get here, we want to know.
@reportError(response, t("js.stripe_elements.unknown_error_from_stripe"))
throw response
# Create Payment Method to be used with the Stripe Payment Intents API
createPaymentMethod: (secrets, submit, loading_message = t("processing_payment")) ->
return unless @stripe? && @card?
Messages.loading loading_message
Loading.message = loading_message
cardData = @makeCardData(secrets)
@stripe.createPaymentMethod({ type: 'card', card: @card }, @card, cardData).then (response) =>
if(response.error)
@reportError(response.error, t("error") + ": #{response.error.message}")
Loading.clear()
RailsFlashLoader.loadFlash({error: t("error") + ": #{response.error.message}"})
@triggerAngularDigest()
console.error(JSON.stringify(response.error))
else
secrets.token = response.paymentMethod.id
secrets.cc_type = @mapPaymentMethodsApiCardBrand(response.paymentMethod.card.brand)
secrets.card = response.paymentMethod.card
submit()
.catch (response) =>
# Stripe handles errors in the response above. This code may never be
# reached. But if we get here, we want to know.
@reportError(response, t("js.stripe_elements.unknown_error_from_stripe"))
throw response
reportError: (error, messageForUser) ->
Messages.error(messageForUser)
@triggerAngularDigest()
console.error(error)
Bugsnag.notify(new Error(JSON.stringify(error)))
triggerAngularDigest: ->
# $evalAsync is improved way of triggering a digest without calling $apply

View File

@@ -15,6 +15,6 @@
.columns.small-12.medium-6.large-6.product-img
%img{"ng-src" => "{{::product.largeImage}}", "ng-if" => "::product.largeImage"}
%img.placeholder{ src: "/noimage/large.png", "ng-if" => "::!product.largeImage"}
%img.placeholder{ src: "/assets/noimage/large.png", "ng-if" => "::!product.largeImage"}
%ng-include{src: "'partials/close.html'"}

View File

@@ -3,7 +3,6 @@
.report__table {
margin-top: 2em;
}
.report__message {
margin-top: 2em;
border: 1px solid $pale-blue;
@@ -11,7 +10,3 @@
padding: .5em;
text-align: center;
}
.customer-names-tip {
margin-top: 1em;
}

View File

@@ -20,11 +20,9 @@
&:first-child {
padding-left: 0;
width: 70%;
}
&:last-child {
padding-right: 0;
width: 30%;
}
}
}

Some files were not shown because too many files have changed in this diff Show More