Skip to content

Optimize admin page performance with lazy loading and limit sessions query to last 5 classes - #1524

Draft
karbassi with Copilot wants to merge 5 commits into
mainfrom
copilot/fix-877
Draft

Optimize admin page performance with lazy loading and limit sessions query to last 5 classes#1524
karbassi with Copilot wants to merge 5 commits into
mainfrom
copilot/fix-877

Conversation

CopilotAI commented Sep 12, 2025

Copy link
Copy Markdown

This PR optimizes the admin page load times by limiting the database query to retrieve only the last 5 sessions initially, and adds on-demand loading functionality to view additional sessions up to the last 365 days.

Problem

The admin page was retrieving ALL sessions from the database and using client-side CSS collapse to hide sessions beyond the first 5. This approach:

  • Loaded unnecessary data from the database
  • Consumed more memory
  • Resulted in slower page load times, especially with large datasets
  • Added complexity with collapse/expand UI logic

Solution

Modified the sessions queryset to use database-level limiting with [:5] slice and added AJAX-based "Load More" functionality:

Before:

sessions= (
Session.objects.select_related()
.annotate(...)
.order_by("-start_date") # Retrieves ALL sessions
)

After:

sessions= (
Session.objects.select_related()
.annotate(...)
.order_by("-start_date")[:5] # Retrieves only last 5 sessions
)

New Load More Functionality:

  • Added /admin/load-more-sessions/ AJAX endpoint that loads 10 sessions at a time
  • Sessions are limited to the last 365 days to prevent loading extremely old data
  • "Load More Classes" button appears when additional sessions are available
  • Additional sessions are fetched only when requested, maintaining performance

Also cleaned up the template by removing the now-unnecessary collapse functionality:

  • Removed session-collapse CSS classes from table rows
  • Removed the Show/Hide toggle button
  • Simplified template logic
  • Added conditional "Load More" button with loading indicators

Benefits

  • Faster database queries - Limited to 5 sessions on initial load
  • Reduced memory usage - Only loads necessary data initially
  • Improved page load times - Especially noticeable with large datasets
  • Cleaner template code - Removed conditional collapse logic
  • Better scalability - Performance remains constant as data grows
  • On-demand data loading - View more sessions without impacting initial load
  • 365-day data limit - Prevents loading extremely old sessions

User Experience

Admins see the last 5 classes on initial page load for optimal performance. When more sessions are available within the last 365 days, a "Load More Classes" button allows viewing additional sessions without page reload. The optimization maintains fast initial load times while providing access to historical data when needed.

Testing

Added comprehensive test suite in test_admin_load_more_sessions.py covering:

  • Staff user access control
  • Authentication requirements
  • Pagination functionality
  • AJAX response format validation

Fixes#877.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

CopilotAIand others added 2 commits September 12, 2025 18:18
Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
CopilotAI changed the title [WIP] Admin page should only show last 5 classesOptimize admin page performance by limiting sessions query to last 5 classesSep 12, 2025
CopilotAI requested a review from karbassiSeptember 12, 2025 18:23
@karbassi

Copy link
Copy Markdown
Member

I still want a way to view more classes, up to all the classes in the last 365 days, but I don’t want them initially fetched on page load.

@copilot

Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>

CopilotAI commented Sep 12, 2025

Copy link
Copy Markdown
Author

I still want a way to view more classes, up to all the classes in the last 365 days, but I don’t want them initially fetched on page load.

@copilot

I've implemented a "Load More Classes" button that allows viewing additional sessions up to all classes from the last 365 days without initially fetching them on page load.

Implementation details:

  • Added /admin/load-more-sessions/ AJAX endpoint that loads 10 sessions at a time
  • Sessions are limited to the last 365 days as requested
  • "Load More Classes" button appears below the initial 5 sessions
  • Additional sessions are fetched only when the button is clicked
  • Shows "Loading..." indicator during requests
  • Button is hidden when all sessions are loaded, showing a message instead

The performance optimization is maintained - only the initial 5 sessions are loaded on page load, with additional sessions fetched on demand. This provides the best of both worlds: fast initial load times and the ability to view more historical data when needed.

Commit: 6699198

Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
CopilotAI changed the title Optimize admin page performance by limiting sessions query to last 5 classesOptimize admin page performance with lazy loading and limit sessions query to last 5 classesSep 12, 2025
Sign up for freeto 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.

Admin page should only show last 5 classes

2 participants

@karbassi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Optimize admin page performance with lazy loading and limit sessions query to last 5 classes by Copilot · Pull Request #1524 · WeAllCode/website · GitHub
Skip to content

