Releases: piccolo-orm/piccolo_admin
0.43.0
Added the link_column
option to TableConfig
.
By default, the primary key is used in the list view of Piccolo Admin to link to the edit page. Using link_column
you can specify a different column (for example, if you hid the primary key using visible_columns
).
For example, this is the default behaviour, using the primary key as the link:
Using link_column
and visible_columns
we used the name
column as the link instead:
studio_config = TableConfig(
table_class=Studio,
link_column=Studio.name,
visible_columns=[Studio.name, Studio.facilities],
)
Thanks to @sinisaos for helping with this.
0.42.0
Tables can now be grouped in the sidebar - this is helpful if you have lots of tables. To do this, use the menu_group
argument of TableConfig
. See the docs for more info.
Thanks to @sinisaos and @sumitsharansatsangi for their help with this.
0.41.0
0.40.0
0.39.0
0.38.0
Fixed a bug with TableConfig
and exclude_visible_columns
. Thanks to @web-maker for this fix.
0.37.0
- Python 3.11 is now officially supported.
- Added debug mode:
create_admin(tables=[MyTable], debug=True)
. - Logging exceptions for 500 errors.
- Fixed a typo in the docs about how to use validators (thanks to @sinisaos for reporting this).
- Updated the tests for Starlette / FastAPI's new test client. This means that
fastapi==0.87.0
/starlette==0.21.0
are now the minimum versions supported. Thanks to @sinisaos for this.
0.36.0
Lots of small enhancements.
- Fixed bugs with the foreign key selector. Sometimes the edit button didn't work. Also, sometimes the value shown in the input box wasn't refreshing when navigating to a new page.
- The HTML title now matches the
site_name
parameter increate_admin
(thanks to @sinisaos for this). - Updated Vue to the latest version.
- Internal code refactoring.
0.35.0
Validators
can now be specified in TableConfig
.
This allows fine grained access control - for example, only allowing some users to send POST
requests to certain API endpoints:
from piccolo_api.crud.endpoints import PiccoloCRUD
from starlette.exceptions import HTTPException
from starlette.requests import Request
async def manager_only(
piccolo_crud: PiccoloCRUD,
request: Request
):
# The Piccolo `BaseUser` can be accessed from the request.
user = request.user.user
# Assuming we have another database table where we record
# users with certain permissions.
manager = await Manager.exists().where(manager.user == user)
if not manager:
# Raise a Starlette exception if we want to reject the
# request.
raise HTTPException(
status_code=403,
detail="Only managers are allowed to do this"
)
admin = create_admin(
tables=TableConfig(
Movie,
validators=Validators(post_single=manager_only)
)
)
0.34.0
Updated the date / datetime / time picker.