tracking: fix save, update

This commit is contained in:
Helmut Merz 2024-08-09 09:54:01 +02:00
parent dd4f8ccebd
commit 20ae39e3c4
4 changed files with 6 additions and 2 deletions

View file

@ -23,6 +23,7 @@
:short-name :fldr
:table-name :folders
:index-factory #'indexes
:force-insert-when nil
:storage storage))
(defun root (cont)

View file

@ -104,6 +104,7 @@
(defun insert (track)
(ensure-timestamp track)
(setf (trackid track) nil)
(let* ((cont (container track))
(st (storage cont))
(table (storage:qualified-table-name st (table-name cont)))
@ -122,7 +123,7 @@
(storage:do-sql st
(sxql:update table
(apply #'sxql:make-clause ':set= (plist track))
(where (:= :trackid (trackid track)))))))
(sxql:where (list := :trackid (trackid track)))))))
;;;; auxiliary functions for queries, ...

View file

@ -95,4 +95,6 @@
(setf f1 (folder:create :child1 root))
(== (tracking:trackid f1) 2)
(== (shape:head-value f1 :parentid) "1")
(setf (shape:head-value f1 :ref) :dummy-0)
(tracking:save f1)
))

View file

@ -30,7 +30,7 @@
`(loop for (,kvar ,vvar . nil) on ,plist by #'cddr ,@body))
(defun filter-plist (pl keys)
(loop-plist pl k v when (find k keys) collect v))
(loop-plist pl k v when (find k keys) append (list k v)))
(defun plist-pairs (pl)
(loop-plist pl k v collect (list k v)))