diff --git a/RELEASE.rst b/RELEASE.rst index c4b1fb607b..05853fda31 100644 --- a/RELEASE.rst +++ b/RELEASE.rst @@ -1,6 +1,14 @@ Release Notes ============= +Version 1.147.0 +--------------- + +- Fix deleted items issues in ProductAdmin (#3492) +- Update dependency @json-editor/json-editor to v2.16.0 (#3321) +- Update dependency serialize-javascript to v7 [SECURITY] (#3342) +- Update dependency lodash to v4.18.1 [SECURITY] (#3493) + Version 1.146.5 (Released April 21, 2026) --------------- diff --git a/ecommerce/admin.py b/ecommerce/admin.py index d0e82f9a69..fc7703e43e 100644 --- a/ecommerce/admin.py +++ b/ecommerce/admin.py @@ -60,7 +60,7 @@ class ProductAdmin(VersionAdmin): list_filter = ("content_type", "is_active") def change_view(self, request, object_id, form_url="", extra_context=None): - product = Product.objects.get(id=object_id) + product = Product.all_objects.get(id=object_id) extra_context = {"subtitle": self.content_object(product)} return super(ProductAdmin, self).change_view( # noqa: UP008 request, object_id, form_url, extra_context @@ -70,10 +70,6 @@ def content_object(self, obj): """Return the content object details""" return str(obj.purchasable_object) - def has_delete_permission(self, request, obj=None): # noqa: ARG002 - """Disable the delete permission for Product models""" - return False - def get_queryset(self, request): # noqa: ARG002 """ Return the all objects for the Product Admin @@ -86,6 +82,24 @@ def save_model(self, request, obj, form, change): super().save_model(request, obj, form, change) reversion.set_user(request.user) + def delete_model(self, request, obj): + """Soft-delete the model.""" + + with reversion.create_revision(): + obj.is_active = False + obj.save() + reversion.set_user(request.user) + + def delete_queryset(self, request, queryset): + """Soft-delete using the queryset.""" + + with reversion.create_revision(): + for item in queryset: + item.is_active = False + item.save() + + reversion.set_user(request.user) + @admin.register(Basket) class BasketAdmin(VersionAdmin): diff --git a/frontend/public/package.json b/frontend/public/package.json index 989cd965c9..0364739364 100644 --- a/frontend/public/package.json +++ b/frontend/public/package.json @@ -22,7 +22,7 @@ "@babel/preset-react": "7.28.5", "@babel/register": "7.28.3", "@fancyapps/fancybox": "3.5.7", - "@json-editor/json-editor": "2.15.2", + "@json-editor/json-editor": "2.16.0", "@material/layout-grid": "0.41.0", "@material/top-app-bar": "1.1.1", "@sentry/browser": "10.38.0", @@ -60,7 +60,7 @@ "isomorphic-fetch": "2.2.1", "jquery": "3.7.1", "jsdom": "16.7.0", - "lodash": "4.17.23", + "lodash": "4.18.1", "mini-css-extract-plugin": "2.9.4", "mocha": "9.2.2", "moment": "2.30.1", @@ -110,7 +110,7 @@ "sass": "1.49.11", "sass-lint": "1.13.1", "sass-loader": "12.6.0", - "serialize-javascript": "6.0.2", + "serialize-javascript": "7.0.5", "shelljs": "0.8.5", "sinon": "4.5.0", "slick-carousel": "^1.8.1", diff --git a/main/settings.py b/main/settings.py index b8e0dd9689..ac892d323a 100644 --- a/main/settings.py +++ b/main/settings.py @@ -37,7 +37,7 @@ from main.sentry import init_sentry from openapi.settings_spectacular import open_spectacular_settings -VERSION = "1.146.5" +VERSION = "1.147.0" log = logging.getLogger() diff --git a/yarn.lock b/yarn.lock index 7a1b29f1fc..ce28d87eef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3195,12 +3195,12 @@ __metadata: languageName: node linkType: hard -"@json-editor/json-editor@npm:2.15.2": - version: 2.15.2 - resolution: "@json-editor/json-editor@npm:2.15.2" +"@json-editor/json-editor@npm:2.16.0": + version: 2.16.0 + resolution: "@json-editor/json-editor@npm:2.16.0" dependencies: core-js: ^3.27.2 - checksum: d548be511b5e07e765e4e1f4df3df6f6ce8edd7d0fd61166c6a416cec6a95a539407e31f6b4c89bfac5858c11cb26680a1503e07dddf5ed3237ce5f0ad61bafe + checksum: 5ccf6cbfbbd975c4057da1a5212e81638abf255377b4050e1c5b8019df922e13ed3e4ffe60054b14e35f76445af0c506a4f328f76f9e7bd2ad4d65b887bd9063 languageName: node linkType: hard @@ -14665,10 +14665,10 @@ __metadata: languageName: node linkType: hard -"lodash@npm:4.17.23": - version: 4.17.23 - resolution: "lodash@npm:4.17.23" - checksum: 7daad39758a72872e94651630fbb54ba76868f904211089721a64516ce865506a759d9ad3d8ff22a2a49a50a09db5d27c36f22762d21766e47e3ba918d6d7bab +"lodash@npm:4.18.1": + version: 4.18.1 + resolution: "lodash@npm:4.18.1" + checksum: bb5f5b49aad29614e709af02b64c56b0f8b78c6a81434a3c1ae527d2f0f78ca08f9d9fb22aa825a053876c9d2166e9c01f31c356014b5e2bdc0556c057433102 languageName: node linkType: hard @@ -15820,7 +15820,7 @@ __metadata: "@babel/preset-react": 7.28.5 "@babel/register": 7.28.3 "@fancyapps/fancybox": 3.5.7 - "@json-editor/json-editor": 2.15.2 + "@json-editor/json-editor": 2.16.0 "@material/layout-grid": 0.41.0 "@material/top-app-bar": 1.1.1 "@sentry/browser": 10.38.0 @@ -15860,7 +15860,7 @@ __metadata: isomorphic-fetch: 2.2.1 jquery: 3.7.1 jsdom: 16.7.0 - lodash: 4.17.23 + lodash: 4.18.1 mini-css-extract-plugin: 2.9.4 mocha: 9.2.2 moment: 2.30.1 @@ -15910,7 +15910,7 @@ __metadata: sass: 1.49.11 sass-lint: 1.13.1 sass-loader: 12.6.0 - serialize-javascript: 6.0.2 + serialize-javascript: 7.0.5 shelljs: 0.8.5 sinon: 4.5.0 slick-carousel: ^1.8.1 @@ -21013,12 +21013,10 @@ __metadata: languageName: node linkType: hard -"serialize-javascript@npm:6.0.2, serialize-javascript@npm:^6.0.0, serialize-javascript@npm:^6.0.2": - version: 6.0.2 - resolution: "serialize-javascript@npm:6.0.2" - dependencies: - randombytes: ^2.1.0 - checksum: c4839c6206c1d143c0f80763997a361310305751171dd95e4b57efee69b8f6edd8960a0b7fbfc45042aadff98b206d55428aee0dc276efe54f100899c7fa8ab7 +"serialize-javascript@npm:7.0.5": + version: 7.0.5 + resolution: "serialize-javascript@npm:7.0.5" + checksum: 9e5f4c234c5cfdbe7f720107755ea06f2247d3202a8309e6c6f7dd4241f1dc92ba2e2a3282dcc82796a2ce2a327be48d692790019aeeb681f9870b1d3b49e8b7 languageName: node linkType: hard @@ -21031,6 +21029,15 @@ __metadata: languageName: node linkType: hard +"serialize-javascript@npm:^6.0.0, serialize-javascript@npm:^6.0.2": + version: 6.0.2 + resolution: "serialize-javascript@npm:6.0.2" + dependencies: + randombytes: ^2.1.0 + checksum: c4839c6206c1d143c0f80763997a361310305751171dd95e4b57efee69b8f6edd8960a0b7fbfc45042aadff98b206d55428aee0dc276efe54f100899c7fa8ab7 + languageName: node + linkType: hard + "serve-index@npm:^1.9.1": version: 1.9.1 resolution: "serve-index@npm:1.9.1"