Optimize admin page performance with lazy loading and limit sessions query to last 5 classes - #1524

Draft
karbassi with Copilot wants to merge 5 commits into
mainfrom
copilot/fix-877
Draft

Optimize admin page performance with lazy loading and limit sessions query to last 5 classes#1524
karbassi with Copilot wants to merge 5 commits into
mainfrom
copilot/fix-877

Conversation

CopilotAI commented Sep 12, 2025

Copy link
Copy Markdown

This PR optimizes the admin page load times by limiting the database query to retrieve only the last 5 sessions initially, and adds on-demand loading functionality to view additional sessions up to the last 365 days.

Problem

The admin page was retrieving ALL sessions from the database and using client-side CSS collapse to hide sessions beyond the first 5. This approach:

  • Loaded unnecessary data from the database
  • Consumed more memory
  • Resulted in slower page load times, especially with large datasets
  • Added complexity with collapse/expand UI logic

Solution

Modified the sessions queryset to use database-level limiting with [:5] slice and added AJAX-based "Load More" functionality:

Before:

sessions= (
Session.objects.select_related()
.annotate(...)
.order_by("-start_date") # Retrieves ALL sessions
)

After:

sessions= (
Session.objects.select_related()
.annotate(...)
.order_by("-start_date")[:5] # Retrieves only last 5 sessions
)

New Load More Functionality:

  • Added /admin/load-more-sessions/ AJAX endpoint that loads 10 sessions at a time
  • Sessions are limited to the last 365 days to prevent loading extremely old data
  • "Load More Classes" button appears when additional sessions are available
  • Additional sessions are fetched only when requested, maintaining performance

Also cleaned up the template by removing the now-unnecessary collapse functionality:

  • Removed session-collapse CSS classes from table rows
  • Removed the Show/Hide toggle button
  • Simplified template logic
  • Added conditional "Load More" button with loading indicators

Benefits

  • Faster database queries - Limited to 5 sessions on initial load
  • Reduced memory usage - Only loads necessary data initially
  • Improved page load times - Especially noticeable with large datasets
  • Cleaner template code - Removed conditional collapse logic
  • Better scalability - Performance remains constant as data grows
  • On-demand data loading - View more sessions without impacting initial load
  • 365-day data limit - Prevents loading extremely old sessions

User Experience

Admins see the last 5 classes on initial page load for optimal performance. When more sessions are available within the last 365 days, a "Load More Classes" button allows viewing additional sessions without page reload. The optimization maintains fast initial load times while providing access to historical data when needed.

Testing

Added comprehensive test suite in test_admin_load_more_sessions.py covering:

  • Staff user access control
  • Authentication requirements
  • Pagination functionality
  • AJAX response format validation

Fixes#877.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

CopilotAIand others added 2 commits September 12, 2025 18:18
Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
CopilotAI changed the title [WIP] Admin page should only show last 5 classesOptimize admin page performance by limiting sessions query to last 5 classesSep 12, 2025
CopilotAI requested a review from karbassiSeptember 12, 2025 18:23
@karbassi

Copy link
Copy Markdown
Member

I still want a way to view more classes, up to all the classes in the last 365 days, but I don’t want them initially fetched on page load.

@copilot

Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>

CopilotAI commented Sep 12, 2025

Copy link
Copy Markdown
Author

I still want a way to view more classes, up to all the classes in the last 365 days, but I don’t want them initially fetched on page load.

@copilot

I've implemented a "Load More Classes" button that allows viewing additional sessions up to all classes from the last 365 days without initially fetching them on page load.

Implementation details:

  • Added /admin/load-more-sessions/ AJAX endpoint that loads 10 sessions at a time
  • Sessions are limited to the last 365 days as requested
  • "Load More Classes" button appears below the initial 5 sessions
  • Additional sessions are fetched only when the button is clicked
  • Shows "Loading..." indicator during requests
  • Button is hidden when all sessions are loaded, showing a message instead

The performance optimization is maintained - only the initial 5 sessions are loaded on page load, with additional sessions fetched on demand. This provides the best of both worlds: fast initial load times and the ability to view more historical data when needed.

Commit: 6699198

Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
CopilotAI changed the title Optimize admin page performance by limiting sessions query to last 5 classesOptimize admin page performance with lazy loading and limit sessions query to last 5 classesSep 12, 2025
Sign up for freeto 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.

Admin page should only show last 5 classes

2 participants

@karbassi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Optimize admin page performance with lazy loading and limit sessions query to last 5 classes by Copilot · Pull Request #1524 · WeAllCode/website · GitHub
Skip to content

