Skip to content

feat: add About dialog with version, copyright, and links#256

Open
rtibblesbot wants to merge 5 commits into
learningequality:mainfrom
rtibblesbot:issue-239-ae3432
Open

feat: add About dialog with version, copyright, and links#256
rtibblesbot wants to merge 5 commits into
learningequality:mainfrom
rtibblesbot:issue-239-ae3432

Conversation

@rtibblesbot

@rtibblesbot rtibblesbot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a custom About dialog (AboutDialog(wx.Dialog)) showing app version, Kolibri version, copyright, and hyperlinks to Documentation and Community Forums.

Before this: macOS showed a minimal system-generated panel from Info.plist; Windows and Linux had no About entry at all. This gives all platforms a consistent dialog that also exposes the upstream Kolibri version, which Info.plist alone cannot show.

On macOS the menu item uses wx.ID_ABOUT, which wx automatically hoists to the top of the Application menu (before Services / Hide / Quit) regardless of which menu the item is added to. On Windows and Linux it appears as the last entry in the Help menu. The rebase onto main required adapting to the file_menuprimary_menu rename introduced by #248.

References

Closes #239

Reviewer guidance

make run-dev on each platform:

macOS

  • Open the "Kolibri" application menu.
  • Confirm "About Kolibri…" appears at the top, before Services/Hide/Quit.
  • Click it — dialog opens showing app version, Kolibri version, two hyperlinks (Documentation, Community Forum), and "© Learning Equality".
  • Click each link — confirm it opens in the default browser.
  • Click Close — confirm the app continues normally.

Windows / Linux

  • Open the Help menu.
  • Confirm "About Kolibri…" appears as the last item.
  • Repeat the same dialog checks as macOS.

Screenshots require a running wxPython display; not capturable in this headless CI environment. Manual verification on each platform is needed.

AI usage

Implemented with Claude Code following a pre-approved plan. The plan was reviewed and approved before implementation. The conflict resolution during rebase (adapting file_menuprimary_menu after #248 merged) was handled by Claude Code with reasoning about the wx.ID_ABOUT placement semantics.


@rtibblesbot's comments are generated by an LLM, and should be evaluated accordingly

How was this generated?
  • Ran pre-flight CI checks (lint, format, tests) and verified all pass
  • Rebased onto the target branch and resolved any conflicts
  • Reorganized commit history into clean, logical commits
  • Audited the diff to ensure only issue-relevant files are changed
  • Built PR body from the repository's PR template with evidence blocks
@rtibblesbot

🟡 Waiting for feedback

Last updated: 2026-07-04 02:18 UTC

@rtibblesbot rtibblesbot marked this pull request as ready for review June 30, 2026 00:54

@rtibbles rtibbles left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tests aren't helpful. Let's do a slight deviation from the spec and remove the license link - I don't think it's helpful. We should either say the license inline and have it translated, or not include it at all.

Comment thread src/kolibri_app/test_about_dialog_structure.py Outdated
Comment thread src/kolibri_app/about_dialog.py Outdated
rtibblesbot and others added 2 commits June 29, 2026 18:29
Adds AboutDialog (wx.Dialog) showing app version, Kolibri version,
copyright, and links to Documentation and Community Forums.

Wires an "About Kolibri…" menu item: in the macOS application menu
via wx.ID_ABOUT, and at the bottom of the Help menu on Windows/Linux.

Moves DOCS_URL and FORUMS_URL into constants.py so both view.py and
about_dialog.py reference a single source of truth.
Per reviewer feedback: DOCS_URL and FORUMS_URL don't belong in the
shared constants module. Move them into about_dialog.py where they're
used for HyperlinkCtrl, and inline them directly in view.py's
on_documentation/on_forums handlers. Also split the combined if MAC:
block so the About menu item and the menu_bar.Append are separate
guards.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@rtibbles rtibbles self-assigned this Jun 30, 2026
@pcenov

pcenov commented Jul 3, 2026

Copy link
Copy Markdown
Member

Hi @rtibbles
On Windows, the 'About Kolibri' modal is working correctly, can be opened and closed, all the relevant info is there and the links are working.
Here's a list of improvement suggestions:

  1. Consider adding padding on both sides as currently the modal looks trimmed from both sides (regardless of whether I'm viewing the app in full screen mode or not).
  2. We are showing the 'Copyright' info above the 'Documentation' and 'Community Forums', usually it's positioned at the bottom after all of the relevant info. Also elsewhere we are showing the current year like: © 2026 Learning Equality
  3. I think the 'Community Forums' link should be changed to singular 'Community Forum'?
  4. The 'Close' button seems to be centered, usually in other Windows apps it's positioned at the lower right corner:
Windows.11.-.About.mp4

On Mac, clicking the 'About Kolibri...' menu item results in opening a Kolibri Error modal

Mac error

Logs: Mac logs.zip

@rtibbles rtibbles left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please address the manual QA feedback.

- Fix crash on macOS where a failed icon decode raised
  wx.wxAssertionError, which wasn't caught (only FileNotFoundError/
  OSError were), so the dialog never opened
- Add horizontal padding so the dialog isn't trimmed at the edges
- Move copyright line below the links and include the current year
- Use singular "Community Forum" for the link label
- Right-align the Close button per platform convention
@rtibblesbot

Copy link
Copy Markdown
Contributor Author

Thanks for the thorough QA pass @pcenov — addressed all four points in 7327bc2:

  1. Added horizontal padding around the dialog content.
  2. Moved the copyright line below the links and switched it to © {year} Learning Equality with the current year.
  3. Changed the link label to singular "Community Forum".
  4. Right-aligned the Close button.

The macOS crash: a failed icon decode raised wx.wxAssertionError. That wasn't in the caught exception list, so it propagated and crashed the handler instead of just skipping the icon. Fixed by catching wx.wxAssertionError too.

rtibblesbot and others added 2 commits July 3, 2026 18:09
The uv-lock pre-commit hook was failing because main switched
exclude-newer to a relative "7 days" span while this branch's lockfile
still recorded the old fixed-date value.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@rtibblesbot

Copy link
Copy Markdown
Contributor Author

I was unable to complete this task after multiple attempts. Manual review and intervention may be needed.

@rtibblesbot

Copy link
Copy Markdown
Contributor Author
  • CI failure was a stale run against a prior commit, not the current HEAD.
  • uv-lock was drifting because exclude-newer uses a relative 7-day window; fixed by regenerating the lockfile in ac95b6b.
  • All checks are green on current HEAD (ac95b6b).
  • Reviewer feedback from both review rounds is addressed (see replies above).
  • Disregard the "unable to complete this task" comment above — it was posted before the fix landed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a custom About Kolibri dialog

3 participants