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

Update JSON menu representation in mutations #4524

Merged
merged 9 commits into from
Jul 29, 2019

Conversation

maarcingebala
Copy link
Member

@maarcingebala maarcingebala commented Jul 24, 2019

Storefront 1.0 uses json_content fields to render menus in its HTML templates (to optimize rendering and not fetch the whole structure from the database every time). Those fields were however not updated when using API mutations.

This PR introduces the following changes:

  • adds update_menu and update_menus calls in mutations that touch menu items
  • moves the utilty functions from saleor.dashboard.menu.utils to saleor.menu.utils as they're now used outside of dashboard 1.0 as well.

Also fixes #4471

Screenshots

Pull Request Checklist

  1. Privileged views and APIs are guarded by proper permission checks.
  2. All visible strings are translated with proper context.
  3. All data-formatting is locale-aware (dates, numbers, and so on).
  4. Database queries are optimized and the number of queries is constant.
  5. Database migration files are up to date.
  6. The changes are tested.
  7. The code is documented (docstrings, project documentation).
  8. GraphQL schema and type definitions are up to date.
  9. Changes are mentioned in the changelog.

@NyanKiyoshi
Copy link
Member

Maybe this PR could include a fix for #4471?

@dominik-zeglen
Copy link
Contributor

Should be fixed long time ago

@NyanKiyoshi
Copy link
Member

@dominik-zeglen the issue is not the dashboard, but the mutation not checking the user input 👍

Copy link

django-queries commented Jul 25, 2019

Here is the report for a801c56 (maarcingebala/saleor @ update-menu-json-in-api)
Base comparison is cf43e0e.

No differences were found. (click me)

# api.benchmark checkout
  test name                           	left count 	right count	duplicate count
  ------------------------------------	-----------	-----------	---------------
  add billing address to checkout     	         34	         34	             20
  add shipping to checkout            	          7	          7	              0
  checkout payment charge             	         14	         14	              0
  complete checkout                   	          6	          6	              0
  create checkout                     	         41	         41	             20

# api.benchmark homepage
  test name                           	left count 	right count	duplicate count
  ------------------------------------	-----------	-----------	---------------
  retrieve main menu                  	          5	          5	              0
  retrieve product list               	          4	          4	              0
  retrieve secondary menu             	          5	          5	              0
  retrieve shop                       	          2	          2	              0

# api.benchmark product
  test name                           	left count 	right count	duplicate count
  ------------------------------------	-----------	-----------	---------------
  product details                     	         13	         13	              3

# api.benchmark variant
  test name                           	left count 	right count	duplicate count
  ------------------------------------	-----------	-----------	---------------
  retrieve variant list               	          9	          9	              2

@codecov
Copy link

codecov bot commented Jul 25, 2019

Codecov Report

Merging #4524 into master will increase coverage by <.01%.
The diff coverage is 100%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #4524      +/-   ##
==========================================
+ Coverage   90.64%   90.64%   +<.01%     
==========================================
  Files         297      297              
  Lines       17437    17411      -26     
  Branches     1748     1738      -10     
==========================================
- Hits        15805    15783      -22     
  Misses       1121     1121              
+ Partials      511      507       -4
Impacted Files Coverage Δ
saleor/dashboard/menu/utils.py 100% <ø> (+9.23%) ⬆️
saleor/dashboard/page/views.py 94.44% <100%> (ø) ⬆️
saleor/graphql/menu/mutations.py 97.58% <100%> (+0.31%) ⬆️
saleor/graphql/menu/bulk_mutations.py 100% <100%> (ø) ⬆️
saleor/dashboard/menu/forms.py 84.74% <100%> (ø) ⬆️
saleor/dashboard/category/views.py 83.69% <100%> (ø) ⬆️
saleor/dashboard/collection/views.py 92.2% <100%> (ø) ⬆️
saleor/dashboard/menu/views.py 95.78% <100%> (+0.02%) ⬆️
saleor/payment/utils.py 90.47% <0%> (-0.87%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update cf43e0e...a801c56. Read the comment docs.

@maarcingebala
Copy link
Member Author

@NyanKiyoshi I also fixed the issue #4471 that you've mentioned.

Copy link
Member

@NyanKiyoshi NyanKiyoshi left a comment

Choose a reason for hiding this comment

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

We might want to update dashboard-next as well before merging, I think it is breaking it, right?

saleor/graphql/menu/bulk_mutations.py Outdated Show resolved Hide resolved
saleor/menu/utils.py Show resolved Hide resolved
@maarcingebala
Copy link
Member Author

@NyanKiyoshi What do you exactly mean by "updating dashboard-next"? I made fixes only in the backend.

@NyanKiyoshi
Copy link
Member

@maarcingebala nevermind. At the time of reviewing the name field wasn't optional.

Copy link
Member

@NyanKiyoshi NyanKiyoshi left a comment

Choose a reason for hiding this comment

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

LGTM 👍

saleor/menu/utils.py Outdated Show resolved Hide resolved
saleor/menu/utils.py Outdated Show resolved Hide resolved
@maarcingebala maarcingebala merged commit 7feb6d9 into saleor:master Jul 29, 2019
@maarcingebala maarcingebala deleted the update-menu-json-in-api branch July 29, 2019 14:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Cannot assign a page to a menu item (graphql)
5 participants