Optimize admin page performance with lazy loading and limit sessions query to last 5 classes - #1524

Draft
karbassi with Copilot wants to merge 5 commits into
mainfrom
copilot/fix-877
Draft

Optimize admin page performance with lazy loading and limit sessions query to last 5 classes#1524
karbassi with Copilot wants to merge 5 commits into
mainfrom
copilot/fix-877

Conversation

CopilotAI commented Sep 12, 2025

Copy link
Copy Markdown

This PR optimizes the admin page load times by limiting the database query to retrieve only the last 5 sessions initially, and adds on-demand loading functionality to view additional sessions up to the last 365 days.

Problem

The admin page was retrieving ALL sessions from the database and using client-side CSS collapse to hide sessions beyond the first 5. This approach:

  • Loaded unnecessary data from the database
  • Consumed more memory
  • Resulted in slower page load times, especially with large datasets
  • Added complexity with collapse/expand UI logic

Solution

Modified the sessions queryset to use database-level limiting with [:5] slice and added AJAX-based "Load More" functionality:

Before:

sessions= (
Session.objects.select_related()
.annotate(...)
.order_by("-start_date") # Retrieves ALL sessions
)

After:

sessions= (
Session.objects.select_related()
.annotate(...)
.order_by("-start_date")[:5] # Retrieves only last 5 sessions
)

New Load More Functionality:

  • Added /admin/load-more-sessions/ AJAX endpoint that loads 10 sessions at a time
  • Sessions are limited to the last 365 days to prevent loading extremely old data
  • "Load More Classes" button appears when additional sessions are available
  • Additional sessions are fetched only when requested, maintaining performance

Also cleaned up the template by removing the now-unnecessary collapse functionality:

  • Removed session-collapse CSS classes from table rows
  • Removed the Show/Hide toggle button
  • Simplified template logic
  • Added conditional "Load More" button with loading indicators

Benefits

  • Faster database queries - Limited to 5 sessions on initial load
  • Reduced memory usage - Only loads necessary data initially
  • Improved page load times - Especially noticeable with large datasets
  • Cleaner template code - Removed conditional collapse logic
  • Better scalability - Performance remains constant as data grows
  • On-demand data loading - View more sessions without impacting initial load
  • 365-day data limit - Prevents loading extremely old sessions

User Experience

Admins see the last 5 classes on initial page load for optimal performance. When more sessions are available within the last 365 days, a "Load More Classes" button allows viewing additional sessions without page reload. The optimization maintains fast initial load times while providing access to historical data when needed.

Testing

Added comprehensive test suite in test_admin_load_more_sessions.py covering:

  • Staff user access control
  • Authentication requirements
  • Pagination functionality
  • AJAX response format validation

Fixes#877.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

CopilotAIand others added 2 commits September 12, 2025 18:18
Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
CopilotAI changed the title [WIP] Admin page should only show last 5 classesOptimize admin page performance by limiting sessions query to last 5 classesSep 12, 2025
CopilotAI requested a review from karbassiSeptember 12, 2025 18:23
@karbassi

Copy link
Copy Markdown
Member

I still want a way to view more classes, up to all the classes in the last 365 days, but I don’t want them initially fetched on page load.

@copilot

Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>

CopilotAI commented Sep 12, 2025

Copy link
Copy Markdown
Author

I still want a way to view more classes, up to all the classes in the last 365 days, but I don’t want them initially fetched on page load.

@copilot

I've implemented a "Load More Classes" button that allows viewing additional sessions up to all classes from the last 365 days without initially fetching them on page load.

Implementation details:

  • Added /admin/load-more-sessions/ AJAX endpoint that loads 10 sessions at a time
  • Sessions are limited to the last 365 days as requested
  • "Load More Classes" button appears below the initial 5 sessions
  • Additional sessions are fetched only when the button is clicked
  • Shows "Loading..." indicator during requests
  • Button is hidden when all sessions are loaded, showing a message instead

The performance optimization is maintained - only the initial 5 sessions are loaded on page load, with additional sessions fetched on demand. This provides the best of both worlds: fast initial load times and the ability to view more historical data when needed.

Commit: 6699198

Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
CopilotAI changed the title Optimize admin page performance by limiting sessions query to last 5 classesOptimize admin page performance with lazy loading and limit sessions query to last 5 classesSep 12, 2025
Sign up for freeto 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.

Admin page should only show last 5 classes

2 participants

@karbassi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Optimize admin page performance with lazy loading and limit sessions query to last 5 classes by Copilot · Pull Request #1524 · WeAllCode/website · GitHub
Skip to content

