| 105 | |
| 106 | @app.register |
| 107 | class ConfigResource(Model): |
| 108 | label = "Config" |
| 109 | model = Config |
| 110 | icon = "fas fa-cogs" |
| 111 | filters = [ |
| 112 | filters.Enum(enum=enums.Status, name="status", label="Status"), |
| 113 | filters.Search(name="key", label="Key", search_mode="equal"), |
| 114 | ] |
| 115 | fields = [ |
| 116 | "id", |
| 117 | "label", |
| 118 | "key", |
| 119 | "value", |
| 120 | Field( |
| 121 | name="status", |
| 122 | label="Status", |
| 123 | input_=inputs.RadioEnum(enums.Status, default=enums.Status.on), |
| 124 | ), |
| 125 | ] |
| 126 | |
| 127 | async def row_attributes(self, request: Request, obj: dict) -> dict: |
| 128 | if obj.get("status") == enums.Status.on: |
| 129 | return {"class": "bg-green text-white"} |
| 130 | return await super().row_attributes(request, obj) |
| 131 | |
| 132 | async def get_actions(self, request: Request) -> List[Action]: |
| 133 | actions = await super().get_actions(request) |
| 134 | switch_status = Action( |
| 135 | label="Switch Status", |
| 136 | icon="ti ti-toggle-left", |
| 137 | name="switch_status", |
| 138 | method=Method.PUT, |
| 139 | ) |
| 140 | actions.append(switch_status) |
| 141 | return actions |
| 142 | |
| 143 | |
| 144 | @app.register |