Comments (17)
This is essential to make this work and be worthwhile
from taskmaster.
If we are committed to this mode - should we simplify tm.py, then add DB storage layer, then build API around tm.api?
The "timelines" concept is much less complex here, and indeed in "simplified mode" already existing.
Basically:
- List => the DB table itself (perhaps with a list column/filter)
- Item => the Todo Item with ways to go into DB format or JSON/API format
- Don't fear marshmellow
- Timeline => simplify to DateTime (and have some way to import complex datetime if needed)
- Backwards-compatibility doesn't have to be part of the MVP. Since today we are just using text files for the most part
from taskmaster.
Interactive CLI may serve as good MVP for some of these, especially Triage.
See:
from taskmaster.
ncurses Urgent Important ABC Frog - just push a key 0/1/2... Timing
Shift key for filter/sort
Enter to confirm, escape to cancel
from taskmaster.
Now focused on server side. APIs to add from #4
- GET /tasks/ - Filters - closed, triage, scheduleable, followupable
- GET /tasks/?search=
- GET /tasks/id/similar
- POST /tasks/id/action - Duplicate
from taskmaster.
As needed to accomplish this goal...
- More fields in the DB and API model
- replicate any legacy taskmaster code
from taskmaster.
Hide closed by default, but allow including or only
from taskmaster.
Next steps:
- Review notes and above to document lifecycle in README
- Establish M.V.P.
- Create issues for all beyond M.V.P. (see also #10 )
- Document any APIs needed to make MVP happen
- Enable or uncomment any DB fields needed to make MVP happen
- Write server code to make MVP happen
- Write client library code to effectively communicate in a mode-native way with server for MVP
- Establish whether MVP mode is quickest via User Interface:
- Note that existing or new issue here
- Close this issue
from taskmaster.
MVP:
- collect => triage => schedule => warm => close
- no multiple users
- no dependencies
- triage and schedule together?
- no upsert
APIs
- triage mode, stage mode, warm mode
DB
- wakeup
- staged/warm
- due???
- poms/urgent/important/pri??
from taskmaster.
Also
- frog
- GET /tasks/?mode=triage/schedule/stage/execute
from taskmaster.
- better serialization of dates
- document on params https://flask-restx.readthedocs.io/en/latest/swagger.html
- https://flask-restx.readthedocs.io/en/latest/parsing.html
from taskmaster.
Lots of issues with dates - flask-restx should be handling - but is it?
Also timezone...
from taskmaster.
https://www.fullstackpython.com/flask-views-methodview-examples.html
from taskmaster.
- GET /tasks?mode=frog ?
- the test is essentially run a task through all the steps, using the client lib, and check each "mode" to ensure it is where it's expected but not where it isn't
- which all begs the question - should the task listing item simply just TELL us which mode(s) it is in... i.e. have simple python logic that does same thing as SQL logic and some assertion to ensure that it always matches
from taskmaster.
https://flask.palletsprojects.com/en/2.0.x/testing/
from taskmaster.
Modes:
- all (N/A)
- closed (closed != NULL)
- open (closed == NULL)
- execute (warm == True; closed ==NULL)
- stage (closed == NULL; wakeup <= NOW)
- schedule (closed == NULL; warm == False; wakeup == NULL)
- triage (closed == NULL; no poms, no urgent, no importan)
Assign a primary "state" to each:
- if closed, closed
- if warm, warm
- if wakeup <= NOW, awake
- if wakeup > NOW, sleep
- if pomodoros != null, urgent !=null, important != null, triage
- else, schedule
from taskmaster.
Next steps:
- Finish basic manual testing, using #28
- Close this issue
- Build some import #13
- Mode CLI #9
- Rest of milestone including #12 and #32
- Close milestone
- Do rest including #11
from taskmaster.
Related Issues (20)
- Stage CLI accept until
- Stats
- Display day of week when giving time options HOT 1
- allow subtasking
- Sync with habits/horarium somehow
- ValueError: Invalid isoformat string: '2022-03-0' HOT 1
- Convenience startup scripts
- Source, goals, project, tags
- Update context without full retriage
- None in list for POMs
- Allow filter by multiple context
- Due date and schedule issues
- backspace?
- Simplify Contexts HOT 5
- Document timeline as first class citizen HOT 4
- Advanced GUI closed/recur HOT 1
- web print/paper HOT 1
- Fine-grained editing of individual tasks in WebGUI HOT 1
- Android app
- Undo? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from taskmaster.