X-Git-Url: https://git.hcoop.net/clinton/lisp-on-lines.git/blobdiff_plain/480a7191a8d9c713401c7634d4ffbd9b55c6ed9c..e1645f63189477f1b39a173a41fcbbfefb5e88a6:/src/slot-presentations.lisp diff --git a/src/slot-presentations.lisp b/src/slot-presentations.lisp index 667e987..2f75737 100644 --- a/src/slot-presentations.lisp +++ b/src/slot-presentations.lisp @@ -217,11 +217,10 @@ Calendar.setup({ ;; the viewed instance could have been changed/deleted, so we sync this instance (meta-model:sync-instance (instance (ucw::parent self)))) - (defmethod present-slot :around ((slot foreign-key-slot-presentation) instance) (setf (foreign-instance slot) (when (lol::presentation-slot-value slot instance) - (meta-model:explode-foreign-key instance (slot-name slot)))) + (meta-model:explode-foreign-key instance (slot-name slot) :nilp t))) (flet ((render () (when (foreign-instance slot)(call-next-method)))) (if (slot-boundp slot 'ucw::place) (cond @@ -394,7 +393,9 @@ Calendar.setup({ ((list-view :accessor list-view :initarg :list-view :initform :one-line) (action-view :accessor action-view :initarg :action-view :initform :viewer) (create-view :initform :creator) - (select-view :initform :as-string :accessor select-view)) + (select-view :initform :as-string :accessor select-view) + (can-add-new-p :initarg :can-add-new-p :accessor can-add-new-p :initform t) + (can-add-existing-p :initarg :can-add-existing-p :accessor can-add-existing-p :initform t)) (:type-name many-to-many) (:default-initargs :label "many to many")) @@ -430,16 +431,19 @@ Calendar.setup({ (let ((instances (slot-value instance (slot-name slot))) new-instance) (<:ul - (<:li (