Optimize admin page performance with lazy loading and limit sessions query to last 5 classes - #1524

Draft
karbassi with Copilot wants to merge 5 commits into
mainfrom
copilot/fix-877
Draft

Optimize admin page performance with lazy loading and limit sessions query to last 5 classes#1524
karbassi with Copilot wants to merge 5 commits into
mainfrom
copilot/fix-877

Conversation

CopilotAI commented Sep 12, 2025

Copy link
Copy Markdown

This PR optimizes the admin page load times by limiting the database query to retrieve only the last 5 sessions initially, and adds on-demand loading functionality to view additional sessions up to the last 365 days.

Problem

The admin page was retrieving ALL sessions from the database and using client-side CSS collapse to hide sessions beyond the first 5. This approach:

  • Loaded unnecessary data from the database
  • Consumed more memory
  • Resulted in slower page load times, especially with large datasets
  • Added complexity with collapse/expand UI logic

Solution

Modified the sessions queryset to use database-level limiting with [:5] slice and added AJAX-based "Load More" functionality:

Before:

sessions= (
Session.objects.select_related()
.annotate(...)
.order_by("-start_date") # Retrieves ALL sessions
)

After:

sessions= (
Session.objects.select_related()
.annotate(...)
.order_by("-start_date")[:5] # Retrieves only last 5 sessions
)

New Load More Functionality:

  • Added /admin/load-more-sessions/ AJAX endpoint that loads 10 sessions at a time
  • Sessions are limited to the last 365 days to prevent loading extremely old data
  • "Load More Classes" button appears when additional sessions are available
  • Additional sessions are fetched only when requested, maintaining performance

Also cleaned up the template by removing the now-unnecessary collapse functionality:

  • Removed session-collapse CSS classes from table rows
  • Removed the Show/Hide toggle button
  • Simplified template logic
  • Added conditional "Load More" button with loading indicators

Benefits

  • Faster database queries - Limited to 5 sessions on initial load
  • Reduced memory usage - Only loads necessary data initially
  • Improved page load times - Especially noticeable with large datasets
  • Cleaner template code - Removed conditional collapse logic
  • Better scalability - Performance remains constant as data grows
  • On-demand data loading - View more sessions without impacting initial load
  • 365-day data limit - Prevents loading extremely old sessions

User Experience

Admins see the last 5 classes on initial page load for optimal performance. When more sessions are available within the last 365 days, a "Load More Classes" button allows viewing additional sessions without page reload. The optimization maintains fast initial load times while providing access to historical data when needed.

Testing

Added comprehensive test suite in test_admin_load_more_sessions.py covering:

  • Staff user access control
  • Authentication requirements
  • Pagination functionality
  • AJAX response format validation

Fixes#877.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

CopilotAIand others added 2 commits September 12, 2025 18:18
Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
CopilotAI changed the title [WIP] Admin page should only show last 5 classesOptimize admin page performance by limiting sessions query to last 5 classesSep 12, 2025
CopilotAI requested a review from karbassiSeptember 12, 2025 18:23
@karbassi

Copy link
Copy Markdown
Member

I still want a way to view more classes, up to all the classes in the last 365 days, but I don’t want them initially fetched on page load.

@copilot

Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>

CopilotAI commented Sep 12, 2025

Copy link
Copy Markdown
Author

I still want a way to view more classes, up to all the classes in the last 365 days, but I don’t want them initially fetched on page load.

@copilot

I've implemented a "Load More Classes" button that allows viewing additional sessions up to all classes from the last 365 days without initially fetching them on page load.

Implementation details:

  • Added /admin/load-more-sessions/ AJAX endpoint that loads 10 sessions at a time
  • Sessions are limited to the last 365 days as requested
  • "Load More Classes" button appears below the initial 5 sessions
  • Additional sessions are fetched only when the button is clicked
  • Shows "Loading..." indicator during requests
  • Button is hidden when all sessions are loaded, showing a message instead

The performance optimization is maintained - only the initial 5 sessions are loaded on page load, with additional sessions fetched on demand. This provides the best of both worlds: fast initial load times and the ability to view more historical data when needed.

Commit: 6699198

Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
CopilotAI changed the title Optimize admin page performance by limiting sessions query to last 5 classesOptimize admin page performance with lazy loading and limit sessions query to last 5 classesSep 12, 2025
Sign up for freeto 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.

Admin page should only show last 5 classes

2 participants

@karbassi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Optimize admin page performance with lazy loading and limit sessions query to last 5 classes by Copilot · Pull Request #1524 · WeAllCode/website · GitHub
Skip to content

