Commit Graph

7324 Commits

Author SHA1 Message Date
Pau Perez
a10e58e20a Inject strategy_factory into ResetAbsent 2018-10-01 13:12:06 +02:00
Pau Perez
a9444b8909 Extract InventoryReset and Products strategies
Extract this strategy classes from ResetAbsent and move #reset there.
2018-10-01 13:12:06 +02:00
Pau Perez
8d7a11b0ac Make all steps of the algorithm have 2 branches 2018-10-01 13:12:06 +02:00
Pau Perez
23471346b6 Do not call ResetAbsent when preconditions not met 2018-10-01 13:12:06 +02:00
Pau Perez
a409353d37 Move import_settings query methods to Settings 2018-10-01 13:12:06 +02:00
Pau Perez
b940f06238 Return early if reset_all_absent is not set
No need to go through half of the algorithm if the setting is not
enabled. It does not change per enterprise.

This also assumes "Previously we were updating both (products and inventory)
at the same time during one import, but now it's one or the other" in
Matt's words.
2018-10-01 13:12:06 +02:00
Pau Perez
c955e151b7 Pass enterprise ids as strs as current code does 2018-10-01 13:12:06 +02:00
Pau Perez
e04162415a Move code comment to be the method's doc 2018-10-01 13:12:06 +02:00
Pau Perez
5ac3598550 Inject Settings object in ResetAbsent 2018-10-01 13:12:06 +02:00
Pau Perez
b5766a2dd9 Extract common conditional clauses
This also turns local vars into ivars so that the behaviour can be
thoroughly tested. These ivars are meant to be removed once this class
is refactored further. Now there's no other way to ensure its state.
2018-10-01 13:12:06 +02:00
Pau Perez
ed073e9750 Rely on Settings and don't access internal struct. 2018-10-01 13:12:06 +02:00
Pau Perez
663db47433 Move products_reset_count to ResetAbsent 2018-09-29 10:57:23 +02:00
Pau Perez
3150741849 Extract ResetAbsent class from EntryProcessor 2018-09-29 10:57:18 +02:00
Matt-Yorkley
54b17ac701 Use Spree::Order.pending_payments and remove service 2018-09-27 13:04:56 +01:00
Maikel Linke
f0021be53c Style I18n call 2018-09-27 13:33:09 +10:00
Maikel Linke
9dcc683dc0 Notify Bugsnag on sign-up errors
This may lead to more error reports than we want to see. A not existing
email address may cause Bugsnag to be notified. If this happens, we can
rescue form these specific errors and only report the rest.
2018-09-27 13:33:09 +10:00
Maikel Linke
17d951f99d Rescue from any sign-up errors
The most common failure would happen when sending the confirmation email
triggered by `user.save`. We rescue any errors here and give feedback to
the user.

This allows for immediate feedback when the user types an email address
that is not accepted by our mail server or the email setup is not
configured properly.
2018-09-27 13:33:08 +10:00
Maikel Linke
600c8fcd4c Send confirmation emails immediately
Using deferred methods on the user model breaks delayed jobs when the
user is deleted while the job still exists. We could create a proper job
referencing a user id for sending these emails instead. But since the
user has to wait for the confirmation email anyway, we can send it
within the current request. This should be revised if performance
becomes an issue.

Sending the email directly also has the advantage that we can tell the
user if emailing failed. See the following commits.

