cyrillefr
ce8a2b3251
Fixes Rails/SkipsModelValidations offenses
...
- increments! & decrement! skip validations
- replaced increment! method calls
- one call was for a redefined increment! method
- the other for a regular(ActiveRecord::Persistence)
- removes increments/decrements definition now useless
2024-07-05 16:35:40 +02:00
Abdellani
0337464291
update logged message when a product is deleted
2024-06-19 15:15:04 +01:00
Maikel
8837f1caa2
Revert "Allow negative stock levels for on-demand products"
2024-06-19 15:18:57 +10:00
Maikel
2f173cb5c2
Merge pull request #12536 from mkllnk/stock-levels
...
Allow negative stock levels for on-demand products
2024-06-13 10:26:01 +10:00
Maikel Linke
e6ac2f0d88
Style/SuperArguments
...
Call super without arguments and parentheses when the signature is identical.
2024-06-05 09:29:42 +10:00
Maikel Linke
ecbba894f7
Update stock levels of on-demand items
...
We weren't bothering with stock when items were on demand anyway. But we
want to track stock now so that we can backorder more when local stock
levels become negative.
2024-05-31 16:38:24 +10:00
Mohamed ABDELLANI
8ccb59a9ab
included LogDestroyPerformer on product model
2024-05-17 15:42:39 +01:00
Mohamed ABDELLANI
40b2361572
add LogDestroyPerformer concern to be included in models where we want log destroy action
2024-05-09 14:38:21 +01:00
Feruz Oripov
9d919938f3
Group Order && OrderCycle related services and specs
2024-03-16 19:07:08 +05:00
Neal Chambers
4ffd3759cc
Fix Style/HashSyntax
2023-09-12 23:19:05 +09:00
Neal Chambers
06e217c527
Safely autocorrect Rails/WhereNot
...
Inspecting 1483 files
........................................................................................................................C..................................................................................................................C...........CC.C..........................................C......C..........C.........................C......................CC..........C........................................................................................................................C.......................................................................................................C........................................................C...........................................................................................................................................C......................................C.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Offenses:
app/controllers/spree/admin/products_controller.rb:183:11: C: [Corrected] Rails/WhereNot: Use where.not(spree_variants: { import_date: nil }) instead of manually constructing negated SQL in where.
where('spree_variants.import_date IS NOT NULL').
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/concerns/permalink_generator.rb:37:26: C: [Corrected] Rails/WhereNot: Use where.not(id: id) instead of manually constructing negated SQL in where.
scope_with_deleted.where('id != ?', id)
^^^^^^^^^^^^^^^^^^^^
app/models/concerns/permalink_generator.rb:37:40: C: [Corrected] Style/HashSyntax: Omit the hash value.
scope_with_deleted.where.not(id: id)
^^
app/models/enterprise.rb:152:7: C: [Corrected] Rails/WhereNot: Use where.not(enterprises: { id: ready_enterprises }) instead of manually constructing negated SQL in where.
where("enterprises.id NOT IN (?)", ready_enterprises)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise.rb:158:31: C: [Corrected] Rails/WhereNot: Use where.not(sells: 'none') instead of manually constructing negated SQL in where.
scope :is_distributor, -> { where('sells != ?', 'none') }
^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise.rb:479:17: C: [Corrected] Rails/WhereNot: Use where.not(id: id) instead of manually constructing negated SQL in where.
dups = dups.where('id != ?', id) unless new_record?
^^^^^^^^^^^^^^^^^^^^
app/models/enterprise.rb:534:43: C: [Corrected] Rails/WhereNot: Use where.not(enterprises: { id: self }) instead of manually constructing negated SQL in where.
enterprises = owner.owned_enterprises.where('enterprises.id != ?', self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise.rb:583:7: C: [Corrected] Rails/WhereNot: Use where.not(enterprises: { id: id }) instead of manually constructing negated SQL in where.
where('enterprises.id != ?', id).
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise_fee.rb:40:24: C: [Corrected] Rails/WhereNot: Use where.not(spree_calculators: { type: PER_ORDER_CALCULATORS }) instead of manually constructing negated SQL in where.
joins(:calculator).where('spree_calculators.type NOT IN (?)', PER_ORDER_CALCULATORS)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/enterprise_relationship.rb:78:19: C: [Corrected] Rails/WhereNot: Use where.not(name: perms) instead of manually constructing negated SQL in where.
permissions.where('name NOT IN (?)', perms).destroy_all
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/product_import/inventory_reset_strategy.rb:27:16: C: [Corrected] Rails/WhereNot: Use where.not(id: excluded_items_ids) instead of manually constructing negated SQL in where.
relation.where('id NOT IN (?)', excluded_items_ids)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/proxy_order.rb:19:25: C: [Corrected] Rails/WhereNot: Use where.not(proxy_orders: { canceled_at: nil }) instead of manually constructing negated SQL in where.
scope :canceled, -> { where('proxy_orders.canceled_at IS NOT NULL') }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/credit_card.rb:26:39: C: [Corrected] Rails/WhereNot: Use where.not(gateway_customer_profile_id: nil) instead of manually constructing negated SQL in where.
scope :with_payment_profile, -> { where('gateway_customer_profile_id IS NOT NULL') }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/product.rb:166:9: C: [Corrected] Rails/WhereNot: Use where.not(order_cycles: { id: nil }) instead of manually constructing negated SQL in where.
where('order_cycles.id IS NOT NULL')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/variant.rb:94:30: C: [Corrected] Rails/WhereNot: Use where.not(deleted_at: nil) instead of manually constructing negated SQL in where.
scope :deleted, lambda { where('deleted_at IS NOT NULL') }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/variant.rb:165:43: C: [Corrected] Rails/WhereNot: Use where.not(spree_prices: { amount: nil }) instead of manually constructing negated SQL in where.
where('spree_prices.amount IS NOT NULL').
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/models/spree/zone.rb:141:19: C: [Corrected] Rails/WhereNot: Use where.not(id: id) instead of manually constructing negated SQL in where.
Spree::Zone.where('id != ?', id).update_all(default_tax: false) if default_tax
^^^^^^^^^^^^^^^^^^^^
app/models/spree/zone.rb:141:33: C: [Corrected] Style/HashSyntax: Omit the hash value.
Spree::Zone.where.not(id: id).update_all(default_tax: false) if default_tax
^^
app/models/variant_override.rb:32:7: C: [Corrected] Rails/WhereNot: Use where.not(variant_overrides: { import_date: nil }) instead of manually constructing negated SQL in where.
where('variant_overrides.import_date IS NOT NULL').
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
app/services/cap_quantity.rb:45:22: C: [Corrected] Rails/WhereNot: Use where.not(variant_id: available_variants_for.select(&:id)) instead of manually constructing negated SQL in where.
order.line_items.where('variant_id NOT IN (?)', available_variants_for.select(&:id))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
engines/catalog/app/services/catalog/product_import/products_reset_strategy.rb:32:18: C: [Corrected] Rails/WhereNot: Use where.not(spree_variants: { id: excluded_items_ids }) instead of manually constructing negated SQL in where.
relation.where('spree_variants.id NOT IN (?)', excluded_items_ids)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
engines/order_management/app/services/order_management/subscriptions/proxy_order_syncer.rb:78:18: C: [Corrected] Rails/WhereNot: Use where.not(order_cycle_id: order_cycle_ids) instead of manually constructing negated SQL in where.
orphaned.where('order_cycle_id NOT IN (?)', order_cycle_ids)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/reporting/reports/users_and_enterprises/base.rb:27:14: C: [Corrected] Rails/WhereNot: Use where.not(enterprises: { id: nil }) instead of manually constructing negated SQL in where.
.where("enterprises.id IS NOT NULL")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/reporting/reports/users_and_enterprises/base.rb:39:14: C: [Corrected] Rails/WhereNot: Use where.not(enterprise_id: nil) instead of manually constructing negated SQL in where.
.where("enterprise_id IS NOT NULL")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/reporting/reports/users_and_enterprises/base.rb:40:14: C: [Corrected] Rails/WhereNot: Use where.not(user_id: nil) instead of manually constructing negated SQL in where.
.where("user_id IS NOT NULL")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lib/tasks/data/anonymize_data.rake:50:16: C: [Corrected] Rails/WhereNot: Use where.not(user_id: nil) instead of manually constructing negated SQL in where.
Customer.where("user_id IS NOT NULL")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1483 files inspected, 26 offenses detected, 26 offenses corrected
2023-08-20 12:33:43 +09:00
Neal Chambers
3c9afcf360
Fix Rails/CompactBlank
2023-08-17 16:43:13 +09:00
Neal Chambers
1e4034534c
Fix Layout/LineLength
2023-06-23 09:08:04 +09:00
Maikel Linke
99fbf80b4c
Style Layout/MultilineMethodCallIndentation
2023-06-08 11:15:42 +10:00
Matt-Yorkley
760bf269ca
Pull validations-related methods out into a separate module
2023-06-07 18:54:20 +01:00
James Wu
a75f16e23c
Implement full_name_for_sorting
2023-04-11 15:25:20 +10:00
Rachel Arnould
2652bc086a
Merge pull request #9755 from cillian/order-cycle-payment-methods
...
Let people choose which payment methods are available to customers on order cycles
2022-10-26 20:10:34 +02:00
Cillian O'Ruanaidh
5423c1c02e
Resolve conflict in db/schema.rb
2022-10-21 17:21:24 +01:00
Matt-Yorkley
c0ee72319f
Remove dead code: Product#variants?
...
This only makes sense in the context of Products which only have "master" variants, and we removed that option a while back.
Remove #variants? check from ProductStock concern
2022-10-19 16:30:12 +11:00
Maikel Linke
86731d7e30
Remove compatibility code for migrating files
...
The migration should be complete now.
2022-06-01 17:16:55 +10:00
Maikel Linke
727eef3c4f
Replace Paperclippable ContentConfig
...
The old Paperclip configuration was very clever and easy to use but it
was also a complicated implementation building on the complicated Spree
preference system.
I simplified this with Active Storage, storing simple references to blob
ids and default URLs as backup.
2022-06-01 17:16:54 +10:00
Maikel Linke
1c1f9d73a3
Add task to migrate existing files to Active Storage
...
Common migrations look for all models with *_file_name attributes but I
found that unreliable in our code base. It finds too many model classes
and doesn't allow us to be more selective in the migration. So I used
our own migration declaration to migrate exactly those attachments
specified.
2022-04-25 13:00:31 +10:00
Maikel Linke
92bbcbb7ce
Process correct attachment when model has several
...
Luckily Paperclip has designated callbacks for processing each
attachment separately. We can just hook into that.
2022-04-25 13:00:31 +10:00
Maikel Linke
c36ad96acc
Move file duplication code to concern to share
...
I chose `has_one_migrating` as method name for two reasons:
1. It reflects Active Storage's method `has_one_attached`.
2. And it has the same length as Paperclip's `has_attached_file`.
Therefore the commits don't need any whitespace changes.
When we change it to `has_one_attached`, we will also remove the
Paperclip options which then don't need whitespace changes either.
2022-04-25 13:00:31 +10:00
Filipe
374c05116b
Merge pull request #8726 from Matt-Yorkley/stringex-machina
...
Reduce impact of stringex gem
2022-01-26 19:02:41 +00:00
GeorgeThoppil
f1c4f80be4
Adding deleted_at check on variant_stock move
2022-01-23 13:45:54 -05:00
Matt-Yorkley
3f5e5d52ad
Improve concern syntax and definition
2022-01-15 12:31:43 +00:00
Matt-Yorkley
ea312c78b0
Move PermalinkGenerator out of lib directory
2022-01-15 12:31:43 +00:00
Luis Azcuaga
e8fd89a6d2
Run rubocop over existing todo
2021-10-25 21:28:28 -05:00
Nihal M. Kelanthodika
c632442466
Update unused company field to 'unused'
2021-10-06 15:06:56 +05:30
Nihal
7eb0c6c33c
Add module to set unused ship, bill address fields
2021-10-06 15:06:56 +05:30
Matt-Yorkley
b4278aabbf
Merge branch 'master' into 8009-handling-shipping-adress
2021-09-07 09:44:49 +02:00
Matt-Yorkley
cfee804339
Improve concern loading
...
It shouldn't need `require` or `prepend`
2021-09-06 14:19:13 +01:00
Matt-Yorkley
b25759670e
Implement ransackable whitelisting
2021-09-02 13:43:22 +01:00
Matt-Yorkley
3dd8ed85b4
Implement manual shipping method selection
2021-09-01 14:16:32 +01:00
Matt-Yorkley
0764484f41
Remove class_eval in PaymentMethodDistributors
2021-07-24 21:28:13 +01:00
Matt-Yorkley
2d69810c5d
Convert CalculatedAdjustments into a proper Concern and remove class_eval
2021-07-24 21:28:13 +01:00
Luis Ramos
e52937c113
Use rubocop auto correct to add frozen string literal to all files
...
This is an unsafe auto corection, we will need to trust our build here
2021-06-17 23:07:26 +01:00
Pau Perez
d26c52c2fa
Memoize OrderBalance instance
...
There's no need to create an instance of such class for every call to
one of its methods. The balance is computed each time anyway, so it'll
always be up-to-date.
2021-04-19 11:52:41 +02:00
Pau Perez
5bca7d1f8f
Remove the old balance's code branch
...
This keeps the `OrderBalance` abstraction but removes the old code now
that the feature is enabled for all users in all instances and there are
no bugs reported. It's become dead code.
2021-04-19 11:52:41 +02:00
Matt-Yorkley
77506caca1
Rename OrderBalance methods for clarity
2021-03-31 13:09:17 +01:00
Pau Pérez Fabregat
7d5726b6c7
Merge pull request #7150 from coopdevs/use-order-balance-object
...
Feature-toggle all remaining parts of the app where the order balance is shown
2021-03-30 15:58:12 +02:00
Matt-Yorkley
593764851f
Remove LineItemBasedAdjustmentHandling
2021-03-27 18:59:49 +00:00
Pau Perez
5815d1a4a4
Make #outstanding_balance return an OrderBalance
...
This will let us branch by abstraction. All existing calls to
`#outstanding_balance` will go through `OrderBalance` hence, will
check the feature toggle.
Note that by default, `OrderBalance` will end up calling
`#old_outstanding_balance`. As the name states, that's exactly what
`#outstanding_balance` was so far. This means no consumers will see any
change in behavior. We just added on item in the call stack (sort of).
2021-03-22 11:45:12 +01:00
Pau Perez
3b7f45516c
Toggle bulk coop report balance calculation
...
This will make users hit the new method that implements the new
calculation we are aiming for, only if they have the feature enabled.
2021-03-03 18:19:26 +01:00
Pau Perez
cd60cea5de
Extract balance-related methods into module
...
This model concerns helps us put together this related methods. Although
it doesn't provide any encapsulation yet, it makes a bit easier to
consider them all next time we need to change this implementation
somehow. It's a bit of an illusion but it feels like we are making this
God object model a bit smaller.
It also gives more room for documentation that will aid future devs.
2021-03-03 18:19:26 +01:00
Matt-Yorkley
219c982db7
Re-implement pre-Rails-5 versions of #implement! and #decrement! on Spree::LineItem
...
Rails 5 introduced some breaking changes to these built-in methods, and the new versions no longer work correctly in relation to decrementing stock with VariantOverrides.
2021-02-18 12:28:24 +00:00
Matt-Yorkley
eec9f27353
Move controller concern to correct directory
...
This is a controller concern, it should live in app/controllers/concerns/
2021-01-08 17:47:09 +00:00
Luis Ramos
a05f43000a
ActionView was extracted from ActionPack in rails 4.1 so we need to use ActionView
2020-11-27 13:59:46 +00:00
Luis Ramos
cf7d8067df
Fix easy rubocop issues
2020-11-04 12:15:23 +00:00