Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Paginated and dept-limited list of nodes #313

Open
mbajur opened this issue Jun 5, 2018 · 0 comments
Open

Paginated and dept-limited list of nodes #313

mbajur opened this issue Jun 5, 2018 · 0 comments

Comments

@mbajur
Copy link

mbajur commented Jun 5, 2018

Hello!
First of all, thank you for this great piece of software.

I'm creating a website with threaded comments functionality - working kind of like reddit. There is a post, post can have many comments and each comment can have many sub-comments. closure_tree makes working with such setup a breeze but things gets complicated when i want to expose my comments through REST API in a consumer-friendly way.

My ultimate goal is to make it work like reddit comments works: initial story page load shows paginated list of root comments and their paginated children comments up to x depth (i'm not sure what's the exact depth but, say, 3). Example: https://www.reddit.com/r/ColorizedHistory/comments/8ojpss/queen_victoria_and_her_family_including_king/

I'm not able to reverse-engineer it as it seems that the initial comments list is rendered server-side but i'm gonna try to explain what such endpoint should return:

  • Paginated list of root comments (say, 5 per page)
  • for each root comment, a paginated list of sub-comments (say, 5 per page again)
  • reapeat previous step recursively for each child comment until depth = 3
ORIGINAL POST
+-- Comment 1
|   +-- Sub comment 1
|       +-- [load children]
|   +-- Sub comment 2
|       +-- [load children]
|   +-- Sub comment 3
|       +-- [load children]
|   +-- [load more childs for Comment 1]
+-- Comment 2
|   +-- Sub comment 1
|   +-- Sub comment 2
|       +-- [load children]
|   +-- Sub comment 3
|   +-- [load more childs for Comment 2]
+-- Comment 3
|   +-- Sub comment 1
|       +-- [load children]
|   +-- Sub comment 2
|   +-- Sub comment 3
|   +-- [load more childs for Comment 3]
[load more root comments]

I'm not sure if my description is clear or if linked reddit story is a clear example of what i mean.

How i'm handling it so far is initially fetching just the paginated root comments (comments. find_all_by_generation(0)) and loading their children (recursively) only if user clicks "Load replies" button on the frontend side.

That endpoint might return the comments as a flat collection, they don't need to be nested (i'm using parent_id to show them in a proper thread on frontend side)

Thanks in advance for any tips, if something is unclear, i'm gonna try to explain it further.

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

No branches or pull requests

1 participant