class ConfigResource(Model): label = "Config" model = Config icon = "fas fa-cogs" filters = [ filters.Enum(enum=enums.Status, name="status", label="Status"), filters.Search(name="key", label="Key", search_mode="equal"), ] fields = [ "id", "label", "key", "value", Field( name="status", label="Status", input_=inputs.RadioEnum(enums.Status, default=enums.Status.on), ), ] async def row_attributes(self, request: Request, obj: dict) -> dict: if obj.get("status") == enums.Status.on: return {"class": "bg-green text-white"} return await super().row_attributes(request, obj) async def get_actions(self, request: Request) -> List[Action]: actions = await super().get_actions(request) switch_status = Action( label="Switch Status", icon="ti ti-toggle-left", name="switch_status", method=Method.PUT, ) actions.append(switch_status) return actions
class AdminResource(Model): label = "Admins" model = Admin icon = "fas fa-user" page_pre_title = "admin list" page_title = "admin model" filters = [ filters.Search( name="username", label="Name", search_mode="contains", placeholder="Search for username", ), filters.Date(name="created_at", label="CreatedAt"), ] fields = [ "id", "username", Field( name="password", label="Password", display=displays.InputOnly(), input_=inputs.Password(), ), Field(name="email", label="Email", input_=inputs.Email()), "created_at", ]
class AdminResource(Model): label = "Admin" model = Admin icon = "fas fa-user" page_pre_title = "admin list" page_title = "admin model" filters = [ filters.Search( name="username", label="Name", search_mode="contains", placeholder="Search for username", ), filters.Date(name="created_at", label="CreatedAt"), ] fields = [ "id", "username", Field( name="password", label="Password", display=displays.InputOnly(), input_=inputs.Password(), ), Field(name="email", label="Email", input_=inputs.Email()), Field( name="avatar", label="Avatar", display=displays.Image(width="40"), input_=inputs.Image(null=True, upload=upload), ), "created_at", ] async def get_toolbar_actions(self, request: Request) -> List[ToolbarAction]: return [] async def cell_attributes(self, request: Request, obj: dict, field: Field) -> dict: if field.name == "id": return {"class": "bg-danger text-white"} return await super().cell_attributes(request, obj, field) async def get_actions(self, request: Request) -> List[Action]: return [] async def get_bulk_actions(self, request: Request) -> List[Action]: return []
class QuestionResource(Model): label = "Questions" model = Question icon = "fas fa-question" page_pre_title = "question list" page_title = "question model" filters = [ filters.Search( name="formatted_text", label="Content", search_mode="contains", placeholder="Search for content", ), ] fields = ["id", "text", "formatted_text", "answer"]
class AnswerResource(Model): label = "Answers" model = Answer icon = "fas fa-voicemail" page_pre_title = "answer list" page_title = "answer model" filters = [ filters.Search( name="formatted_text", label="Content", search_mode="contains", placeholder="Search for content", ), ] fields = [ "id", "text", "formatted_text", ]
class ConfigResource(Model): label = "Config" model = Config icon = "fas fa-cogs" filters = [ filters.Enum(enum=enums.Status, name="status", label="Status"), filters.Search(name="key", label="Key", search_mode="equal"), ] fields = [ "id", "label", "key", "value", Field( name="status", label="Status", input_=inputs.RadioEnum(enums.Status, default=enums.Status.on), ), ] async def row_attributes(self, request: Request, obj: dict) -> dict: if obj.get("status") == enums.Status.on: return {"class": "bg-green text-white"} return await super().row_attributes(request, obj)