Optimize admin page performance with lazy loading and limit sessions query to last 5 classes - #1524

Draft
karbassi with Copilot wants to merge 5 commits into
mainfrom
copilot/fix-877
Draft

Optimize admin page performance with lazy loading and limit sessions query to last 5 classes#1524
karbassi with Copilot wants to merge 5 commits into
mainfrom
copilot/fix-877

Conversation

CopilotAI commented Sep 12, 2025

Copy link
Copy Markdown

This PR optimizes the admin page load times by limiting the database query to retrieve only the last 5 sessions initially, and adds on-demand loading functionality to view additional sessions up to the last 365 days.

Problem

The admin page was retrieving ALL sessions from the database and using client-side CSS collapse to hide sessions beyond the first 5. This approach:

  • Loaded unnecessary data from the database
  • Consumed more memory
  • Resulted in slower page load times, especially with large datasets
  • Added complexity with collapse/expand UI logic

Solution

Modified the sessions queryset to use database-level limiting with [:5] slice and added AJAX-based "Load More" functionality:

Before:

sessions= (
Session.objects.select_related()
.annotate(...)
.order_by("-start_date") # Retrieves ALL sessions
)

After:

sessions= (
Session.objects.select_related()
.annotate(...)
.order_by("-start_date")[:5] # Retrieves only last 5 sessions
)

New Load More Functionality:

  • Added /admin/load-more-sessions/ AJAX endpoint that loads 10 sessions at a time
  • Sessions are limited to the last 365 days to prevent loading extremely old data
  • "Load More Classes" button appears when additional sessions are available
  • Additional sessions are fetched only when requested, maintaining performance

Also cleaned up the template by removing the now-unnecessary collapse functionality:

  • Removed session-collapse CSS classes from table rows
  • Removed the Show/Hide toggle button
  • Simplified template logic
  • Added conditional "Load More" button with loading indicators

Benefits

  • Faster database queries - Limited to 5 sessions on initial load
  • Reduced memory usage - Only loads necessary data initially
  • Improved page load times - Especially noticeable with large datasets
  • Cleaner template code - Removed conditional collapse logic
  • Better scalability - Performance remains constant as data grows
  • On-demand data loading - View more sessions without impacting initial load
  • 365-day data limit - Prevents loading extremely old sessions

User Experience

Admins see the last 5 classes on initial page load for optimal performance. When more sessions are available within the last 365 days, a "Load More Classes" button allows viewing additional sessions without page reload. The optimization maintains fast initial load times while providing access to historical data when needed.

Testing

Added comprehensive test suite in test_admin_load_more_sessions.py covering:

  • Staff user access control
  • Authentication requirements
  • Pagination functionality
  • AJAX response format validation

Fixes#877.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

CopilotAIand others added 2 commits September 12, 2025 18:18
Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
CopilotAI changed the title [WIP] Admin page should only show last 5 classesOptimize admin page performance by limiting sessions query to last 5 classesSep 12, 2025
CopilotAI requested a review from karbassiSeptember 12, 2025 18:23
@karbassi

Copy link
Copy Markdown
Member

I still want a way to view more classes, up to all the classes in the last 365 days, but I don’t want them initially fetched on page load.

@copilot

Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>

CopilotAI commented Sep 12, 2025

Copy link
Copy Markdown
Author

I still want a way to view more classes, up to all the classes in the last 365 days, but I don’t want them initially fetched on page load.

@copilot

I've implemented a "Load More Classes" button that allows viewing additional sessions up to all classes from the last 365 days without initially fetching them on page load.

Implementation details:

  • Added /admin/load-more-sessions/ AJAX endpoint that loads 10 sessions at a time
  • Sessions are limited to the last 365 days as requested
  • "Load More Classes" button appears below the initial 5 sessions
  • Additional sessions are fetched only when the button is clicked
  • Shows "Loading..." indicator during requests
  • Button is hidden when all sessions are loaded, showing a message instead

The performance optimization is maintained - only the initial 5 sessions are loaded on page load, with additional sessions fetched on demand. This provides the best of both worlds: fast initial load times and the ability to view more historical data when needed.

Commit: 6699198

Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
CopilotAI changed the title Optimize admin page performance by limiting sessions query to last 5 classesOptimize admin page performance with lazy loading and limit sessions query to last 5 classesSep 12, 2025
Sign up for freeto 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.

Admin page should only show last 5 classes

2 participants

@karbassi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Optimize admin page performance with lazy loading and limit sessions query to last 5 classes by Copilot · Pull Request #1524 · WeAllCode/website · GitHub
Skip to content