This change impacts a bunch of specs as we now need a working email
setup to create unconfirmed users. This commit introduces a custom
matcher to unify testing for confirmation emails.
2018-09-27 13:33:08 +10:00
luisramos0
921105301c Move angular-templates route and controller into Web engine
The route and controller were in the main app and the views in the engine, with this commit they stay all inside the engine
This is done to keep it simple and remove the unnecessary dependency between main app and engine
If we use this mechanism in the future for other things in the main app or other engines, we can find a way to extract/abstract this
2018-09-26 12:39:51 +01:00
Matt-Yorkley
e93d46e75a Use .find instead of .select().first 2018-09-25 09:35:05 +01:00
Maikel
51f9a0afa1 Merge pull request #2562 from Matt-Yorkley/pi/product_attributes
[Product Import] Product attributes
2018-09-25 11:36:03 +10:00
Matt-Yorkley
1d9243af19 DRY and clarify serializer and service 2018-09-24 16:58:43 +01:00
Matt-Yorkley
6f2760cf92 Move translations into their namespace and use '.key' format 2018-09-24 15:54:05 +01:00
Pau Perez
f743b5f02f Extract Settings from Product Import processor
This encapsulates the data structure used by the entry processor to
check various settings. It still requires a lot of work to move more
logic to this new class.
2018-09-24 13:55:33 +02:00
Pau Pérez Fabregat
b8417058b4 Merge pull request #2741 from coopdevs/refactor-checkout-process-bits
Refactor checkout process bits
2018-09-24 12:08:19 +02:00
Matt-Yorkley
9f57b43a13 Move sortble header elements to a partial 2018-09-23 22:14:12 +01:00
Pau Pérez Fabregat
20077c99b5 Merge pull request #2618 from coopdevs/enable-style-send-cop
Favor #public_send over #send using Rubocop's cop
2018-09-20 19:03:40 +02:00
Matt-Yorkley
897e43fe0b Remove Spree's Deface data-hooks from new view 2018-09-20 11:33:22 +01:00
Matt-Yorkley
fc68e28e4d Add :description to non-updatable attributes list 2018-09-19 22:30:10 +01:00
Matt-Yorkley
ebb18e9394 Remove unneccesary method 2018-09-19 21:12:30 +01:00
Matt-Yorkley
cc98cc832c Prefer #public_send over #send 2018-09-19 21:12:30 +01:00
Matt-Yorkley
b57c6cf9ac Add errors when attempting to update non-updatable fields 2018-09-19 21:12:29 +01:00
Pau Perez
a2b3d8372e Reduce complexity of OrderUpdater decorator 2018-09-19 16:03:33 +02:00
Matt-Yorkley
3cbb576b4f Move payment object logic out of order serializer and delete code 2018-09-19 13:00:30 +01:00
Matt-Yorkley
ba254802f8 Move angular_pagination to /views/admin/shared/ 2018-09-19 13:00:30 +01:00
Matt-Yorkley
64620c2797 Tidy up response formats for easier testing 2018-09-19 13:00:30 +01:00
Matt-Yorkley
6768055b4d Split orders into 2 angular controllers 2018-09-19 13:00:30 +01:00
Matt-Yorkley
b2551b4e0b Rewrite existing specs 2018-09-19 13:00:30 +01:00
Matt-Yorkley
68f0c80016 Add loading message and spinner 2018-09-19 13:00:30 +01:00
Matt-Yorkley
9da6a5a9b3 Add column sorting to table 2018-09-19 13:00:30 +01:00
Matt-Yorkley
2112f296e4 Angularise filters 2018-09-19 13:00:30 +01:00
Matt-Yorkley
3b9d9db16b Add pagination 2018-09-19 13:00:29 +01:00
Matt-Yorkley
93d273f94a Convert orders index table to use angular ng-repeat 2018-09-19 09:33:25 +01:00
Pau Pérez Fabregat
9f7d24934d Merge pull request #2671 from kristinalim/translations-any_enterprise_in_oc_filters
Translate "Any Enterprise" and "Any Schedule" in OC filters
2018-09-18 11:42:19 +02:00
Pau Perez
2a0e0eed73 Move state_machine's additions inside class_eval
And also cover them with tests.
2018-09-18 11:20:32 +02:00
Pau Perez
1fdc578901 Increase readability (a bit) of OrderUpdater 2018-09-18 11:20:32 +02:00
luisramos0
c22ac0086b Moved cookies_policy_helper to Web engine and respective spec 2018-09-17 16:05:38 +01:00
luisramos0
95f2f92cf3 Extracted cookies footer links from view to footer links helper 2018-09-17 16:05:38 +01:00
luisramos0
dc5eb6448e Change web/all.css from sprockets to SASS and include web/all.css through darkswarm/all.css 2018-09-17 16:05:38 +01:00
luisramos0
d170a4d489 New domain Web (rails engine) with the following features extracted from the main app:
- cookies banner
- cookies policy page
- cookies policy and privacy policy links in the footer
2018-09-17 16:05:32 +01:00