What's Changed
Notable changes
Improved ingredient sync. This process now uses a pre-generate database dump file, which can be processed much more effectively. The setting SYNC_INGREDIENTS_CELERY will automatically prefer the bulk dump over the paginated API, falling back to the API if no dump is available.
Improve serving size support for ingredients. It's now possible to log food in more useful units than "gram", e.g. "1 Serving (2 biscuits)" or "1 Cup". These serving sizes automatically imported from Open Food Facts.
Add vegan, vegetarian and nutriscore fields to the model.
Add "warmup" to list of set types.
Add more information to the repetition units in the routines. This will allow us to e.g. properly handle time units in the mobile app, e.g. by showing a timer or similar. The setting-repetitionunit endpoint now exposes the new fields unit_type and multiplier.
Automatically read the date from uploaded image to the gallery.
Move the exercise variation to a field in the exercise model. This simplifies a lot of code and allows us to properly sync them to local instances as well.
Breaking API changes
The following endpoints have been removed:
/api/v2/ingredient/search/, searches can use the regular/api/v2/ingredientinfoone/api/v2/exercise/search/, searches can use the regular/api/v2/exerciseinfoone/api/v2/variations/, variation data is not accessible directly on the exercise/api/v2/weightunit/, not needed anymore
Features
- Docker image not running by @yontank in #2168
- Fix: Auto-calculate SlotEntry.order when not provided via API by @ndimoro in #2181
- Feature: set UI language by @franchsli in #2160
- feature: add link to trophies overview by @franchsli in #2198
- add brand and common name on ingredientinfo serializer by @cryptbrn in #2192
- Potential fix for code scanning alert no. 78: Workflow does not contain permissions by @rolandgeider in #2211
- Properly block registration via the REST API by @rolandgeider in #2212
- Fix type error in rules handling by @rolandgeider in #2221
- remove duplicate
thenby @stavros-k in #2229 - Add vegan and vegetarian flags by @rolandgeider in #2231
- Add dietary property fields (is_vegan, is_vegetarian) to Ingredient by @stuckvgn in #2218
- Add is ai generated flag to images by @alexisbirling-boop in #2222
- Fix: Prevent IntegrityError on user deletion by handling missing user by @infektyd in #2233
- Timer for Timed Exercises by @tbouri in #2137
- docs(i18n): fix typo in Russian translation by @Really-Fun in #2251
- Automatic Date Reading on Images by @MadoctheHadoc in #2252
- Handles image metadata field changes on sync by @shihabhasan0161 in #2245
- Add nutriscore field imported from Open Food Facts by @ImadRahhali in #2256
- feat: Allow AUTH_PROXY_TRUSTED_IPS to accept subnetfeat: Allow AUTH_PROXY_TRUSTED_IPS to accept subnet via ipaddress module (#1989) (#1989) by @betterrrrr in #2259
- More flexible media files handling by @rolandgeider in #2262
- Off serving size by @lvdwijngaart in #2261
- Feat: Replace django-email-verification with django-allauth (#2258) by @pankaj-basnet in #2260
- Add bulk ingredient sync by @rolandgeider in #2287
- Version 2.5 by @rolandgeider in #2286
- Add some additional basic nutritional values validation for ingredients by @rolandgeider in #1726
- Backend support for Markdown descriptions and migration from bleach to nh3 by @Frenzy-code in #2140
- feat(measurements): allow multiple entries per day by @sg172003 in #2257
- Simplify the way the units are handled for nutritional plans by @rolandgeider in #2281
- Rework exercise variations by @rolandgeider in #2292
Dependencies
- Bump faker from 38.2.0 to 40.1.2 by @dependabot[bot] in #2180
- Update django-axes[ipware] requirement from ~=8.0.0 to ~=8.1.0 by @dependabot[bot] in #2179
- Bump packaging from 25.0 to 26.0 by @dependabot[bot] in #2178
- Bump wheel from 0.45.1 to 0.46.3 by @dependabot[bot] in #2177
- Bump jquery from 3.7.1 to 4.0.0 by @dependabot[bot] in #2169
- Bump gunicorn from 23.0.0 to 24.1.1 by @dependabot[bot] in #2189
- Bump pillow from 12.0.0 to 12.1.1 by @dependabot[bot] in #2204
- Bump gunicorn from 24.1.1 to 25.0.3 by @dependabot[bot] in #2200
- Bump django-environ from 0.12.0 to 0.13.0 by @dependabot[bot] in #2210
- Bump ruff from 0.14.14 to 0.15.2 by @dependabot[bot] in #2209
- Bump django-debug-toolbar from 6.1.0 to 6.2.0 by @dependabot[bot] in #2187
- Update django-axes[ipware] requirement from ~=8.1.0 to ~=8.3.1 by @dependabot[bot] in #2213
- Bump openfoodfacts from 3.3.0 to 3.4.5 by @dependabot[bot] in #2214
- Bump gunicorn from 25.0.3 to 25.1.0 by @dependabot[bot] in #2226
- Bump actions/download-artifact from 7 to 8 by @dependabot[bot] in #2225
- Bump icalendar from 6.3.2 to 7.0.2 by @dependabot[bot] in #2230
- Bump django-crispy-forms from 2.5 to 2.6 by @dependabot[bot] in #2238
- Bump django from 5.2.11 to 5.2.12 by @dependabot[bot] in #2240
- Bump docker/login-action from 3 to 4 by @dependabot[bot] in #2241
- Bump docker/build-push-action from 6 to 7 by @dependabot[bot] in #2250
- Bump pyjwt from 2.11.0 to 2.12.0 by @dependabot[bot] in #2255
- Bump docker/setup-buildx-action from 3 to 4 by @dependabot[bot] in #2248
- Bump docker/metadata-action from 5 to 6 by @dependabot[bot] in #2249
- Bump requests from 2.32.5 to 2.33.0 by @dependabot[bot] in #2268
- Bump gunicorn from 25.1.0 to 25.3.0 by @dependabot[bot] in #2282
- Bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #2224
New Contributors
- @yontank made their first contribution in #2168
- @ndimoro made their first contribution in #2181
- @franchsli made their first contribution in #2160
- @cryptbrn made their first contribution in #2192
- @stavros-k made their first contribution in #2229
- @stuckvgn made their first contribution in #2218
- @alexisbirling-boop made their first contribution in #2222
- @infektyd made their first contribution in #2233
- @tbouri made their first contribution in #2137
- @Really-Fun made their first contribution in #2251
- @MadoctheHadoc made their first contribution in #2252
- @shihabhasan0161 made their first contribution in #2245
- @ImadRahhali made their first contribution in #2256
- @betterrrrr made their first contribution in #2259
- @lvdwijngaart made their first contribution in #2261
- @pankaj-basnet made their first contribution in #2260
- @Frenzy-code made their first contribution in #2140
- @sg172003 made their first contribution in #2257
Full Changelog: 2.4...2.5