Optimize admin page performance with lazy loading and limit sessions query to last 5 classes - #1524

Draft
karbassi with Copilot wants to merge 5 commits into
mainfrom
copilot/fix-877
Draft

Optimize admin page performance with lazy loading and limit sessions query to last 5 classes#1524
karbassi with Copilot wants to merge 5 commits into
mainfrom
copilot/fix-877

Conversation

CopilotAI commented Sep 12, 2025

Copy link
Copy Markdown

This PR optimizes the admin page load times by limiting the database query to retrieve only the last 5 sessions initially, and adds on-demand loading functionality to view additional sessions up to the last 365 days.

Problem

The admin page was retrieving ALL sessions from the database and using client-side CSS collapse to hide sessions beyond the first 5. This approach:

  • Loaded unnecessary data from the database
  • Consumed more memory
  • Resulted in slower page load times, especially with large datasets
  • Added complexity with collapse/expand UI logic

Solution

Modified the sessions queryset to use database-level limiting with [:5] slice and added AJAX-based "Load More" functionality:

Before:

sessions= (
Session.objects.select_related()
.annotate(...)
.order_by("-start_date") # Retrieves ALL sessions
)

After:

sessions= (
Session.objects.select_related()
.annotate(...)
.order_by("-start_date")[:5] # Retrieves only last 5 sessions
)

New Load More Functionality:

  • Added /admin/load-more-sessions/ AJAX endpoint that loads 10 sessions at a time
  • Sessions are limited to the last 365 days to prevent loading extremely old data
  • "Load More Classes" button appears when additional sessions are available
  • Additional sessions are fetched only when requested, maintaining performance

Also cleaned up the template by removing the now-unnecessary collapse functionality:

  • Removed session-collapse CSS classes from table rows
  • Removed the Show/Hide toggle button
  • Simplified template logic
  • Added conditional "Load More" button with loading indicators

Benefits

  • Faster database queries - Limited to 5 sessions on initial load
  • Reduced memory usage - Only loads necessary data initially
  • Improved page load times - Especially noticeable with large datasets
  • Cleaner template code - Removed conditional collapse logic
  • Better scalability - Performance remains constant as data grows
  • On-demand data loading - View more sessions without impacting initial load
  • 365-day data limit - Prevents loading extremely old sessions

User Experience

Admins see the last 5 classes on initial page load for optimal performance. When more sessions are available within the last 365 days, a "Load More Classes" button allows viewing additional sessions without page reload. The optimization maintains fast initial load times while providing access to historical data when needed.

Testing

Added comprehensive test suite in test_admin_load_more_sessions.py covering:

  • Staff user access control
  • Authentication requirements
  • Pagination functionality
  • AJAX response format validation

Fixes#877.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

CopilotAIand others added 2 commits September 12, 2025 18:18
Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
CopilotAI changed the title [WIP] Admin page should only show last 5 classesOptimize admin page performance by limiting sessions query to last 5 classesSep 12, 2025
CopilotAI requested a review from karbassiSeptember 12, 2025 18:23
@karbassi

Copy link
Copy Markdown
Member

I still want a way to view more classes, up to all the classes in the last 365 days, but I don’t want them initially fetched on page load.

@copilot

Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>

CopilotAI commented Sep 12, 2025

Copy link
Copy Markdown
Author

I still want a way to view more classes, up to all the classes in the last 365 days, but I don’t want them initially fetched on page load.

@copilot

I've implemented a "Load More Classes" button that allows viewing additional sessions up to all classes from the last 365 days without initially fetching them on page load.

Implementation details:

  • Added /admin/load-more-sessions/ AJAX endpoint that loads 10 sessions at a time
  • Sessions are limited to the last 365 days as requested
  • "Load More Classes" button appears below the initial 5 sessions
  • Additional sessions are fetched only when the button is clicked
  • Shows "Loading..." indicator during requests
  • Button is hidden when all sessions are loaded, showing a message instead

The performance optimization is maintained - only the initial 5 sessions are loaded on page load, with additional sessions fetched on demand. This provides the best of both worlds: fast initial load times and the ability to view more historical data when needed.

Commit: 6699198

Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
CopilotAI changed the title Optimize admin page performance by limiting sessions query to last 5 classesOptimize admin page performance with lazy loading and limit sessions query to last 5 classesSep 12, 2025
Sign up for freeto 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.

Admin page should only show last 5 classes

2 participants

@karbassi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Optimize admin page performance with lazy loading and limit sessions query to last 5 classes by Copilot · Pull Request #1524 · WeAllCode/website · GitHub
Skip to content

