Skip to content
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

Kanban and Navigation #45

Open
jediaxe opened this issue Feb 28, 2023 · 11 comments
Open

Kanban and Navigation #45

jediaxe opened this issue Feb 28, 2023 · 11 comments
Labels
Feature request New feature or request

Comments

@jediaxe
Copy link

jediaxe commented Feb 28, 2023

Hello. Thank you for making calcure its wonderful!
One feature I dare say is missing and will be of great value to users is a Kanban implementation for the Journal. A way to display the Journal in columns where different categories can be added to different columns. (Mainly Todo, Doing, Done)

A selection based navigation will also be nice as its more natural and user friendly to use hjkl to select events to edit or move them form one category to another.

@anufrievroman anufrievroman added the Feature request New feature or request label Feb 28, 2023
@anufrievroman
Copy link
Owner

anufrievroman commented Feb 28, 2023

Hello!
It's an interesting idea to have an alternative view for the Journal. I guess, depending on the size of the window, it should be either rows (for narrow window) or columns (for wide window) for different statuses (currently we support Normal, Important, Unimportant, Done). I'll see how difficult it is to make it.

About the navigation, I agree that it would be better. Originally, my idea was to make it so that operation is achieved with the least possible number of key presses, but I agree it is less user-friendly and requires getting used to. However, I considered selection-based navigation many times, but to implement such navigation it is basically a rewrite of more than half of the program with a very different way of communication between displays and controls. Plus, I can see how to do it relatively easily for the list of tasks, when it's just horizontal lines, but for calendar it's more bothersome. So, I plan to experiment with it, maybe I'll find a way to make it without much rewrite, but not in the very near future.

Note to myself

Maybe I can start with just implementing if for the tasks and just for selection of the task. So j and k would basically just iterate the number from 1 to N and the corresponding task would be highlighted. That seems pretty easy to add. But then, I probably must abandon direct input of the number because it is either input field or getkey.

@jediaxe
Copy link
Author

jediaxe commented Feb 28, 2023

That would be great. The journal can definitely be more accessible with a selection based navigation. with a long list of tasks the list might go beyond the available screen real-estate anyway. I am not sure how a direct number input navigation would work in this case.

And once/if columns are implemented, perhaps use H and L to move tasks between columns? since this will streamline the Todo, Doing, Done Kanban workflow.

"I guess, depending on the size of the window, it should be either rows (for narrow window) or columns (for wide window)"
True, wider windows would make this easier, imho this should be left to the user to decide for his/her best use case regardless of screen real-estate. As an option they can toggle on and off maybe?

@anufrievroman
Copy link
Owner

I read a bit about kanban workflow, actually it's not really what I first thought :D
It's more like a progress tracking board. I see, it might indeed be interesting to implement, and the most basic implementation (the same as now, but in groups of rows) might not be too difficult. I'll need to add another status "doing" (although in this case tasks that are "doing" can no longer be "important" but I can live with that), and make another View to show tasks grouped. It might look something like that:

image

@jediaxe
Copy link
Author

jediaxe commented Mar 1, 2023

This is interesting. If I understand correctly, what you are proposing in the above post is that every single task can be assigned a status (TODO, DOING, DONE). and with the new view, tasks are listed by their status regardless of their parent category?
If this is easier to implement it might be worth testing, it might work even better. I can only tell after using it for sometime. it will take some getting used to.

> Parent Category A (2/4)
🗸 Sub Category A1
🗸 Sub Category A2
> Sub Category A3
☐ Sub Category A4

☐ Parent Category B (1/2)
🗸 Sub Category B1
☐ Sub Category B2

New View:

TODO
☐ Sub Category A4
☐ Sub Category B2

DOING
> Sub Category A3

DONE
🗸 Sub Category A1
🗸 Sub Category A2
🗸 Sub Category B1


Normally with a Kanban workflow, The parent category is moved between (TODO, DOING, DONE) along with its subcategories. with a progress tracker next to it (usually a number in brackets/Parentheses indicating how many subcategories are done)

> Parent Category A (2/4)
🗸 Sub Category A1
🗸 Sub Category A2
> Sub Category A3
☐ Sub Category A4

TODO
☐ Parent Category B (1/2)
🗸 Sub Category B1
☐ Sub Category B2

DOING
> Parent Category A (2/4)
🗸 Sub Category A1
🗸 Sub Category A2
> Sub Category A3
☐ Sub Category A4

DONE
🗸 Parent Category C (4/4)
🗸 Sub Category C1
🗸 Sub Category C2
🗸 Sub Category C3
🗸 Sub Category C4

@jediaxe
Copy link
Author

jediaxe commented Mar 8, 2023

I just noticed that this sentence might be a little confusing: "Normally with a Kanban workflow, The parent category is moved between ..." Can be moved to ... is more accurate. as in it the whole category (along with its sub categories) can be manually moved to either (TODO, DOING or DONE). I hope this helps!

@anufrievroman
Copy link
Owner

anufrievroman commented Mar 9, 2023

I see, thank you for the details. So if only one subtask is "done", it remains in the "doing" column is the parent task is not entirely "done" yet, right?

@jediaxe
Copy link
Author

jediaxe commented Mar 9, 2023

Most welcome. And yes, Only the parent category status is taken into account. and the sub categories are never displayed on their own. they are always attached to the parent category and can only be seen when the parent category is expanded to view its subcategories.

@jediaxe
Copy link
Author

jediaxe commented Apr 12, 2023

Fyi: This gif demonstrates kanban in the terminal very well.
Kanban is the only thing missing for me to move my calendar work flow to calcure!

tasks-kanban

@anufrievroman
Copy link
Owner

Thank you for the example!
Perhaps after next week I'll be more free from my main job to look into this.

@jediaxe
Copy link
Author

jediaxe commented Dec 16, 2023

Bump! 😃
Kanban is very popular, I am surprised not more people are asking for it to be implemented into calcure.

@anufrievroman
Copy link
Owner

Hi, I remember about this request :D
I'd just we were mostly working on the stability of .ics files for the version 3.0. And now, before writing a new view Kanban view for tasks, I'd like to remake some controls system first. It's hard to explain the connection, but currently those controls will need to be copy/pasted for each view, and if I do one more view, I'll need to rewrite all over again later when I change eventually that controls system.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature request New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants