https://github.com/0k/org-task
Emacs orgmode task external synchronisation
https://github.com/0k/org-task
Last synced: 12 months ago
JSON representation
Emacs orgmode task external synchronisation
- Host: GitHub
- URL: https://github.com/0k/org-task
- Owner: 0k
- Created: 2022-09-05T15:47:40.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2025-03-27T08:56:13.000Z (about 1 year ago)
- Last Synced: 2025-03-27T09:43:18.663Z (about 1 year ago)
- Language: Emacs Lisp
- Size: 23.4 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
Awesome Lists containing this project
README
# -*- ispell-local-dictionary: "english" -*-
#+TITLE: Org-Task
Additions to orgmode from Emacs to export and synchronize tasking
information to external backends.
* Status
This package is in early alpha stage. This code is under heavy-development.
* Requirements
Currently requires =cal= tool that is not yet released.
* Installation
Using =straight=:
#+begin_src elisp
(use-package org-task
:straight (org-task :host github :repo "0k/org-task")
:bind (
("C-c s" . org-task-transient)
)
:init
:config
)
#+end_src
* Features
- send your org-mode's LOGBOOK to the =cal= command in order to
push them to odoo timesheets (with ``w`` for work time).
- send your org-mode's section's body as description through =cal=
command (with ``d`` for description).
- open current task from your org-mode directly in your browser in
odoo (with ``b`` for browser).
- create a new task in odoo, and make current heading a org-task by
linking it the newly created task (with ``C`` for create)
* Usage
** Org Tasks
Tasks are special org-mode's section having a =TASK_REF= property.
*** TASK_REF property
The task ref format in CONNECTION_IDENTIFIER/TASK_IDENTIFIER. For
instance, if 'lok' is defined in your =~/.cal.rc= as the connection
label for an odoo connection, and the =project_task='s =id= in odoo is
3, the TASK_REF org-mode's property of the section should be =lok/3=.
For now, you need to go fetch yourself the =project_task='s =id=
yourself in odoo's interface after having created one for instance.
*** Gathered clockings
You can then use the standard clock-in and clock-out to create a
LOGBOOK entry in the section and its sub-sections.
When called, =org-task-clock-push= will go from parent heading to
parent heading to find the first one that is actually an =org-task=
(that defines the =TASK_REF= property). Then it'll parse all subtree
for non org-task sections and their respective LOGBOOKs to send each
time through =cal= utility to register them in odoo.
** TASK_CATEG property
=TASK_CATEG= is required to be available to any task you want to apply
=org-task-clock-push= to. This will produce a prefix to the summary
sent to =cal= command line that is required. Typically, you'll want
to add a:
#+begin_example
#+PROPERTY TASK_CATEG myproj
#+end_example
in the header of your file.
This is required to properly identify your recorded time, for you as a
human, and for the algorithm from =cal= to keep in sync information. You
then don't need to recall the name of your project in the heading label
of your section.