Author: hhubner
Date: 2006-10-26 00:12:15 -0400 (Thu, 26 Oct 2006)
New Revision: 2048
Modified:
trunk/projects/bos/m2/m2.lisp
trunk/projects/bos/m2/packages.lisp
trunk/projects/bos/m2/poi.lisp
trunk/projects/bos/worldpay-test/poi-handlers.lisp
trunk/projects/bos/worldpay-test/sponsor-handlers.lisp
trunk/projects/bos/worldpay-test/tags.lisp
Log:
New panoramas API for sat application.
Fixed dowload-only certificates with manual money transfer.
Modified: trunk/projects/bos/m2/m2.lisp
===================================================================
--- trunk/projects/bos/m2/m2.lisp 2006-10-26 04:11:11 UTC (rev 2047)
+++ trunk/projects/bos/m2/m2.lisp 2006-10-26 04:12:15 UTC (rev 2048)
@@ -181,7 +181,7 @@
(paidp :update)
(m2s :read)
(color :read)
- (download-only :read)
+ (download-only :update)
(cert-issued :read)
(worldpay-trans-id :update :initform nil)
(expires :read :documentation "universal time which specifies the time the contract expires (is deleted) when it has not been paid for" :initform nil))
@@ -235,6 +235,9 @@
(or (contract-download-only contract)
(< (contract-price contract) *mail-amount*)))
+(deftransaction contract-set-download-only-p (contract newval)
+ (setf (contract-download-only contract) newval))
+
(defmethod contract-fdf-pathname ((contract contract) language)
(merge-pathnames (make-pathname :name (format nil "~D-~(~A~)"
(store-object-id contract)
Modified: trunk/projects/bos/m2/packages.lisp
===================================================================
--- trunk/projects/bos/m2/packages.lisp 2006-10-26 04:11:11 UTC (rev 2047)
+++ trunk/projects/bos/m2/packages.lisp 2006-10-26 04:12:15 UTC (rev 2048)
@@ -102,6 +102,7 @@
#:contract-color
#:contract-cert-issued
#:contract-set-paidp
+ #:contract-set-download-only-p
#:contract-price
#:contract-issue-cert
#:contract-worldpay-trans-id
Modified: trunk/projects/bos/m2/poi.lisp
===================================================================
--- trunk/projects/bos/m2/poi.lisp 2006-10-26 04:11:11 UTC (rev 2047)
+++ trunk/projects/bos/m2/poi.lisp 2006-10-26 04:12:15 UTC (rev 2048)
@@ -129,26 +129,38 @@
(not (poi-published poi))))
(store-objects-with-class 'poi))
#'(lambda (poi-1 poi-2) (string-lessp (slot-string poi-1 'title language) (slot-string poi-2 'title language)))))
- (format t "var poi = [];~%")
- (format t "poi['symbol'] = ~S;~%" (poi-name poi))
- (format t "poi['icon'] = ~S;~%" (poi-icon poi))
- (format t "poi['name'] = ~S;~%" (slot-string poi 'title language))
- (format t "poi['untertitel'] = ~S;~%" (slot-string poi 'subtitle language))
- (format t "poi['text'] = ~S;~%" (escape-nl (slot-string poi 'description language)))
- (format t "poi['x'] = ~D;~%" (poi-center-x poi))
- (format t "poi['y'] = ~D;~%" (poi-center-y poi))
- (format t "poi['thumbnail'] = ~D;~%" (length (poi-images poi)))
+ (format t "
+var poi = { symbol: ~S,
+ icon: ~S,
+ name: ~S,
+ untertitel: ~S,
+ text: ~S,
+ x: ~D,
+ y: ~D,
+ thumbnail: ~D
+};
+"
+ (poi-name poi)
+ (poi-icon poi)
+ (slot-string poi 'title language)
+ (slot-string poi 'subtitle language)
+ (escape-nl (slot-string poi 'description language))
+ (poi-center-x poi)
+ (poi-center-y poi)
+ (length (poi-images poi)))
+ (format t "poi.thumbnail = ~D;~%" (length (poi-images poi)))
(when (poi-airals poi)
- (format t "poi['luftbild'] = ~D;~%" (store-object-id (first (poi-airals poi)))))
+ (format t "poi.luftbild = ~D;~%" (store-object-id (first (poi-airals poi)))))
(when (poi-panoramas poi)
- (format t "poi['panorama'] = ~D;~%" (store-object-id (first (poi-panoramas poi)))))
+ (let ((panorama-ids (mapcar #'store-object-id (poi-panoramas poi))))
+ (format t "poi.panoramas = [ ~D~{, ~D~} ];~%" (first panorama-ids) (rest panorama-ids))))
(loop for slot-name in '(title subtitle description)
for javascript-name in '("imageueberschrift" "imageuntertitel" "imagetext")
for slot-values = (mapcar #'(lambda (image)
(escape-nl (slot-string image slot-name language)))
(poi-images poi))
when slot-values
- do (format t "poi[~S] = [~S~{, ~S~}];~%" javascript-name (car slot-values) (cdr slot-values)))
+ do (format t "poi.~A = [ ~S~{, ~S~} ];~%" javascript-name (car slot-values) (cdr slot-values)))
(format t "pois.push(poi);~%"))
(dolist (allocation-area (remove-if (complement #'allocation-area-active-p) (class-instances 'allocation-area)))
(destructuring-bind (x y) (allocation-area-center allocation-area)
Modified: trunk/projects/bos/worldpay-test/poi-handlers.lisp
===================================================================
--- trunk/projects/bos/worldpay-test/poi-handlers.lisp 2006-10-26 04:11:11 UTC (rev 2047)
+++ trunk/projects/bos/worldpay-test/poi-handlers.lisp 2006-10-26 04:12:15 UTC (rev 2048)
@@ -140,15 +140,16 @@
:br
(submit-button "upload-airal" "upload-airal")))))
(:tr (:td "panorama view")
- (:td (if (poi-panoramas poi)
- (html ((:a :href (format nil "/image/~D" (store-object-id (first (poi-panoramas poi))))
- :target "_new")
- " view ")
- (submit-button "delete-panorama" "delete-panorama" :confirm "Really delete the panorama image?"))
- (html "Upload new panorama view"
- ((:input :type "file" :name "image-file"))
- :br
- (submit-button "upload-panorama" "upload-panorama")))))
+ (:td (dolist (panorama (poi-panoramas poi))
+ (html (:princ-safe (format-date-time (blob-timestamp panorama)))
+ ((:a :href (format nil "/image/~D" (store-object-id panorama)) :target "_new" :class "cmslink")
+ " view ")
+ (submit-button "delete-panorama" "delete-panorama" :confirm "Really delete this panorama image?")
+ :br))
+ (html "Upload new panorama view"
+ ((:input :type "file" :name "image-file"))
+ :br
+ (submit-button "upload-panorama" "upload-panorama"))))
(:tr (:td (submit-button "save" "save") (submit-button "delete" "delete" :confirm "Really delete the POI?"))))))))
(defmethod handle-object-form ((handler edit-poi-handler)
@@ -212,8 +213,9 @@
(cl-gd:with-image-from-file* (uploaded-file)
; just open the image to make sure that gd can process it
)
- (change-slot-values poi 'panoramas (list (import-image uploaded-file
- :class-name 'store-image))))
+ (change-slot-values poi 'panoramas (cons (import-image uploaded-file
+ :class-name 'store-image)
+ (poi-panoramas poi))))
(redirect (format nil "/edit-poi/~D"
(store-object-id poi)) req))
@@ -221,9 +223,10 @@
(action (eql :delete-panorama))
(poi poi)
req)
- (let ((panoramas (poi-panoramas poi)))
- (change-slot-values poi 'panoramas nil)
- (mapc #'delete-object panoramas))
+ (with-query-params (req panorama-id)
+ (let ((panorama (find-store-object (parse-integer panorama-id))))
+ (change-slot-values poi 'panoramas (remove panorama (poi-panoramas poi)))
+ (mapc #'delete-object panorama)))
(redirect (format nil "/edit-poi/~D"
(store-object-id poi)) req))
Modified: trunk/projects/bos/worldpay-test/sponsor-handlers.lisp
===================================================================
--- trunk/projects/bos/worldpay-test/sponsor-handlers.lisp 2006-10-26 04:11:11 UTC (rev 2047)
+++ trunk/projects/bos/worldpay-test/sponsor-handlers.lisp 2006-10-26 04:12:15 UTC (rev 2048)
@@ -205,8 +205,10 @@
(:td (text-field "name" :size 50)))
(:tr (:td "Email-Address")
(:td (text-field "email" :size 20)))
- (:tr (:td "Postal address for certificate"
- (:td (textarea-field "postaladdress" :rows 5 :cols 40))))
+ (unless (contract-download-only-p contract)
+ (html
+ (:tr (:td "Postal address for certificate"
+ (:td (textarea-field "postaladdress" :rows 5 :cols 40))))))
(:tr (:td (submit-button "process" "process" :formcheck "javascript:return check_complete_sale()"))))))))))
(defmethod handle-object-form ((handler complete-transfer-handler) (action (eql :process)) contract req)
Modified: trunk/projects/bos/worldpay-test/tags.lisp
===================================================================
--- trunk/projects/bos/worldpay-test/tags.lisp 2006-10-26 04:11:11 UTC (rev 2047)
+++ trunk/projects/bos/worldpay-test/tags.lisp 2006-10-26 04:12:15 UTC (rev 2048)
@@ -100,7 +100,12 @@
(mapc #'emit-template-node children))
(define-bknr-tag mail-transfer ()
- (mail-manual-sponsor-data (get-template-var :request)))
+ (with-query-params ((get-template-var :request) contract-id mail-certificate)
+ (let* ((contract (store-object-with-id (parse-integer contract-id)))
+ (download-only (or (< (contract-price contract) *mail-certificate-threshold*)
+ (not mail-certificate))))
+ (contract-set-download-only-p contract download-only)
+ (mail-manual-sponsor-data (get-template-var :request)))))
(define-bknr-tag when-certificate (&key children)
(let ((sponsor (bknr-request-user (get-template-var :request))))