Optimize admin page performance with lazy loading and limit sessions query to last 5 classes - #1524

Draft
karbassi with Copilot wants to merge 5 commits into
mainfrom
copilot/fix-877
Draft

Optimize admin page performance with lazy loading and limit sessions query to last 5 classes#1524
karbassi with Copilot wants to merge 5 commits into
mainfrom
copilot/fix-877

Conversation

CopilotAI commented Sep 12, 2025

Copy link
Copy Markdown

This PR optimizes the admin page load times by limiting the database query to retrieve only the last 5 sessions initially, and adds on-demand loading functionality to view additional sessions up to the last 365 days.

Problem

The admin page was retrieving ALL sessions from the database and using client-side CSS collapse to hide sessions beyond the first 5. This approach:

  • Loaded unnecessary data from the database
  • Consumed more memory
  • Resulted in slower page load times, especially with large datasets
  • Added complexity with collapse/expand UI logic

Solution

Modified the sessions queryset to use database-level limiting with [:5] slice and added AJAX-based "Load More" functionality:

Before:

sessions= (
Session.objects.select_related()
.annotate(...)
.order_by("-start_date") # Retrieves ALL sessions
)

After:

sessions= (
Session.objects.select_related()
.annotate(...)
.order_by("-start_date")[:5] # Retrieves only last 5 sessions
)

New Load More Functionality:

  • Added /admin/load-more-sessions/ AJAX endpoint that loads 10 sessions at a time
  • Sessions are limited to the last 365 days to prevent loading extremely old data
  • "Load More Classes" button appears when additional sessions are available
  • Additional sessions are fetched only when requested, maintaining performance

Also cleaned up the template by removing the now-unnecessary collapse functionality:

  • Removed session-collapse CSS classes from table rows
  • Removed the Show/Hide toggle button
  • Simplified template logic
  • Added conditional "Load More" button with loading indicators

Benefits

  • Faster database queries - Limited to 5 sessions on initial load
  • Reduced memory usage - Only loads necessary data initially
  • Improved page load times - Especially noticeable with large datasets
  • Cleaner template code - Removed conditional collapse logic
  • Better scalability - Performance remains constant as data grows
  • On-demand data loading - View more sessions without impacting initial load
  • 365-day data limit - Prevents loading extremely old sessions

User Experience

Admins see the last 5 classes on initial page load for optimal performance. When more sessions are available within the last 365 days, a "Load More Classes" button allows viewing additional sessions without page reload. The optimization maintains fast initial load times while providing access to historical data when needed.

Testing

Added comprehensive test suite in test_admin_load_more_sessions.py covering:

  • Staff user access control
  • Authentication requirements
  • Pagination functionality
  • AJAX response format validation

Fixes#877.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

CopilotAIand others added 2 commits September 12, 2025 18:18
Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
CopilotAI changed the title [WIP] Admin page should only show last 5 classesOptimize admin page performance by limiting sessions query to last 5 classesSep 12, 2025
CopilotAI requested a review from karbassiSeptember 12, 2025 18:23
@karbassi

Copy link
Copy Markdown
Member

I still want a way to view more classes, up to all the classes in the last 365 days, but I don’t want them initially fetched on page load.

@copilot

Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>

CopilotAI commented Sep 12, 2025

Copy link
Copy Markdown
Author

I still want a way to view more classes, up to all the classes in the last 365 days, but I don’t want them initially fetched on page load.

@copilot

I've implemented a "Load More Classes" button that allows viewing additional sessions up to all classes from the last 365 days without initially fetching them on page load.

Implementation details:

  • Added /admin/load-more-sessions/ AJAX endpoint that loads 10 sessions at a time
  • Sessions are limited to the last 365 days as requested
  • "Load More Classes" button appears below the initial 5 sessions
  • Additional sessions are fetched only when the button is clicked
  • Shows "Loading..." indicator during requests
  • Button is hidden when all sessions are loaded, showing a message instead

The performance optimization is maintained - only the initial 5 sessions are loaded on page load, with additional sessions fetched on demand. This provides the best of both worlds: fast initial load times and the ability to view more historical data when needed.

Commit: 6699198

Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
CopilotAI changed the title Optimize admin page performance by limiting sessions query to last 5 classesOptimize admin page performance with lazy loading and limit sessions query to last 5 classesSep 12, 2025
Sign up for freeto 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.

Admin page should only show last 5 classes

2 participants

@karbassi
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Optimize admin page performance with lazy loading and limit sessions query to last 5 classes by Copilot · Pull Request #1524 · WeAllCode/website · GitHub
Skip to content

