1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
[[!meta title="Using Org-Mode For Recording Continuous Professional Development"]]
[[!meta copyright="Copyright © 2021 Philip Beadling"]]
[[!inline pages="internal(2021/info/professional-nav)" raw="yes"]]
<!-- You can manually edit this file to update the abstract, add links, etc. --->
# Using Org-Mode For Recording Continuous Professional Development
Philip Beadling
[[!taglink CategoryOrgMode]]
[[!inline pages="internal(2021/info/professional-schedule)" raw="yes"]]
I recently had the pleasure of being audited for my CPD record with one
of the large engineering professional bodies. I decided to harness
org-mode's TODO lists to record CPD items and my progress against them
completely within Emacs. I also wanted the ability to export the data
in a well presented, compact format for auditing submission.
The project was a success (I passed the audit) and the resulting system
integrates really well into my wider daily Emacs workflow, making future
CPD recording seamless.
The talk will explain how I tweaked and extended org-mode to get it to
record the data I wanted, followed by a demo.
A basic demo org file with embedded elisp can be seen here:
<https://raw.githubusercontent.com/falloutphil/Misc/master/cpd.org>
A basic generated PDF from the basic demo is here:
![img](https://preview.redd.it/nvdpmityhuw51.png?width=1169&format=png&auto=webp&s=e0c5080560c877aa02933a40c224e52b8a1fed3b)
I have a much more involved example I could also use for the demo.
The template contains a few examples. Examples are Goals that are split
up into Activities. All Activities must have a Goal, and within a Goal
all activities must be complete for the Goal to be automatically set to
complete.
It's basically leveraging Org Capture Templates to create custom Goals
and Activities.
On save or update these are then rendered into a table using Column View.
Activities are sorted by date they were completed on.
The Column View is pre-configured to be exported to PDF in a condensed
but readable format for submission. It stays fairly readable even when
the pages get busy.
The elisp required is all under the "Config" bullet and Emacs will ask
to execute it on opening the Org file. The elisp concerns itself with
nice custom org capture functions and a few functions to ensure nice
formatting on export, etc.
# Discussion
IRC nick: pbeadling
- Very impressive use of capturing
- This is madness, and I am a little ashamed of saying that I have wanted to do something similar for personal reasons. I feel it is an overkill I cannot justify to myself
- pbeadling: For me it largely motivated by trying to make the whole task more interesting
- i think of like lots of us falling in lots of rabbit holes, making for quite a cavernous attack surface, when we consider Emacs is including it's various package arcives.
- hmm, hooking is a neat way to check in/ouut
- the workflow looks good but why he isn't integrating this with org agenda ?
- pbeadling: Agree - merging with org-agenda is the next thing I want to do with this
- pbeadling: For the CPD thing the biggest limitation I think is that you have to have the org file in the current buffer to add items - really you want to be able to capture CPD items from anywhere in your workflow - when I get some time I'll update the script to integrate better with capture and agenda like this.
- <https://www.reddit.com/r/emacs/comments/jmpsdl/continuous_professional_development_record_in/>
# Outline
- 5-10 minutes:
A quick walkthrough of the setup and functions, followed by a demo of how
to add CPD items, and update them. Finally show generation of a PDF
containing all the items tabulated and ready for audit review. I
estimate this at approx 10 minutes.
[[!inline pages="internal(2021/captions/professional)" raw="yes"]]
[[!inline pages="internal(2021/info/professional-nav)" raw="yes"]]
|