dooit icon indicating copy to clipboard operation
dooit copied to clipboard

💡 [FEAT] Select multiple tasks to edit due, tags etc

Open sathishmanohar opened this issue 2 years ago • 11 comments

I tried out dooit. It looks slick. In my workflow I add all the tasks first and then edit the due and tags. Entering the same due for multiple tasks is frustrating.

The workflow should be select related tasks and edit due or tag once which gets applied to all selected tasks.

sathishmanohar avatar Mar 11 '23 22:03 sathishmanohar

That's right. I can do that and we can maybe call it a VISUAL mode just like we have in vim but there will be restrictions and I'll have to decide and implement it properly so I thought that I'd do that in later versions when the foundation is solid :D

Like I should allow multiple selections only in siblings or parents too? Depending on how I define that behavior there will be different restrictions for some commands. Maybe the VISUAL mode can only be used for editing ( that'll be the simplest implementation xD) etc etc

Feel free to share any ideas as to how it should work

kraanzu avatar Mar 12 '23 05:03 kraanzu

VISUAL mode sounds great. For now, I think it'll be good to start with things that will be commonly changed in batches.

Like selecting tasks and - add, change or remove due for them - add, change or remove effort for them - add, change or remove urgency for them - add, change or remove tags for them - delete selected tasks

sathishmanohar avatar Mar 12 '23 07:03 sathishmanohar

  • add, change or remove urgency for them

Hmm...currently you can increase or decrease urgency by pressing +/- If you were to select multiple tasks, then all will increase or decrease together

  • add, change or remove tags for them

Tags are comma-separated texts, I can put the cursors on every selected item but I don't think you'll be able to select a particular tag :(

delete selected tasks

I suppose then the user can only select multiple siblings at one :smile:

kraanzu avatar Mar 12 '23 07:03 kraanzu

  • add, change or remove urgency for them

Hmm...currently you can increase or decrease urgency by pressing +/- If you were to select multiple tasks, then all will increase or decrease together

Maybe instead of going with increase decrease we can allow setting any one of a,b,c,d during batch updates

  • add, change or remove tags for them

Tags are comma-separated texts, I can put the cursors on every selected item but I don't think you'll be able to select a particular tag :(

I think this is an implementation bottleneck, from a user point of view having the ability to filter based on tags is huge. Maybe instead of having tags as comma separated text for each task. If there is a common dictionary for tasks then it might be better to extend ( I honestly don't know what I am talking about here. Not too much familiar with python 😆 )

delete selected tasks

I suppose then the user can only select multiple siblings at one smile

Sure! I think that will be good enough!

sathishmanohar avatar Mar 12 '23 07:03 sathishmanohar

Maybe instead of going with increase decrease we can allow setting any one of a,b,c,d during batch updates

This is a great idea! Thanks :smile:

I think this is an implementation bottleneck, from a user point of view having the ability to filter based on tags is huge.

Oh no. I wasn't talking about filters. I was talking about editing. How are we supposed to manipulate tags on multiple todos at once?

kraanzu avatar Mar 12 '23 08:03 kraanzu

Oh no. I wasn't talking about filters. I was talking about editing. How are we supposed to manipulate tags on multiple todos at once?

Ah you got me there! I think editing multiple tags is going to be complicated and not even something users might need but adding or deleted tags for multiple tasks can be implemented with UI like this

/tag add email,imp,client ( Add tags for selected tasks if given tag is not already present ) /tag delete blocker,idea ( Delete tags for selected tasks if given tag is present )

sathishmanohar avatar Mar 12 '23 08:03 sathishmanohar

I see... That'll be a whole new implementation and maybe something like vim's COMMAND mode Pretty interesting! I'll keep this thread open and will try to implement it!

kraanzu avatar Mar 12 '23 08:03 kraanzu

Awesome! If COMMAND mode is implemented. The interface can be

Given selected tasks :due set today Given selected tasks :due delete Given selected tasks :effort set 5 Given selected tasks :effort delete Given selected tasks :urgency set a Given selected tasks :urgency delete Given selected tasks :tag add email,imp,client Given selected tasks :tag delete blocker,idea Given selected tasks :tag delete_all

sathishmanohar avatar Mar 12 '23 10:03 sathishmanohar

Awesome! Thanks for the suggestions!

kraanzu avatar Mar 12 '23 10:03 kraanzu

Maybe :due set today instead of /due set today we can reserve / for search/filtering and : for commands like in Vim.

(updated the original comment accordingly)

sathishmanohar avatar Mar 12 '23 10:03 sathishmanohar

Yes Yes. That goes without saying haha xD

kraanzu avatar Mar 12 '23 11:03 kraanzu