;;;; adventure-page.lisp -- shows a particular adventure (in-package :dnd) (defclass adventure-page () ((adventure :reader adventure :initarg :adventure) (player :reader player :initarg :player))) (defrender t ((page adventure-page)) (let ((adventure (adventure page))) (with-page (:title (title adventure)) (:h1 (title adventure)) (:p (description adventure)) (:h2 "Rumors: ") ; (render :list (rumors adventure)) (:h2 "Architect of this Adventure: " (nickname (creator adventure))) (:h2 "Seers: ") (render :list (seers adventure)) (:form :method "POST" :action (urlpath adventure) (:label :for "SEER" "Add a seer to this adventure:") (:br) (:select :name "SEER" (loop :for p :in (all-other-players (player page)) :collect (:option :value (nickname p) (nickname p)))) (:button :type "submit" "Add Seer")))))