[TNL-5632] Optimize the single_thread view.
Firstly, we're now explicitly instructing the comments service to not return thread responses/comments if the request isn't AJAX. So, if you load the URL for a single discussion thread in your browser, this would be a non-AJAX call and we'll avoid loading the responses for the entire thread behind-the-scenes. Big win here for large threads. Next, we removed a redundant "get threads" call which was also happening behind-the-scenes. This call was redundant as the front-end JS also grabs the thread list when a topic is chosen, so we were making an extranenous call for no benefit. Poof, gone! Finally, we added some caching of database queries that are required to drive a lot of the permissions/cohorts machinery around discussion. This will have a minimal effect but introduced a cleaner way to apply general memoization at the per-request level which will let us further cache things as we identify them as issues.
This commit is contained in:
@@ -435,22 +435,6 @@ class DiscussionTabMultipleThreadTest(BaseDiscussionTestCase):
|
||||
view = MultipleThreadFixture(threads)
|
||||
view.push()
|
||||
|
||||
def test_page_scroll_on_thread_change_view(self):
|
||||
"""
|
||||
Check switching between threads changes the page focus
|
||||
"""
|
||||
# verify threads are rendered on the page
|
||||
self.assertTrue(
|
||||
self.thread_page_1.check_threads_rendered_successfully(thread_count=self.thread_count)
|
||||
)
|
||||
|
||||
# From the thread_page_1 open & verify next thread
|
||||
self.thread_page_1.click_and_open_thread(thread_id=self.thread_ids[1])
|
||||
self.assertTrue(self.thread_page_2.is_browser_on_page())
|
||||
|
||||
# Verify that the focus is changed
|
||||
self.thread_page_2.check_focus_is_set(selector=".discussion-article")
|
||||
|
||||
@attr('a11y')
|
||||
def test_page_accessibility(self):
|
||||
self.thread_page_1.a11y_audit.config.set_rules({
|
||||
|
||||
Reference in New Issue
Block a user