X-Git-Url: https://git.hcoop.net/clinton/lisp-on-lines.git/blobdiff_plain/233380f7937e342cb0a0027f352aecf05f0ae2a4..ec4f5786bb3917169e036c2ddfcb0d24f22379f1:/src/mewa/slot-presentations.lisp diff --git a/src/mewa/slot-presentations.lisp b/src/mewa/slot-presentations.lisp index 26a3332..edc42fd 100644 --- a/src/mewa/slot-presentations.lisp +++ b/src/mewa/slot-presentations.lisp @@ -44,9 +44,9 @@ (old-time (when (slot-boundp instance (slot-name slot)) (slot-value instance (slot-name slot))))) (unless (or (eql old-time new-time) - (and (null old-time) new-time) - (equal :equal (clsql:time-compare new-time old-time))) - (setf (presentation-slot-value slot instance) new-time )))) + (when (and new-time old-time) + (equal :equal (clsql:time-compare new-time old-time)))) + (setf (presentation-slot-value slot instance) new-time )))) (defmethod label :around ((slot clsql-wall-time-slot-presentation)) (concatenate 'string (call-next-method) " (mm/dd/yyyy)")) @@ -142,18 +142,14 @@ (:type-name has-many)) -(defun get-join-class-info (slot instance) - "hack around m-v-b" - (multiple-value-bind (s h f) (meta-model:explode-has-many instance (slot-name slot)) - (list s h f))) - (defaction add-to-has-many ((slot has-many-slot-presentation) instance) (destructuring-bind (class home foreign) - (multiple-value-funcall->list #'meta-model:explode-has-many instance (slot-name slot)) + (multiple-value-funcall #'meta-model:explode-has-many instance (slot-name slot)) (let ((new (make-instance class))) (setf (slot-value new foreign) (slot-value instance home)) (meta-model:sync-instance new :fill-gaps-only t) - (call-component (parent slot) (mewa:make-presentation new :type :editor))))) + (call-component (parent slot) (mewa:make-presentation new :type :editor)) + (meta-model:sync-instance (instance (parent slot)))))) (defmethod present-slot ((slot has-many-slot-presentation) instance) (