Skip to content

Fix missing per-100g nutrition values in OFF imports - #2577

Open
JuleLeanne wants to merge 1 commit into
wger-project:masterfrom
JuleLeanne:fix/1506-off-per-serving-fallback
Open

JuleLeanne wants to merge 1 commit into
wger-project:masterfrom
JuleLeanne:fix/1506-off-per-serving-fallback

Conversation

@JuleLeanne

Copy link
Copy Markdown

Proposed Changes

Open Food Facts products with per-serving nutrition but missing required
per-100g values are currently skipped. Calculate the missing values when a
reliable serving mass is available. For example, 4 g of protein per 20 g serving
becomes 20 g per 100 g.

  • Preserve supplied per-100g values, including zero and energy in kJ, and keep
    the existing nutrition sanity checks.
  • Require a serving mass of at least 5 g, using unrounded weights. Volume-only
    servings are not treated as grams.
  • Add regression tests for conversion, invalid inputs, the minimum-weight
    boundary, and continued importing after an invalid product is skipped.

The maintainer requested a minimum serving size. The selected 5 g threshold
matches Open Food Facts' own aggregation guard.

Related Issue(s)

Refs #1506. Implements the per-serving fallback discussed in the issue.

Testing

  • DJANGO_SETTINGS_MODULE=settings.ci python3 manage.py test wger.nutrition --noinput:
    427 tests run, 415 passed and 12 PostgreSQL-only search tests skipped under
    SQLite. Tested with Python 3.12.3.
  • ruff check and ruff format --check: passed.
  • git diff --check: passed.
  • The saved issue sample now imports with 20 g protein per 100 g, with the input
    unchanged and zero database queries during the converter diagnostic.

Please check that the PR fulfills these requirements

  • Tests for the changes have been added (for bug fixes / features).
  • Code has been formatted to avoid unnecessary diffs (ruff format and ruff check).
  • Added an entry to the Bug fixes section of CHANGELOG.md.

AI assistance: Codex assisted with the implementation and tests.

Derive missing nutrition values from per-serving data only when a reliable
serving mass of at least 5 g is available. Preserve supplied values and
existing validation, and cover conversion and import handling with tests.

Refs wger-project#1506
Copilot AI balanced review requested due to automatic review settings November 2, 2026 16:19

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

This branch has not been deployed

No deployments
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.

2 participants