| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Changed logger format from %d to %s for episode_id to handle cases
where the ID might be passed as a string from route parameters.
Error was: Message: 'Tracked %s event for episode %d (user: %s)'
Arguments: ('added', '2', 1)
Using %s is more flexible and works with both int and str types.
|
|
Issue #1: demo@example.com admin status - Confirmed demo@example.com
IS in ADMIN_EMAILS (working as intended) - Both Core.py and UI.py
have demo@example.com in whitelist
Issue #2: /public page auto-refresh causing disappearing articles -
Created PublicFeedPage component without auto-refresh - Separated
from HomePage which has dashboard auto-updates - /public route now
uses PublicFeedPage instead of HomePage
Issue #3: Homepage missing public feed for logged-out users - Updated
HomePage to show public feed when user is not logged in - Shows
login form with public episodes below - Includes marketing message:
'Sign up to create your own personal feed!' - Public episodes are
fetched and displayed prominently
Additional improvements: - Added 'Public Feed' link to navbar for
easy access - PublicFeedPage shows RSS feed link for public.rss -
Clear separation between user dashboard (auto-refresh) and public feed
(static)
All tests passing (48 tests)
|
|
- Added admin@example.com to ADMIN_EMAILS in Core.py and UI.py - This
provides a demo admin account for testing - Public/Private toggle
badge already checks for admin status correctly - All tests passing
|
|
- Added Core.Database.get_metrics_summary() for aggregate stats -
Added Core.Database.get_episode_metric_events() for raw event data -
Created MetricsDashboard component with summary cards and top episodes
tables - Added /admin/metrics route with admin authentication -
Added metrics link to admin dropdown menu - Added comprehensive tests
for metrics functionality - Fixed type errors in Admin.py by adding
MetricCardAttrs - All tests passing (48 tests total in Web.py) -
Completed epic t-ga8V8O (24/24 tasks)
|
|
- Add page_title and meta_tags parameters to PageLayout - Generate
episode-specific page titles: '<Episode Title> - PodcastItLater' -
Add Open Graph meta tags for better link previews:
- og:title, og:type, og:url - og:description with duration and
author - og:audio with MP3 URL - og:site_name
- Add Twitter Card tags for Twitter sharing - Include article:author
when available
This improves how episode links appear when shared in messaging apps,
social media, and other platforms that support Open Graph protocol.
Amp-Thread-ID:
https://ampcode.com/threads/T-cc5d29f0-454e-4864-8d7e-1ad69a42afa9
Co-authored-by: Amp <amp@ampcode.com>
|
|
|
|
- Created reusable PageLayout component in UI.py with consistent
header/navbar - Added Home link and Admin dropdown menu (Queue
Status, Manage Users) - Updated all pages to use PageLayout: home,
account, admin queue, admin users - Added demo@example.com to admin
whitelist for testing - Added dark mode styling for table headers -
Fixed component children syntax for Ludic framework - Proper type
annotations instead of type: ignore comments
|
|
Moved format_duration function from Web.py to UI.py for better code
organization. This is a UI utility function used for displaying
episode durations, so it belongs in the shared UI module rather than
the web-specific module.
Amp-Thread-ID:
https://ampcode.com/threads/T-8edacbeb-b343-49ca-b524-1c999272acb6
Co-authored-by: Amp <amp@ampcode.com>
|
|
- Add hamburger toggle button positioned on right side - Navbar
collapses on small screens (< lg breakpoint) - Mobile view shows
vertically stacked elements:
- Logged in as: email - Free: X articles left [Upgrade Now] (free
users) - Billing (paid users only) - Admin Queue (admins only)
- Logout
- Remove 'Plan: Pro' text for paid users (just show Billing button)
- Add rounded corners to navbar with 'rounded' class - Remove 1px
bottom border in dark mode - Toggle controlled by Bootstrap's collapse
component
|
|
- Navbar now uses dark background (#2b3035) in dark mode - Add
border-bottom to separate navbar from content in dark mode - Ensure
navbar-text elements have proper light color (#dee2e6) in dark mode -
Maintains light mode appearance with bg-body-tertiary
|
|
- Create shared UI module (Biz/PodcastItLater/UI.py) with:
- create_bootstrap_styles() - create_auto_dark_mode_style() -
create_htmx_script() - create_bootstrap_js()
- Update Admin.py to use shared UI module and add dark mode support -
Update Web.py to use shared UI module - Admin Queue and User Management
pages now support automatic dark mode
|