From 075671a88cf9b5676cced6475bfa041b2ef7b4d2 Mon Sep 17 00:00:00 2001 From: Kirill Klenov Date: Fri, 12 Jul 2024 00:15:29 +0300 Subject: [PATCH 1/2] fix: wip --- muffin_admin/handler.py | 8 ++++---- muffin_admin/peewee/__init__.py | 4 ++-- muffin_admin/sqlalchemy/__init__.py | 2 +- pyproject.toml | 1 + 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/muffin_admin/handler.py b/muffin_admin/handler.py index 2a1785f..434217d 100644 --- a/muffin_admin/handler.py +++ b/muffin_admin/handler.py @@ -174,7 +174,7 @@ def to_ra(cls) -> Dict[str, Any]: for source in meta.actions: info = dict(source) if info.get("schema"): - _, inputs = cls.to_ra_schema(info["schema"]) + _, inputs = cls.to_ra_schema(info["schema"], resource=False) info["schema"] = inputs actions.append(info) @@ -222,7 +222,7 @@ def to_ra(cls) -> Dict[str, Any]: return data @classmethod - def to_ra_schema(cls, schema_cls: Type[ma.Schema]): + def to_ra_schema(cls, schema_cls: Type[ma.Schema], *, resource: bool = True): meta = cls.meta schema_opts = schema_cls.opts schema_fields = schema_opts.fields @@ -261,7 +261,7 @@ def to_ra_schema(cls, schema_cls: Type[ma.Schema]): input_info = ( inputs_customize[source] if source in inputs_customize - else cls.to_ra_input(field, source) + else cls.to_ra_input(field, source, resource=resource) ) if isinstance(input_info, str): input_info = input_info, {} @@ -287,7 +287,7 @@ def to_ra_field(cls, field: ma.fields.Field, source: str) -> TRAInfo: return converter(field) @classmethod - def to_ra_input(cls, field: ma.fields.Field, _: str) -> TRAInfo: + def to_ra_input(cls, field: ma.fields.Field, source: str, *, resource: bool = True) -> TRAInfo: """Convert a field to react-admin.""" converter = find_ra(field, MA_TO_RAI) rtype, props = converter(field) diff --git a/muffin_admin/peewee/__init__.py b/muffin_admin/peewee/__init__.py index d8b30ce..b836071 100644 --- a/muffin_admin/peewee/__init__.py +++ b/muffin_admin/peewee/__init__.py @@ -71,9 +71,9 @@ def to_ra_field(cls, field: ma.fields.Field, source: str) -> TRAInfo: return super(PWAdminHandler, cls).to_ra_field(field, source) @classmethod - def to_ra_input(cls, field: ma.fields.Field, source: str) -> TRAInfo: + def to_ra_input(cls, field: ma.fields.Field, source: str, *, resource: bool = True) -> TRAInfo: """Setup RA inputs.""" - model_field = getattr(cls.meta.model, field.attribute or source, None) + model_field = resource and getattr(cls.meta.model, field.attribute or source, None) ra_type, props = super(PWAdminHandler, cls).to_ra_input(field, source) refs = dict(cls.meta.ra_refs) if model_field: diff --git a/muffin_admin/sqlalchemy/__init__.py b/muffin_admin/sqlalchemy/__init__.py index bfbccdc..80f466b 100644 --- a/muffin_admin/sqlalchemy/__init__.py +++ b/muffin_admin/sqlalchemy/__init__.py @@ -69,7 +69,7 @@ def to_ra_field(cls, field: ma.fields.Field, source: str) -> TRAInfo: return super(SAAdminHandler, cls).to_ra_field(field, source) @classmethod - def to_ra_input(cls, field: ma.fields.Field, source: str) -> TRAInfo: + def to_ra_input(cls, field: ma.fields.Field, source: str, *, resource: bool = True) -> TRAInfo: """Setup RA inputs.""" column = getattr(cls.meta.table.c, field.attribute or source, None) ra_type, props = super(SAAdminHandler, cls).to_ra_input(field, source) diff --git a/pyproject.toml b/pyproject.toml index 973d01b..f2a8063 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -98,6 +98,7 @@ exclude = [".venv", "docs", "examples"] select = ["ALL"] ignore = [ "A003", + "ARG003", "ANN", "COM", "D", From db60ae6b8f45fa288aec1494439323ab46ded1e1 Mon Sep 17 00:00:00 2001 From: Kirill Klenov Date: Fri, 12 Jul 2024 00:16:47 +0300 Subject: [PATCH 2/2] build(release): 3.8.1 --- frontend/package.json | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 92036b3..3578f95 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "muffin-admin", - "version": "3.8.0", + "version": "3.8.1", "description": "NPM package for https://github.com/klen/muffin-admin", "files": [ "src", diff --git a/pyproject.toml b/pyproject.toml index f2a8063..3763b39 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "muffin-admin" -version = "3.8.0" +version = "3.8.1" description = "Admin interface for Muffin Framework" readme = "README.rst" license = "MIT"