From 7022bb10f2ae181fbbd250a88025a8221be271fe Mon Sep 17 00:00:00 2001 From: rob Date: Fri, 30 Jan 2026 02:36:32 -0400 Subject: [PATCH] Show ratings for own published tools, hide Rate button instead Own tools now display the rating bar (average, count) so authors can see how their tool is rated. The Rate button is hidden entirely for own tools rather than shown disabled, since the server enforces the self-review restriction anyway. Co-Authored-By: Claude Opus 4.5 --- src/cmdforge/gui/pages/tools_page.py | 33 ++++++++++------------------ 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/src/cmdforge/gui/pages/tools_page.py b/src/cmdforge/gui/pages/tools_page.py index 6f21912..7763497 100644 --- a/src/cmdforge/gui/pages/tools_page.py +++ b/src/cmdforge/gui/pages/tools_page.py @@ -943,54 +943,43 @@ class ToolsPage(QWidget): self.main_window.show_status(f"Published '{tool_name}'") def _update_rate_button(self): - """Update the Rate button state based on current selection.""" + """Update the Rate button visibility and state based on current selection.""" if not self._current_tool: - self.btn_rate.setEnabled(False) - self.btn_rate.setText("Rate Tool") - self.btn_rate.setToolTip("Select a tool to rate") + self.btn_rate.setVisible(False) return tool_name = self._get_qualified_name() if not tool_name: - self.btn_rate.setEnabled(False) - self.btn_rate.setText("Rate Tool") - self.btn_rate.setToolTip("Select a tool to rate") + self.btn_rate.setVisible(False) return registry_info = get_tool_registry_info(tool_name) - if not registry_info: - self.btn_rate.setEnabled(False) - self.btn_rate.setText("Rate Tool") - self.btn_rate.setToolTip("Local tools can't be rated") + self.btn_rate.setVisible(False) return config = load_config() if not config.registry.token: - self.btn_rate.setEnabled(False) - self.btn_rate.setText("Rate Tool") - self.btn_rate.setToolTip("Sign in to rate") + self.btn_rate.setVisible(False) return owner, name = registry_info - # Check if this is the user's own tool + # Hide button entirely for your own tools if self._my_slug and owner == self._my_slug: - self.btn_rate.setEnabled(False) - self.btn_rate.setText("Rate Tool") - self.btn_rate.setToolTip("You can't rate your own tool") + self.btn_rate.setVisible(False) return - # Check if user has an existing review + # Show and enable for other registry tools + self.btn_rate.setVisible(True) + self.btn_rate.setEnabled(True) + cached = self._rating_cache.get(tool_name) if cached and cached.get("my_review"): self.btn_rate.setText("Edit Rating") else: self.btn_rate.setText("Rate Tool") - self.btn_rate.setEnabled(True) - self.btn_rate.setToolTip("") - def _fetch_my_slug(self): """Fetch and cache the current user's slug.""" if self._my_slug_fetched: