-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
switch from MPTT to MP #3458
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
switch from MPTT to MP #3458
Conversation
@yakky the copying pages was broken before... but fixed it now... the sub plugin adding was fixed as well and found some other bugs. Please re-review :) |
Conflicts: cms/menu.py
@mkoistinen please review |
LGTM |
@mkoistinen can you have a look at this? |
OK, I've had a chance to install this and run it through the paces. I created a fresh Django 1.7 install and used the repo @ digi604:treebeard. I was surprised when it wouldn't start with mptt in the INSTALLED_APPS, which of course meant it had to be pip installed too. I was concerned perhaps I didn't install the correct repo, but two things convinced me that I did:
I created the deepest page tree I've ever made (12 levels?) and tried all sorts of re-arranging in hope of finding a way to break it, but was unable. I've also ensured my templates had {% show_breadcrumb %} and inspected its output, again looking for any issues to no avail. I also ran the new fix-tree command after all this, but it didn't seem to complain about anything being out of whack, so, it was rather uneventful (good thing). So at this point, I can say 👍 , and even: ❇️ AWESOME JOB PATRICK. ❇️ Now all we need to do is fix the pre-run checks that are looking for mptt and the documentation and I think this is certainly ready for 3.1b or whatever. I'm guessing with this one change, we could even brand 3.1 a "stability" release, 'cause I think people are going to really notice an improvement here. |
Switches the cms from MPTT (Modified Preorder Tree Traversal) to MP (Materialized Path).
This should vastly reduce the number of corrupt trees and make moving trees around way more performant.
Uses currently django-treebeard MP-Tree. An optimized MP-Tree implementation could be build with gaps between nodes.