From 7c53c0e4e6d714459c7a00b69216853a12441265 Mon Sep 17 00:00:00 2001 From: Andrew Myers Date: Wed, 23 Aug 2023 11:55:42 -0400 Subject: [PATCH 1/2] Fixes MediaFileCount field Displays media file count as Size for Batches and Collections on list and display views without displaying the enumerated list of all media files. --- chowda/views.py | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/chowda/views.py b/chowda/views.py index 49f9dc95..4362311d 100644 --- a/chowda/views.py +++ b/chowda/views.py @@ -47,16 +47,14 @@ async def serialize_value( class MediaFileCount(IntegerField): """A field that displays the number of MediaFiles in a collection or batch""" - exclude_from_create: bool = True + name: str = 'media_file_count' + label: str = 'Size' + read_only: bool = True exclude_from_edit: bool = True + exclude_from_create: bool = True - render_function_key: str = 'media_file_count' - display_template: str = 'displays/media_file_count.html' - - async def serialize_value( - self, request: Request, value: Any, action: RequestAction - ) -> Any: - return len(value) + async def parse_obj(self, request: Request, obj: Any) -> Any: + return len(obj.media_files) class BaseModelView(ModelView): @@ -96,14 +94,7 @@ class CollectionView(BaseModelView): fields: ClassVar[list[Any]] = [ 'name', 'description', - MediaFileCount( - 'media_files', - id='media_file_count', - label='Size', - read_only=True, - exclude_from_edit=True, - exclude_from_create=True, - ), + MediaFileCount(), # 'media_files', # default view MediaFilesGuidsField( 'media_files', @@ -133,15 +124,7 @@ class BatchView(BaseModelView): 'name', 'pipeline', 'description', - MediaFileCount( - 'media_files', - id='media_file_count', - label='Size', - read_only=True, - exclude_from_edit=True, - exclude_from_create=True, - ), - # 'media_files', # default view + MediaFileCount(), MediaFilesGuidsField( 'media_files', id='media_file_guids', From 93bb188c986f85d2e180d57295527c0b14bf9b1f Mon Sep 17 00:00:00 2001 From: Harpo Harbert Date: Wed, 23 Aug 2023 09:28:13 -0700 Subject: [PATCH 2/2] Re-enables list excludes --- chowda/views.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/chowda/views.py b/chowda/views.py index 0891ef55..f986aab4 100644 --- a/chowda/views.py +++ b/chowda/views.py @@ -87,8 +87,7 @@ def can_edit(self, request: Request) -> bool: class CollectionView(BaseModelView): - # FIXME exclude_fields_from_list: ClassVar[list[Any]] = [Collection.media_files] - # Hiding the media_files field from the list view hides the media_file_count field + exclude_fields_from_list: ClassVar[list[Any]] = [Collection.media_files] exclude_fields_from_detail: ClassVar[list[Any]] = [Collection.id] fields: ClassVar[list[Any]] = [ @@ -119,7 +118,7 @@ async def validate(self, request: Request, data: Dict[str, Any]): class BatchView(BaseModelView): exclude_fields_from_create: ClassVar[list[Any]] = [Batch.id] exclude_fields_from_edit: ClassVar[list[Any]] = [Batch.id] - # FIXME exclude_fields_from_list: ClassVar[list[Any]] = [Batch.media_files] + exclude_fields_from_list: ClassVar[list[Any]] = [Batch.media_files] exclude_fields_from_detail: ClassVar[list[Any]] = [Batch.id] actions: ClassVar[list[Any]] = [