Employees + USB default-disabled with an enable-time provisioning note
Both plugins provision extra tables, so they now install disabled and explain
themselves before a site opts in.
- Plugin contract gains get_provisioning_note() -> {tables, note, docs}.
Employees and USB implement it (what tables get created in shopdb, how they
are referenced, link to the schema README; USB references the captured
DLP/reminder plans).
- Manifest default_enabled=false for employees + usb; the plugins list API
returns provisioning_note + default_enabled; install now registers a plugin
disabled when default_enabled is false.
- Setup wizard Features step renders the provisioning note the moment a plugin
with one is enabled.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -53,13 +53,14 @@ class PluginRegistry:
|
||||
}
|
||||
}, f, indent=2)
|
||||
|
||||
def register(self, name: str, version: str) -> PluginState:
|
||||
"""Register a newly installed plugin."""
|
||||
def register(self, name: str, version: str, enabled: bool = True) -> PluginState:
|
||||
"""Register a newly installed plugin. enabled=False leaves it off until a
|
||||
site opts in (used for plugins that provision extra tables)."""
|
||||
state = PluginState(
|
||||
name=name,
|
||||
version=version,
|
||||
installed_at=datetime.utcnow().isoformat(),
|
||||
enabled=True
|
||||
enabled=enabled
|
||||
)
|
||||
self._plugins[name] = state
|
||||
self._save()
|
||||
|
||||
Reference in New Issue
Block a user