X-Git-Url: https://git.hcoop.net/clinton/lisp-on-lines.git/blobdiff_plain/bf12489aa5ecb02b7be66367e0b2ec1cd9c35bae..6ac956e82549cf957dba5079060b1252884ff219:/src/slot-presentations.lisp diff --git a/src/slot-presentations.lisp b/src/slot-presentations.lisp index 89492aa..d515860 100644 --- a/src/slot-presentations.lisp +++ b/src/slot-presentations.lisp @@ -239,7 +239,8 @@ Calendar.setup({ (defmethod find-foreign-instances ((slot foreign-key-slot-presentation)) - (clsql:select (class-name (class-of (meta-model:explode-foreign-key (instance slot) (slot-name slot)))))) + (clsql:select (class-name (class-of (meta-model:explode-foreign-key (instance slot) (slot-name slot)))) + :order-by (car (list-keys (instance slot))))) @@ -301,7 +302,7 @@ Calendar.setup({ (defmethod get-foreign-instances ((slot has-many-slot-presentation) instance) (sort (slot-value instance (slot-name slot)) #'< - :key #'(lambda (x) (funcall (car (list-keys instance)) x)))) + :key #'(lambda (x) (funcall (car (list-keys x)) x)))) (defmethod lol::presentation-slot-value ((slot has-many-slot-presentation) instance) (get-foreign-instances slot instance)) @@ -393,7 +394,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")) @@ -429,22 +432,26 @@ Calendar.setup({ (let ((instances (slot-value instance (slot-name slot))) new-instance) (<:ul - (<:li (