Hoe snel offline uren klokken?

Soms doe ik liever wat offline werk. Ik kan het timen en opschrijven, zonder dat ik mijn computer opstart.

Ik gebruik graag een tabel en org-update-all-dblocks om mijn uren voor de dag te berekenen. Het is erg handig voor mij, omdat ik de hele dag een oneven aantal minuten zou kunnen besteden aan het werk voor een klant.

Als ik snel mijn offline uren wil toevoegen en de tabel wil bijwerken, doet org-mode heb je hier al een functie voor? Ik weet dat ik org-clock-in en org-clock-out kan om een klok te genereren , en typ het dan handmatig opnieuw en gebruik org-update-all-dblocks om opnieuw te berekenen, maar ik zou idealiter een enkele functie willen die ik kan aanroepen en die me zal vragen hoeveel minuten ik wil invoeren. Het zou waarschijnlijk gebruik gewoon de huidige tijd en datum als begin, ook al zou dat in strijd zijn met het werk dat ik begin te doen nadat ik de offline uren heb toegevoegd.

Het zou nog beter zijn als org-mode had een concept van offline uren dat begreep dat ik de datum misschien wist, maar ik heb waarschijnlijk de tijd van de dag niet opgenomen, en dus kon de tijd van de dag worden weggelaten, maar nog steeds berekend in een kloktabel.

Als ik een q moet schrijven lieve en vuile elisp, welke functies zou ik behalve het bovenstaande nog van nut zijn? Ik denk dat de stukjes die ik mis iets zijn om de meest recente klok te pakken, iets om minuten aan toe te voegen en iets om een aantal minuten aan te vragen.

Antwoord

Met het volgende commando wordt de typische vermelding in het logboek van de organisatie ingevoegd, een tijdbereik vanaf N minuten geleden:

(defun org-insert-clock-range (&optional n) (interactive "NTime Offset (in min): ") (let* ((ctime (cdr (decode-time (current-time)))) (min (car ctime)) (start (apply "encode-time 0 (- min n) (cdr ctime)))) (org-insert-time-stamp start t t "CLOCK: ") (insert "--") (org-insert-time-stamp (current-time) t t))) 

Answer

mutbuerger “s antwoord heeft me veel geholpen. Het is mijn eerste keer dat ik in elisp programmeer, behalve in configuratie. Zijn antwoord was bijna klaar, maar ik wilde nog steeds de normale functionaliteit van in- en uitklokken om het logboek onder de dichtstbijzijnde kop te vinden of aan te maken, en een opmerking.

Mijn aangepaste oplossing was dit:

(defun offset-current-time (n) (let* ((ctime (cdr (decode-time (current-time)))) (minutes (car ctime))) (apply "encode-time 0 (- minutes n) (cdr ctime)))) (defun org-insert-clock-range (&optional n) (interactive "NTime Offset (in min): ") (org-clock-in nil (offset-current-time n)) (org-clock-out)) (defadvice org-clock-out (after org-clock-out-after activate) (org-update-all-dblocks)) (add-hook "org-mode-hook (lambda () ; Keys for org mode ;snip (define-key evil-normal-state-map (kbd "gl") "org-insert-clock-range) ;snip )) 

Antwoord

Ik beheer offline tijden met een toolbox met aangepaste functies om kloklogboeken in de eigen syntaxis van de organisatie te manipuleren en een script om een verkorte notatie in platte tekst naar de syntaxis van de organisatie te converteren.

Functies in https://github.com/clange/emacs/blob/master/.emacs.d/init/org-clock.el :

  • org-clock-split-current-interval (Ik heb dit gebonden aan C-c o s): als er een interval is in de huidige regel, waarin eigenlijk twee taken zijn uitgevoerd, maak het dan gemakkelijker om het in twee intervallen te splitsen.
  • org-clock-change-hh-mm (gebonden aan C-c o :): laat de dag ongewijzigd, pas de uren / minuten van een kloklogboek aan. Typisch gebruik : kopieer een kloklogregel van ergens anders, pas deze aan de offline gewerkte tijd aan.

Script: https://github.com/clange/scripts/blob/master/org-offline-to-clock/org-offline-to-clock.pl

Mijn workflow om het te gebruiken:

  1. registreer offline tijden in een tekstbestand, bijv. op mijn mobiele telefoon
  2. synchroniseer dit bestand met mijn pc
  3. op de pc, voer org-offline-to-clock.pl BEFORE > AFTER
  4. valideer met diff BEFORE AFTER
  5. indien tevreden, mv AFTER BEFORE
  6. verplaats geselecteerde regels naar mijn daadwerkelijke org-bestand.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *