docs(tasks): expand documentation a bit
This commit is contained in:
parent
617b1ea6d1
commit
c2f775e891
37
README.md
37
README.md
|
@ -162,27 +162,21 @@ Considering to use Calendar: https://github.com/nostr-protocol/nips/blob/master/
|
||||||
|
|
||||||
## Plans
|
## Plans
|
||||||
|
|
||||||
|
- Handle event sending rejections (e.g. permissions)
|
||||||
- Local Database Cache, Negentropy Reconciliation
|
- Local Database Cache, Negentropy Reconciliation
|
||||||
-> Offline Use!
|
-> Offline Use!
|
||||||
- Scheduling
|
|
||||||
- Remove status filter when moving up?
|
- Remove status filter when moving up?
|
||||||
- Task markdown support? - colored
|
- Task markdown support? - colored
|
||||||
- Time tracking: Ability to postpone task and add planned timestamps (calendar entry)
|
- Calendar Events - make future time-tracking editable -> parametrised replaceable events
|
||||||
- Speedup: Offline caching & Expiry (no need to fetch potential years of history)
|
- Speedup: Offline caching & Expiry (no need to fetch potential years of history)
|
||||||
+ Fetch most recent tasks first
|
+ Fetch most recent tasks first
|
||||||
+ Relay: compress tracked time for old tasks, filter closed tasks
|
+ Relay: compress tracked time for old tasks, filter closed tasks
|
||||||
+ Relay: filter out task status updates within few seconds, also on client side
|
+ Relay: filter out task status updates within few seconds, also on client side
|
||||||
|
|
||||||
### Fixes
|
### Commands
|
||||||
|
|
||||||
- Handle event sending rejections (e.g. permissions)
|
|
||||||
- Recursive filter handling
|
|
||||||
|
|
||||||
### Command
|
|
||||||
|
|
||||||
- Open Command characters: `_^\=$%~'"`, `{}[]`
|
- Open Command characters: `_^\=$%~'"`, `{}[]`
|
||||||
- Remove colon from task creation syntax
|
- Remove colon from task creation syntax
|
||||||
- reassign undo to `&` and use `@` for people
|
|
||||||
|
|
||||||
### Conceptual
|
### Conceptual
|
||||||
|
|
||||||
|
@ -212,7 +206,7 @@ Suggestions welcome!
|
||||||
- n8n node
|
- n8n node
|
||||||
- Caldav Feed: Scheduled (planning) / Tracked (events, timetracking) with args for how far back/forward
|
- Caldav Feed: Scheduled (planning) / Tracked (events, timetracking) with args for how far back/forward
|
||||||
|
|
||||||
## Exemplary Workflows
|
## Exemplary Workflows - User Stories
|
||||||
|
|
||||||
- Freelancer
|
- Freelancer
|
||||||
- Family Chore Management
|
- Family Chore Management
|
||||||
|
@ -223,6 +217,29 @@ Suggestions welcome!
|
||||||
+ Schedule for multiple people
|
+ Schedule for multiple people
|
||||||
- Tracking Daily Routines / Habits
|
- Tracking Daily Routines / Habits
|
||||||
|
|
||||||
|
### Freelancer
|
||||||
|
|
||||||
|
For a Freelancer, mostr can help structure work times
|
||||||
|
across different projects
|
||||||
|
because it can connect to multiple clients,
|
||||||
|
using their mental state effectively (Mind Management not Time Management).
|
||||||
|
It also enables transparency for clients
|
||||||
|
by sharing the tracked time -
|
||||||
|
but alternatively the freelancer
|
||||||
|
can track times on their own auxiliary relay
|
||||||
|
without problems.
|
||||||
|
|
||||||
|
### Family
|
||||||
|
|
||||||
|
With a mobile client implemented,
|
||||||
|
mostr can track shopping lists and other chores for a family,
|
||||||
|
and provide them context-dependently -
|
||||||
|
allowing you to batch shopping and activities without mental effort.
|
||||||
|
|
||||||
|
### Project Team
|
||||||
|
|
||||||
|
sharing, assigning, stand-ups, communication
|
||||||
|
|
||||||
### Contexts
|
### Contexts
|
||||||
|
|
||||||
A context is a custom set of filters such as status, tags, assignee
|
A context is a custom set of filters such as status, tags, assignee
|
||||||
|
|
14
src/tasks.rs
14
src/tasks.rs
|
@ -52,7 +52,7 @@ pub(crate) struct TasksRelay {
|
||||||
tasks: TaskMap,
|
tasks: TaskMap,
|
||||||
/// History of active tasks by PubKey
|
/// History of active tasks by PubKey
|
||||||
history: HashMap<PublicKey, BTreeMap<Timestamp, Event>>,
|
history: HashMap<PublicKey, BTreeMap<Timestamp, Event>>,
|
||||||
/// Index of found users with metadata
|
/// Index of known users with metadata
|
||||||
users: HashMap<PublicKey, Metadata>,
|
users: HashMap<PublicKey, Metadata>,
|
||||||
/// Own pinned tasks
|
/// Own pinned tasks
|
||||||
bookmarks: Vec<EventId>,
|
bookmarks: Vec<EventId>,
|
||||||
|
@ -62,15 +62,15 @@ pub(crate) struct TasksRelay {
|
||||||
/// The task properties sorted by
|
/// The task properties sorted by
|
||||||
sorting: VecDeque<String>,
|
sorting: VecDeque<String>,
|
||||||
|
|
||||||
/// A filtered view of the current tasks
|
/// A filtered view of the current tasks.
|
||||||
/// Would like this to be Task references but that doesn't work
|
/// Would like this to be Task references
|
||||||
/// unless I start meddling with Rc everywhere.
|
/// but that doesn't work unless I start meddling with Rc everywhere.
|
||||||
view: Vec<EventId>,
|
view: Vec<EventId>,
|
||||||
depth: usize,
|
depth: usize,
|
||||||
|
|
||||||
/// Currently active tags
|
/// Currently active tags
|
||||||
tags: BTreeSet<Tag>,
|
tags: BTreeSet<Tag>,
|
||||||
/// Tags filtered out
|
/// Tags filtered out from view
|
||||||
tags_excluded: BTreeSet<Tag>,
|
tags_excluded: BTreeSet<Tag>,
|
||||||
/// Current active state
|
/// Current active state
|
||||||
state: StateFilter,
|
state: StateFilter,
|
||||||
|
@ -993,10 +993,10 @@ impl TasksRelay {
|
||||||
t.props.insert(event.clone());
|
t.props.insert(event.clone());
|
||||||
});
|
});
|
||||||
if !found {
|
if !found {
|
||||||
if event.kind.as_u16() == 1 {
|
if event.kind == Kind::TextNote {
|
||||||
self.add_task(event);
|
self.add_task(event);
|
||||||
} else {
|
} else {
|
||||||
return Some(event)
|
return Some(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
None
|
None
|
||||||
|
|
Loading…
Reference in New Issue