Martin Atkins (mart) wrote in lj_dev,
Martin Atkins

Todo list linking

Mostly for the benefit of lj_manage, I think it'd be cool if we could link todo items from communities we are members of into our own personal todo lists.

Not only would this make the item appear on my list, it would also make me be listed as a "User Working on This" on the community todo list. I envision this working as follows:

  1. Someone from lj_manage posts an item in their todo list calling for, say "Message Boards in the todo system".
  2. The team leader (see the posts in lj_manage for what that means) or the lj_manage contact from lj_dev will link that todo item into the lj_dev todo list. This creates a 'symlink', so any changes made to this entry from either list will affect the other. However, only the percentage, status and details can be changed from lj_dev, and only by the team leader and other nominated individuals.
  3. I decide that I would like to take on this project (or more likely, I already volunteered to) and I would, from lj_dev, add the entry to my own todo list, therefore indicating to the todo system that I'm working as a member of the lj_dev team on the project. Changes I make to the record will again affect the display in the two communities. As I work, I can (from my account) update the status and percentage of the item, but change nothing else.
  4. When I am done, I mark the item as "100%, Complete" and remove it from my list. The lj_dev team leader will see that it is done, and unlink it from there too, letting the lj_manage people know that there is nothing left to do on the project.

There are security considerations to be noted here:

  • Users and communities must only be able to link entries from communities.
  • Communities can optionally restrict which other users are allowed to link entries, using the friends group mechanism as used for todo list privs now. Alternatively, they can choose to allow all members to link. I anticipate that lj_manage will only allow the other lj_ communities to link, for example, and require users to link from one of those to show whose team they are working in.
  • As mentioned above, an item linked from a community to another community will, from the second community, only be updateable by the community maintainer and other nominated user accounts, and they will only be able to update the status, percentage and details.
  • Also mentioned above, user accounts will only be able to update the status and percentage of an item from their own account. This is to prevent problems where a malicious user could join a community, grab a todo item, and screw with it before dropping it again.
  • Related to the previous point, communities (or perhaps todo entries?) should optionally be restricted so that only a team leader can assign it to a community member. Once added, though, the user should be able to unlink the item at any time.
  • Finally, as a last catch-all measure, users should be able to opt-out of this todo linking system altogether, preventing their todo list from being soiled by external tasks.
  • </ol>

    From the display perspective, on my personal todo list I would get an extra column called "source" (or similar) which would show me the chain of communities this item is linked through, thus:

    Status P Item Date Due Category Source
    0% ! Message Boards for Todo System
    Abstract talk code
    2001-09-21 LiveJournal lj_manage->lj_dev

    ...and in the lj_manage todo list...

    Status P Item Date Due Category Taken on By
    0% ! Message Boards for Todo System
    Abstract talk code
    2001-09-21 lj_dev lj_dev->mart
    0% ! Create Press Kit
    Something for interested newspaper journalists to read.
    2001-09-25 lj_biz Take on Project
    0% ! Rewrite Directory Search
    Paid users only?
    2001-09-25 lj_dev
    Take on Project as

    During my pondering, I decided that it would be a good idea to allow each community and user to specify their own category keywords for the linked entries, since they are liable to all have a different categorisation system.

    There's a lot to do here. I'm wondering if anyone has any amendments or additions they think would be necessary or useful, and also if anyone is really itching to work on this. Someone is already working on the todo system I believe, but I can't recall who - does that person want to make this part of the task, or should we wait until that person is done and add it in then?


  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded