Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DFC Orders] List products to import on screen #13125

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

dacook
Copy link
Member

@dacook dacook commented Feb 6, 2025

ℹ️ Funded Feature. Please track ALL ASSOCIATED WORK under the associated tracking code #11678 DFC Orders

What? Why?

It's not pretty, but it works!
Screenshot 2025-02-06 at 5 07 41 pm

What should we test?

  1. Visit /admin/product_import
  2. Scroll to bottom, enter URL of a DFC products endpoint, eg:
  1. Select enterprise to import into
  2. Click "Preview"
  3. Summary should be shown with correct info.
  4. De-select some products to avoid importing them. Count the number of selected products.
  5. Click import. The correct number of products should be imported.
  6. Return to the import preview screen (or click back button). It should reload, showing which products are now existing in the db.

Release notes

Changelog Category (reviewers may add a label for the release notes):

  • User facing changes
  • API changes (V0, V1, DFC or Webhook)
  • Technical changes only
  • Feature toggled

The title of the pull request will be included in the release notes.

Dependencies

Documentation updates

@dacook dacook self-assigned this Feb 6, 2025
Makes it clearer where things are going from, and to. I will re-use this order on the next screen.
Making way for a review step.
@dacook dacook force-pushed the dfc-product-import-list-12301 branch from 8df2a80 to d23db58 Compare February 6, 2025 05:23
If there's a matching product in OFN already, a link will appear.
@dacook dacook force-pushed the dfc-product-import-list-12301 branch from d23db58 to a78557b Compare February 6, 2025 06:06
@dacook dacook force-pushed the dfc-product-import-list-12301 branch from a78557b to 9f70000 Compare February 6, 2025 06:10
@dacook dacook requested a review from mkllnk February 6, 2025 06:16
@dacook dacook marked this pull request as ready for review February 6, 2025 06:18
Copy link
Member

@mkllnk mkllnk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work! I generally approve. There are just some missing translations and I'm wondering if I'm alone in my "use Rails default routes when possible" thinking.

Comment on lines +72 to +74
resources :dfc_product_imports, only: [:index] do
post :import, on: :collection
end
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see the temptation to call the action import but I would prefer to go with Rails defaults, convention over configuration. In this domain, I would say that we create a Product Import. Following that logic, the index action should probably be a new action. 🤔 But the form on the product import screen could also be seen the the new form.

What do you think?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't think a lot about it, but thought that Rails' resource/collection model didn't fit well in this case, so simply opted to copy the existing action name on the ProductImportController.
I suppose another way to look at it is an action on the products resource itself, ie: /admin/products/import or /admin/products/batch_create.

Ultimately I don't think it's worth thinking about anymore ;)
But it would be good to have a third opinion.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To further clarify my thinking, I didn't think there was much "cost" at all using a non-standard action name.
And I think to "create a Product Import" sounds too abstract, which makes it harder to see what it's for.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When possible I prefer to stick with the defaults Rails action, but I think in this case David's solution is acceptable. After all, we can't really refer to Updating or Deleting a "Product Import", we don't have a tangible model for "Product Import".

spec/system/admin/dfc_product_import_spec.rb Show resolved Hide resolved
app/controllers/admin/dfc_product_imports_controller.rb Outdated Show resolved Hide resolved
app/views/admin/dfc_product_imports/index.html.haml Outdated Show resolved Hide resolved
dacook and others added 2 commits February 10, 2025 10:33
Co-authored-by: Maikel <maikel@email.org.au>
Copy link
Collaborator

@rioug rioug left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good 👍

Comment on lines +72 to +74
resources :dfc_product_imports, only: [:index] do
post :import, on: :collection
end
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When possible I prefer to stick with the defaults Rails action, but I think in this case David's solution is acceptable. After all, we can't really refer to Updating or Deleting a "Product Import", we don't have a tangible model for "Product Import".

@mkllnk mkllnk added the user facing changes Thes pull requests affect the user experience label Feb 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
user facing changes Thes pull requests affect the user experience
Projects
Status: Test Ready 🧪
Development

Successfully merging this pull request may close these issues.

3 participants