Optimize admin page performance with lazy loading and limit sessions query to last 5 classes - #1524

Draft
karbassi with Copilot wants to merge 5 commits into
mainfrom
copilot/fix-877
Draft

Optimize admin page performance with lazy loading and limit sessions query to last 5 classes#1524
karbassi with Copilot wants to merge 5 commits into
mainfrom
copilot/fix-877

Conversation

CopilotAI commented Sep 12, 2025

Copy link
Copy Markdown

This PR optimizes the admin page load times by limiting the database query to retrieve only the last 5 sessions initially, and adds on-demand loading functionality to view additional sessions up to the last 365 days.

Problem

The admin page was retrieving ALL sessions from the database and using client-side CSS collapse to hide sessions beyond the first 5. This approach:

  • Loaded unnecessary data from the database
  • Consumed more memory
  • Resulted in slower page load times, especially with large datasets
  • Added complexity with collapse/expand UI logic

Solution

Modified the sessions queryset to use database-level limiting with [:5] slice and added AJAX-based "Load More" functionality:

Before:

sessions= (
Session.objects.select_related()
.annotate(...)
.order_by("-start_date") # Retrieves ALL sessions
)

After:

sessions= (
Session.objects.select_related()
.annotate(...)
.order_by("-start_date")[:5] # Retrieves only last 5 sessions
)

New Load More Functionality:

  • Added /admin/load-more-sessions/ AJAX endpoint that loads 10 sessions at a time
  • Sessions are limited to the last 365 days to prevent loading extremely old data
  • "Load More Classes" button appears when additional sessions are available
  • Additional sessions are fetched only when requested, maintaining performance

Also cleaned up the template by removing the now-unnecessary collapse functionality:

  • Removed session-collapse CSS classes from table rows
  • Removed the Show/Hide toggle button
  • Simplified template logic
  • Added conditional "Load More" button with loading indicators

Benefits

  • Faster database queries - Limited to 5 sessions on initial load
  • Reduced memory usage - Only loads necessary data initially
  • Improved page load times - Especially noticeable with large datasets
  • Cleaner template code - Removed conditional collapse logic
  • Better scalability - Performance remains constant as data grows
  • On-demand data loading - View more sessions without impacting initial load
  • 365-day data limit - Prevents loading extremely old sessions

User Experience

Admins see the last 5 classes on initial page load for optimal performance. When more sessions are available within the last 365 days, a "Load More Classes" button allows viewing additional sessions without page reload. The optimization maintains fast initial load times while providing access to historical data when needed.

Testing

Added comprehensive test suite in test_admin_load_more_sessions.py covering:

  • Staff user access control
  • Authentication requirements
  • Pagination functionality
  • AJAX response format validation

Fixes#877.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

CopilotAIand others added 2 commits September 12, 2025 18:18
Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
CopilotAI changed the title [WIP] Admin page should only show last 5 classesOptimize admin page performance by limiting sessions query to last 5 classesSep 12, 2025
CopilotAI requested a review from karbassiSeptember 12, 2025 18:23
@karbassi

Copy link
Copy Markdown
Member

I still want a way to view more classes, up to all the classes in the last 365 days, but I don’t want them initially fetched on page load.

@copilot

Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>

CopilotAI commented Sep 12, 2025

Copy link
Copy Markdown
Author

I still want a way to view more classes, up to all the classes in the last 365 days, but I don’t want them initially fetched on page load.

@copilot

I've implemented a "Load More Classes" button that allows viewing additional sessions up to all classes from the last 365 days without initially fetching them on page load.

Implementation details:

  • Added /admin/load-more-sessions/ AJAX endpoint that loads 10 sessions at a time
  • Sessions are limited to the last 365 days as requested
  • "Load More Classes" button appears below the initial 5 sessions
  • Additional sessions are fetched only when the button is clicked
  • Shows "Loading..." indicator during requests
  • Button is hidden when all sessions are loaded, showing a message instead

The performance optimization is maintained - only the initial 5 sessions are loaded on page load, with additional sessions fetched on demand. This provides the best of both worlds: fast initial load times and the ability to view more historical data when needed.

Commit: 6699198

Co-authored-by: karbassi <17738+karbassi@users.noreply.github.com>
CopilotAI changed the title Optimize admin page performance by limiting sessions query to last 5 classesOptimize admin page performance with lazy loading and limit sessions query to last 5 classesSep 12, 2025
Sign up for freeto 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.

Admin page should only show last 5 classes

2 participants

@karbassi