I suggest you ...

Enable multi-user Task Management


Currently, when 2 (or more) users are opening the same file, a change one
made is not seen by the other, until he re-opens the application.

A "push tier" is one possible solution to pass changes to the other users.

Best regards,

983 votes
Sign in
or sign in with
  • facebook
  • google
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    anonymous shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →


    Sign in
    or sign in with
    • facebook
    • google
      Password icon
      Signed in as (Sign out)
      • AdminJérôme Laheurte (Admin, Task Coach) commented  ·   ·  Flag as inappropriate

        Actually we have several tracks to enable multi-user; since internally Task Coach stores every change to a task in Command objects (so that they can be individually undone), re-applying those Commands to the stored tasks instead of saving the current ones could work. After I'm finally done refactoring the modification tracking system (originally written for the SyncML sync), we may also consider "saving" as "syncing in-memory tasks with the ones on the disk".

        Both approaches have their advantages and drawbacks but they should work.

      • Juan Luis commented  ·   ·  Flag as inappropriate

        To convert TaskCoach in a multi-user application may require traumatic changes to the code.
        I will propose a solution wich, while not the most elegant, I think it may be technically viable.
        The solution requires two additions to the xml file and a change in the locking policy:

        1) Only lock the file during the time of writing changes at the same time
        2) Create a new tag <version id="1" /> for the global version of the file
        3) Create a new attribute <task version="1" ...> for the version of the task

        - During the application startup, when reading the xml file, it must read and store the new values: current global version number and tasks versions.
        - When you modify a task, before storing it, first acquire a lock and query if the task version number has changed, in which case a warning is issued. If not, it increases the task version number and the global version number, saves the data and unlock the file.
        - Periodically check (polling) the global version number for changes. If so, recharge the tasks (all or those looking for which has changed its version number).

      • Anonymous commented  ·   ·  Flag as inappropriate

        We are working in a small company and we would like to use TaskCoach in order to organise tasks among 10 people. We are looking forward to using it in multi-user environment more efficient.

      • Esteban commented  ·   ·  Flag as inappropriate

        I think that would be very usefull a WEB-INTERFACE with multi-user Task Management.


      • Marco commented  ·   ·  Flag as inappropriate

        I think that the Feng Xu's vision is the best.
        Any way of merging files would be fanstastic, even for task maintanance made by project managers.

      • matt wilkie commented  ·   ·  Flag as inappropriate

        +3 for the subject line, multi-user aware and integrated. How this is accomplished.... I have nothing constructive to add, other than sqlite might be a good lightweight and portable backend to use. Though there are some limitations to having mutliple users/applications writing to the db: http://www.sqlite.org/faq.html#q5

      • Carl Fischer commented  ·   ·  Flag as inappropriate

        I'd like to see the ability to use a database backend rather than an XML flat file. SQLAlchemy should make this relatively portable. Not sure how to maintain the XML back-end and the SQL interface at the same time, but I also suspect that a SQL back-end would be much faster after a few years of use.

      • Jack Rainey commented  ·   ·  Flag as inappropriate

        We are relatively new to TaskCoach. We are planning to use it to coordinate tasks amongst a group of 5 people, so multi-user aspects are important to us. First observations and suggestions after a very short familiarization are as follows:

        -Add 'read-only' choice when attempting to open a locked .tsk file

        -Notify a user if lock has been broken (on a timed basis check the lock file)

        -Periodically check who (if anyone) has the file locked. Need to add a section
        that would allow entering a mapping between computer names and users

        -Add a rudimentary (for now) level of security. Who can open read only, who
        can edit tasks. This will have to advance more as time goes on, but for now
        a relatively simple model will do for the multi-user environment.

      • Feng Xu commented  ·   ·  Flag as inappropriate

        The function of merge two .tsk file will be useful. Sometimes, you may forget to synchronize you task on server, then create a separated one on laptop, but you still hope you can merge it to the main tasks on server.

        And this function can also be extended to multi-user described on this suggestion. Every use can have temporarily .tsk file when they are working on their own computer, then just click on one button, then his task can be merged to a main task on serve.


      • Hopeless commented  ·   ·  Flag as inappropriate

        I think that changing the lock mechanism from a file-oriented mechanism to a item (task, category, note...) mechanism would suffice for achieve the multi-user support.


      • Leonardo Tancredi commented  ·   ·  Flag as inappropriate

        David, would you please elaborate? I can see the benefit in having an abstract data model, and one with a stable API, but how would that necessarily solve this "multiuser" requirement?

      • David Nicol commented  ·   ·  Flag as inappropriate

        completely abstracting the data model would allow multi-user, also portability, and interoperability with "planner" or other project management software, integration into Trac etc etc etc. So my feature request, which I am filing as a comment to this one, is, abstract the data model, provide a data model API.

      ← Previous 1 2 Next →

      Feedback and Knowledge Base