Skip to content

Commit 0ee079b

Browse files
Use pessimistic mode for reference many delete (#760)
1 parent ade847c commit 0ee079b

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

admin-js/src/App.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ const DatagridSingle = (props) => (
5959
const COMPONENTS = {
6060
Datagrid, DatagridSingle,
6161

62+
BulkDeleteButton,
63+
6264
BooleanField, DateField, NumberField, ReferenceField, ReferenceManyField,
6365
ReferenceOneField, SelectField, TextField, TimeField,
6466

aiohttp_admin/backends/sqlalchemy.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,9 @@ def __init__(self, db: AsyncEngine, model_or_table: Union[sa.Table, type[Declara
229229
children.append(comp(field, c_props))
230230
container = "Datagrid" if t == "ReferenceManyField" else "DatagridSingle"
231231
datagrid = comp(container, {"children": children, "rowClick": "show"})
232+
if t == "ReferenceManyField":
233+
datagrid["props"]["bulkActionButtons"] = comp(
234+
"BulkDeleteButton", {"mutationMode": "pessimistic"})
232235
props["children"] = (datagrid,)
233236

234237
self.fields[name] = comp(t, props)

tests/test_backends_sqlalchemy.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,8 @@ class TestOne(base): # type: ignore[misc,valid-type]
146146
assert r.fields["ones"] == comp(
147147
"ReferenceManyField",
148148
{"children": (comp("Datagrid", {
149-
"rowClick": "show", "children": [comp("NumberField", {"source": "id"})]}),),
149+
"rowClick": "show", "children": [comp("NumberField", {"source": "id"})],
150+
"bulkActionButtons": comp("BulkDeleteButton", {"mutationMode": "pessimistic"})}),),
150151
"label": "Ones", "reference": "one", "source": "id", "target": "many_id",
151152
"sortable": False})
152153
assert "ones" not in r.inputs

0 commit comments

Comments
 (0)