-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTODO.html
More file actions
338 lines (338 loc) · 15.8 KB
/
TODO.html
File metadata and controls
338 lines (338 loc) · 15.8 KB
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
<!DOCTYPE html>
<html lang="en-US">
<head>
<title>cold</title>
<link rel="stylesheet" href="https://caltechlibrary.github.io/css/site.css">
<link rel="stylesheet" href="https://media.library.caltech.edu/cl-webcomponents/css/code-blocks.css">
<script type="module" src="https://media.library.caltech.edu/cl-webcomponents/copyToClipboard.js"></script>
<script type="module" src="https://media.library.caltech.edu/cl-webcomponents/footer-global.js"></script>
</head>
<body>
<header>
<a href="https://library.caltech.edu"><img src="https://media.library.caltech.edu/assets/caltechlibrary-logo.png" alt="Caltech Library logo"></a>
</header>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="index.html">README</a></li>
<li><a href="LICENSE">LICENSE</a></li>
<li><a href="INSTALL.html">INSTALL</a></li>
<li><a href="user_manual.html">User Manual</a></li>
<li><a href="about.html">About</a></li>
<li><a href="search.html">Search</a></li>
<li><a href="https://github.com/caltechlibrary/cold">GitHub</a></li>
</ul>
</nav>
<section>
<h1 id="action-items">Action items</h1>
<h2 id="bug">bug</h2>
<ul class="task-list">
<li><label><input type="checkbox" checked="" />Description field is not
needed in the harvested content from RDM review queue</label></li>
<li><label><input type="checkbox" checked="" />funders field is not
needed in the harvested content from RDM review queue</label></li>
<li><label><input type="checkbox" checked="" />The pulldown list needs
to indicate if you’re looking at all records or review
queue</label></li>
<li><label><input type="checkbox" checked="" />Wild Card wording for all
records by name needs clearer English (a search for all records with “*”
has too many results, try adding some letters for the name and use the
wild card).</label></li>
<li><label><input type="checkbox" checked="" />Downloaded CSV files for
by name (all records and review queue) display wild card as SQL ‘%’
instead of ’*’</label></li>
<li><label><input type="checkbox" checked="" />A report that writes
directly to htdocs/rpt (collaborator report) should not standard out
overwrite the generated file.</label></li>
</ul>
<h2 id="next">next</h2>
<ul class="task-list">
<li><label><input type="checkbox" />Revisit the prototype collaborator
report page, see if I can folder it back into the main reports page’s
web form</label>
<ul class="task-list">
<li><label><input type="checkbox" />Figure out how to fold that report
directly into COLD’s source code base rather than rely on relative
directories to run it</label>
<ul class="task-list">
<li><label><input type="checkbox" />Look at reports page and decide if
there is an easy way to swith form elements based on the selected
reports, example I could at clpid, clgid and hide the ones not
used</label></li>
</ul></li>
</ul></li>
<li><label><input type="checkbox" />COLD needs a ROADMAP document to
guide development as cold’s needs seem ambigious</label></li>
<li><label><input type="checkbox" checked="" />Revisit Tom’s Python
collaborator report to confirm to the COLD reports expectation OR allow
reports to skip standard output</label>
<ul class="task-list">
<li><label><input type="checkbox" checked="" />Decided if it makes sense
render to CSV instead of Excel</label></li>
</ul></li>
<li><label><input type="checkbox" checked="" />Figure a useful way to
snapshot the RDM Review queue tables and load into a dataset
collection</label>
<ul class="task-list">
<li><label><input type="checkbox" checked="" />harvest submitted status
requests</label></li>
<li><label><input type="checkbox" checked="" />harvest accepted status
requests</label></li>
</ul></li>
<li><label><input type="checkbox" checked="" />Create a Web UI to search
the review queue collection</label>
<ul class="task-list">
<li><label><input type="checkbox" checked="" />Figure out how to make
searches bookmark-able</label></li>
<li><label><input type="checkbox" checked="" />Figure out how to map
search to various queries of rdm_review_queue.ds</label></li>
<li><label><input type="checkbox" checked="" />Implemented retrieve JSON
array results</label></li>
<li><label><input type="checkbox" checked="" />Format output for HTMLL
display</label></li>
<li><label><input type="checkbox" checked="" />Figure out CSV download
option for search results</label></li>
</ul></li>
<li><label><input type="checkbox" checked="" />Create a set of status
reports for the review queue, historical reports should include
“accepted” status as well as “submitted” status requests</label></li>
<li><label><input type="checkbox" checked="" />Need to produce the
Groups YAML vocabulary for CaltechAUTHORS</label></li>
<li><label><input type="checkbox" checked="" />Add directoryLookup()
call on submit of people_edit</label></li>
<li><label><input type="checkbox" checked="" />Make sure
<code>author_id</code> and <code>thesis_id</code> continue to be mapped
on reloading data from CSV file, if a person has an “clpid” and only are
alumni then that should go into the <code>thesis_id</code>
field.</label></li>
<li><label><input type="checkbox" checked="" />Display name should
always be taken from Caltech Directory</label></li>
<li><label><input type="checkbox" checked="" />If the name fields
family_name, given_name should be taken from the Caltech Directory if
empty</label></li>
<li><label><input type="checkbox" />When Caltech is checked active the
ROR should populate with https://ror.org/05dxps055 (client side
code)</label></li>
<li><label><input type="checkbox" checked="" />Add “internal_notes”
property to people object, group object and issn (journals)
object</label></li>
<li><label><input type="checkbox" />Write reports</label>
<ul class="task-list">
<li><label><input type="checkbox" />Funders</label></li>
<li><label><input type="checkbox" checked="" />Prototype a reports
request system in COLD</label>
<ul class="task-list">
<li><label><input type="checkbox" checked="" />Report request and
availability UI</label></li>
<li><label><input type="checkbox" checked="" />Report runner (run on
data processing system not apps)</label></li>
</ul></li>
<li><label><input type="checkbox" checked="" />need a report that finds
Caltech People ID that do not math CaltechAUTHORS author_id</label></li>
<li><label><input type="checkbox" checked="" />need a report that
identifies what advisor_id and committee_ids from thesis have no
matching clpid</label></li>
<li><label><input type="checkbox" checked="" />People (should be written
to feeds)</label></li>
<li><label><input type="checkbox" checked="" />Group (should be written
to feeds)</label></li>
<li><label><input type="checkbox" checked="" />RDM vocabulary files
report (should be written to feeds)</label></li>
</ul></li>
<li><label><input type="checkbox" checked="" />Write push of CSV files
to datawork for inclusion in feeds (implemented but commented out in
feeds fetch db script)</label></li>
<li><label><input type="checkbox" checked="" />Add button to pull in
current directory data</label></li>
<li><label><input type="checkbox" checked="" />Write data flow document
for cold people and group data indicating we’re using public data from
the directory as authorative and where publish the group and people data
to in feeds</label></li>
<li><label><input type="checkbox" />Implement client/server validation
for objects and attributes in dataset</label></li>
<li><label><input type="checkbox" />Implement validation in datasetd
based on models, coming in dataset v3 or late minor release
v2</label></li>
<li><label><input type="checkbox" checked="" />People</label></li>
<li><label><input type="checkbox" checked="" />Groups</label></li>
<li><label><input type="checkbox" checked="" />Funder</label></li>
<li><label><input type="checkbox" checked="" />Vocabularies</label></li>
</ul>
<h2 id="someday-maybe">Someday, maybe</h2>
<ul class="task-list">
<li><label><input type="checkbox" />UI Widgets to manage objects in
list</label>
<ul class="task-list">
<li><label><input type="checkbox" />Person and Organization
widget</label></li>
<li><label><input type="checkbox" />Group widget</label></li>
<li><label><input type="checkbox" />Funder widget</label></li>
<li><label><input type="checkbox" />Vocabulary widgets</label></li>
</ul></li>
<li><label><input type="checkbox" />Implement a CL-v2.js with support
for feeds, cold and RDM dataset sources</label></li>
</ul>
<h2 id="completed">Completed</h2>
<ul>
<li><label><input type="checkbox" checked="" />Remove mkpage dependency,
replace with Pandoc 3 templates from
github.com/caltechlibrary/codemeta-pandoc-examples</label></li>
<li><label><input type="checkbox" checked="" />Setup PostgreSQL user and
cold database (replaced with SQLite3 and datasetd)</label></li>
<li><label><input type="checkbox" checked="" />Migrate current SQL
schema to PostgreSQL schema (replaced with SQLite3 and
datasetd)</label></li>
<li><label><input type="checkbox" checked="" />Replace MySQL with
PostgreSQL</label></li>
<li><label><input type="checkbox" checked="" />Configure PostgREST to
provide JSON API (replaced with datasetd)</label></li>
<li><label><input type="checkbox" checked="" />Configure Pandoc in
server mode to provide a template engine (replaced with handlebars via
Deno)</label></li>
<li><label><input type="checkbox" checked="" />Implement paging views in
PostgreSQL view SQL views (replaced with datasetd plus
Deno)</label></li>
<li><label><input type="checkbox" checked="" />Data Models (convert from
RDM and current Go structs then to TypeScript interfaces)</label>
<ul class="task-list">
<li><label><input type="checkbox" checked="" />People</label></li>
<li><label><input type="checkbox" checked="" />Groups</label></li>
<li><label><input type="checkbox" checked="" />Funder</label></li>
<li><label><input type="checkbox" checked="" />Vocabularies (implemented
example vocabularies as individual dataset collections)</label></li>
</ul></li>
<li><label><input type="checkbox" checked="" />Implement end point
tests</label>
<ul class="task-list">
<li><label><input type="checkbox" checked="" />Funders end
points</label></li>
<li><label><input type="checkbox" checked="" />Groups end
points</label></li>
<li><label><input type="checkbox" checked="" />People end
points</label></li>
<li><label><input type="checkbox" checked="" />Vocabulary end
points</label></li>
</ul></li>
<li><label><input type="checkbox" checked="" />Implement http API end
points (using datasetd for API)</label>
<ul class="task-list">
<li><label><input type="checkbox" checked="" />Funders end
points</label></li>
<li><label><input type="checkbox" checked="" />Groups end
points</label></li>
<li><label><input type="checkbox" checked="" />People end
points</label></li>
<li><label><input type="checkbox" checked="" />Vocabulary end
points</label></li>
</ul></li>
<li><label><input type="checkbox" checked="" />Document setup,
configuration and database requirements</label>
<ul class="task-list">
<li><label><input type="checkbox" checked="" />Add Makefile</label></li>
</ul></li>
<li>[D] Add link to cold and cold admin on apps.library.caltech.edu
(cold public API is feeds, cold admin is consolidated fully into the
cold repo)</li>
<li><label><input type="checkbox" checked="" />Figure out how to
refactor Makefile to complete the a release process</label></li>
<li><label><input type="checkbox" checked="" />Add “staff” people
object</label></li>
<li><label><input type="checkbox" checked="" />Consolidate
<code>/cold/</code>, <code>/cold/admin/</code> and
<code>github.com/caltechlibrary/cold_directory_sync</code> into the main
cold repository</label>
<ul>
<li>Per 2024-10-08 project meeting, the public API of COLD is feeds</li>
<li>COLD is responsible for pushing changes to feeds, RDM can pull
changes from feeds</li>
<li>Run a report of clpid and related author_id, advisor_id,
committee_member_id, etc.</li>
</ul></li>
<li><label><input type="checkbox" checked="" />Division should only
populate in with directory sync if it is empty</label></li>
<li><label><input type="checkbox" checked="" />Do final load of data
from the spreadsheet in GitHub</label></li>
<li><label><input type="checkbox" checked="" />Figure out if I need
refactor people, groups, funders to tease out the type definitions
(i.e. interface and class) into</label>
<ul>
<li><label><input type="checkbox" checked="" />Review
https://jsr.io/<span class="citation"
data-cites="deno/emit">@deno/emit</span>, this is probably the right
choice for the project but not certain, need to figure out how clean a
“compile to single JS file” I can get</label></li>
<li>Looks like the “bundle” command line compile option in deno maybe
helpful here, see <code>deno --help bundle</code>
<ul>
<li>Looks like “bundle” is depreciated, see
https://docs.deno.com/runtime/manual/tools/bundler/</li>
<li><label><input type="checkbox" checked="" />Review
https://esbuild.github.io/</label></li>
<li><label><input type="checkbox" checked="" />Review
https://rollupjs.org/</label></li>
</ul></li>
</ul></li>
<li><label><input type="checkbox" checked="" />Figure out how switching
from a read view to an edit view should work (e.g. URL parameter like
<code>view=...</code> or do I expanded URL end points?). The problem is
keeping the URL end points managable while still maintaining a simple
implementation. I POST can be used to submit form to the same URL as the
edit view is, edit view would use GET to retrieve the populated
form.</label></li>
<li><label><input type="checkbox" checked="" />Figure out if Mustache
templates are enough to support UI. If not then find an alternative
quickly</label>
<ul>
<li>switched to Handlebars</li>
</ul></li>
<li><label><input type="checkbox" checked="" />refactor modules for
people and groups so that the web configuration like base_url can flow
through the app. This could be done by making a app_group and app_people
object that held the various handlers. It could also be done through the
config module exposing global values. Not sure right approach.</label>
<ul>
<li>fixed by adopting relative linking throughout templates</li>
</ul></li>
<li><label><input type="checkbox" checked="" />Figure out how to render
TypeScript to JavaScript for browser side interactivity if there is time
to implement that</label>
<ul>
<li>See
https://rsdoiel.github.io/blog/2024/07/03/transpiling_with_deno.html</li>
</ul></li>
<li><label><input type="checkbox" checked="" />Update UI labeling based
on RDM project meeting suggestions, see
https://caltechlibrary.atlassian.net/wiki/spaces/InvenioMigration/pages/3282960385/2024-08-13+Project+Team+Meeting+Notes</label></li>
<li><label><input type="checkbox" checked="" />Make sure we auto tag
<code>include_in_feeds</code> based on current algorithms on importing
data</label></li>
<li><label><input type="checkbox" checked="" />Write a cronjob that
updates COLD from directory using the old cdh harvester code or public
vcard</label>
<ul class="task-list">
<li><label><input type="checkbox" checked="" />investigate how much of
the vcard is useful, important use case is dual appointments</label>
<ul>
<li>Does not necessarily show division affiliation</li>
<li>If “ORG” is shown it maybe a semi-colon delimited list</li>
<li>Doesn’t show BIO field</li>
<li>Can be seen off campus so information provided is public</li>
<li>There are a few better Golang packages supporting decoding VCARD
data depending on our needs</li>
<li>Very easy to retrieve and doesn’t require API key, must know IMSS
username</li>
<li>Only supports the vcf format of data (not XML or JSON)</li>
</ul></li>
<li><label><input type="checkbox" checked="" />investigate what we get
from the current implementation LDAP API provided by IMSS</label></li>
<li><label><input type="checkbox" checked="" />division associations for
people should be additive but require manuall removals on
autoupdates</label></li>
<li><label><input type="checkbox" checked="" />Fields like bio and
descriptions can be overwritten by directory data</label></li>
</ul></li>
</ul>
</section>
<footer-global></footer-global>
</body>
</html>