← Back to team overview

gtg-contributors team mailing list archive

Progress status about my refactorization

 

Hello,

Just to keep you informed about progress on
https://code.edge.launchpad.net/~gtg/gtg/gtg-refactor

Now, tasks and tags are both TreeNode objects. Children/parents
relationship are now handled in tree.py, not anymore in task.py/tag.py.

Both the datastore and tagstore hold a "Tree" object that contains
directly the TreeNodes. Those trees are also used directly by Gtk.Treeview
via tasktree.py/tagtree.py.


- What does it means ?

It means that any modification to the datastore should be immediatly
apparent in the browser. No need for refresh or rebuild a "tree of the
current view" at each refresh.

We expect a "dramatic" improvement in the performances for large tree of
tasks. We also expect a better maintenability by removing a lot of useless
code.


- What's the status ?

All the major backyard work has been done now. It's time to debug. I'm
currently stucks since hours in a pit. That's why I'm writing this email.


- What's the roadmap ?
1) solve the major bugs right now. (why are some tasks displayed twice ?
Why are the children not displayed at start ?) 
2) implement the "filters" (active tasks/closed tasks/workview/only tags)
3) merge with trunk early to have feedback and avoid too much divergence
4) add support for tasks with multiple parents.

Hopefully, this should be done for the end of the month. Once it's
finished, I will work non-stop on backends. I plan to deliver backend in
Trunk before end of March but it will be possible only if this
refactorisation is finished.

- How can I make this happen sooner ?
1) read gtk doc about genericTreeModel and try to understand why
browser/tasktree.py is not working as expected. Having multiple minds on it
would be a great hand.
2) writing test. Yes, this would be invaluable :-)


As soon as this is finish, I will dedicate all my time to backends (yes, I
will even filter out gtg bugs mails).

Cheers,


Lionel