diff --git a/changelog/60_UNRELEASED_2020-xx-xx.md b/changelog/60_3.0.0_2020-12-22.md similarity index 96% rename from changelog/60_UNRELEASED_2020-xx-xx.md rename to changelog/60_3.0.0_2020-12-22.md index 0ba4a87e..dcf6b96d 100644 --- a/changelog/60_UNRELEASED_2020-xx-xx.md +++ b/changelog/60_3.0.0_2020-12-22.md @@ -1,9 +1,9 @@ -> !!! The major version bump is due to breaking API changes, please see below if you use the API +> ⚠️ The major version bump is due to breaking API changes, please see below if you use the API ### New feature: Use any product related quantity unit anywhere - Finally it's possible to use any product related quantity unit on any page - Products still have one quantity unit stock and one (default) quantity unit purchase, but any QU, which has a direct or indirect conversion for that product, can be used to pick an amount - - (Because the stock quantity unit is now the base for everything, it cannot be changed after the product was once added to stock (for now, maybe there will be a possibilty to change it in a future release)) + - Because the stock quantity unit is now the base for everything, it cannot be changed after the product was once added to stock (for now, maybe there will be a possibilty to change it in a future release) ### New feature: Prefill purchase data by barcodes - Imagine you buy for example eggs in different pack sizes and they have different barcodes @@ -49,7 +49,7 @@ - When consuming or opening a parent product, which is currently not in stock, any in-stock sub product will now be consumed/opened (like already automatically done when consuming recipes) - Opened stock entries get now consumed first by default when no specific stock entry is used/selected - So the default consume rule is now "Opened first, then first due first, then first in first out" -- Optimized/clarified what the total/unit price is on the purchase page (thanks @kriddles) +- Optimized/clarified what the total/unit price on the purchase page is (thanks @kriddles) - On the purchase page the amount field is now displayed above/before the due date for better `TAB` handling (thanks @kriddles) - Changed that when `FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_TRACKING` is disabled, products now get internally a due date of "never overdue" (aka `2999-12-31`) instead of today (thanks @kriddles) - Products can now be disabled to keep the history/journal, but hide it everywhere, without deleting it (new product option "Active", deleting a product now explicitly also deletes its journal and all other references) (thanks @kriddles for the initial work on this) @@ -83,12 +83,11 @@ - Fixed that `FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_TRACKING` is set to `false`, the purchase page validation failed (thanks @fipwmaqzufheoxq92ebc) - Fixed that consuming (and editing the amount of) products with enabled tare weight handling did not work on the stock entries page - Fixed that the recipes dropdown on the consume page also displayed internal recipes (thanks @kriddles) -- Fixed that opening tare weight handling enabled products is not possible via the UI and the API (as this makes no sense) +- Fixed that opening tare weight handling enabled products is prevented via the UI and the API (as this makes no sense) - Fixed that undoing a consume transaction of an opened item added it back to stock unopened - Fixed that a "Total price" on purchase was not handled correctly for tare weight handling enabled products (the total price was wrongly related to the amount including the tare weight) ### Shopping list improvements -- Decimal amounts are now allowed (for any product, rounded by two decimal places) - Added a button to add all currently in-stock but overdue and expired products to the shopping list (thanks @m-byte) - Improved that when `FEATURE_FLAG_STOCK` is disabled, all product/stock related inputs and buttons are now hidden on the shopping list page (thanks @fipwmaqzufheoxq92ebc) - Shopping list items can now have their own Userfields (entity `shopping_list`), on the shopping list table those fields are rendered additionally to the product Userfields @@ -145,7 +144,7 @@ - Products list: Default store - Row grouping can be customized to use any available column (thanks @edenhaus) - Table states (visible columns, sorting, column order and so on) are now saved server side (in user settings) means that this stays the same when using different browsers -- Dialogs are now used everywhere where appropriate instead of jumping between pages (for exampel when adding/editing shopping list items) +- Dialogs are now used everywhere where appropriate instead of jumping between pages (for example when adding/editing shopping list items) - Added a "Clear filter"-button on all pages (with filters) to quickly reset applied filters - Prefilled number inputs now use sensible decimal places (max. the configured decimals while hiding trailing zeros where appropriate, means if you never use partial amounts for a product, you'll never see decimals for it) - Improved / more precise validation messages for number inputs @@ -174,7 +173,7 @@ - Chinese (China) (demo available at https://zh-cn.demo.grocy.info) ### API improvements/fixes -- **Breaking changes**: +- ⚠️ **Breaking changes**: - All prices are now related to the products stock quantity unit (instead of the products purchase QU) - All (product) amounts are now related to the products stock quantity unit (was related to the products purchase QU for the shopping list before) - The product object no longer has a field `barcodes` with a comma separated barcode list, instead barcodes are now stored in a separate table/entity `product_barcodes` (use the existing "Generic entity interactions" endpoints to access them) @@ -218,6 +217,7 @@ - New endpoint `/stock/shoppinglist/add-expired-products` to add all currently in-stock but expired products to a shopping list - New endpoints GET/POST/PUT `/users/{userId}/permissions` for the new user permissions feature mentioned above - New endpoint `/user` to get the currently authenticated user +- New endpoint DELETE `/user/settings/{settingKey}` to delete a user setting - The following entities are now also available via the endpoint `/objects/{entity}` (only listing, no edit) - `stock_log` (the stock journal) - `stock` (the "raw" stock entries) @@ -230,7 +230,7 @@ - `/stock/products/{productId}/open` - `/stock/products/by-barcode/{barcode}/open` - Fixed that the endpoint `/objects/{entity}/{objectId}` always returned successfully, even when the given object not exists (now returns `404` when the object is not found) (thanks @fipwmaqzufheoxq92ebc) -- Fixed that the endpoint `/stock/volatile` didn't include products which expire today (thanks @fipwmaqzufheoxq92ebc) +- Fixed that the endpoint `/stock/volatile` didn't include products which are due today (thanks @fipwmaqzufheoxq92ebc) - Fixed that the endpoint `/objects/{entity}` did not include Userfields for Userentities (so the effective endpoint `/objects/userobjects`) - Fixed that the endpoint `/stock/consume` returned the response code `200` and an empty response body when `stock_entry_id` was set (consuming a specific stock entry) but invalid (now returns the response code `400`) (thanks @fipwmaqzufheoxq92ebc) - Fixed that the endpoint `/user/settings/{settingKey}` didn't return the default setting if it was not configured for the current user (same behavior as the endpoint `/user/settings` now) diff --git a/version.json b/version.json index 92f89e8a..600f10d7 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "Version": "2.7.1", - "ReleaseDate": "2020-04-17" + "Version": "3.0.0", + "ReleaseDate": "2020-12-22" }