[bknr-cvs] hans changed trunk/
BKNR Commits
bknr at bknr.net
Tue Jul 22 12:02:48 UTC 2008
Revision: 3554
Author: hans
URL: http://bknr.net/trac/changeset/3554
Never block in contract-issue-cert. In the frontend, the user will always
spend enough time on the following pages so that the certificate will be
generated. In order to support the CMS workflow, the /certificate handler
now waits until the certificates have been generated before serving the PDF.
U trunk/bknr/datastore/src/data/object.lisp
U trunk/projects/bos/m2/m2.lisp
U trunk/projects/bos/m2/packages.lisp
U trunk/projects/bos/web/contract-handlers.lisp
U trunk/projects/bos/web/kml-handlers.lisp
U trunk/projects/bos/web/webserver.lisp
Modified: trunk/bknr/datastore/src/data/object.lisp
===================================================================
--- trunk/bknr/datastore/src/data/object.lisp 2008-07-22 11:48:19 UTC (rev 3553)
+++ trunk/bknr/datastore/src/data/object.lisp 2008-07-22 12:02:48 UTC (rev 3554)
@@ -41,7 +41,7 @@
(let ((instance-count (length (class-instances class))))
(when (plusp instance-count)
(unless *suppress-schema-warnings*
- (warn "updating ~A instances of ~A for class changes" instance-count class))
+ (format *trace-output* "~&; updating ~A instances of ~A for class changes~%" instance-count class))
(mapc #'reinitialize-instance (class-instances class)))))
(defmethod instance :after ((class persistent-class) &rest args)
Modified: trunk/projects/bos/m2/m2.lisp
===================================================================
--- trunk/projects/bos/m2/m2.lisp 2008-07-22 11:48:19 UTC (rev 3553)
+++ trunk/projects/bos/m2/m2.lisp 2008-07-22 12:02:48 UTC (rev 3554)
@@ -342,15 +342,6 @@
(delete-file (contract-pdf-pathname contract))
(delete-file (contract-pdf-pathname contract :print t))))
-(defun wait-for-certificates (contract)
- "Wait until the PDF generating process has generated the certificates"
- (dotimes (i 10)
- (when (contract-certificates-generated-p contract)
- (return))
- (sleep 1))
- (unless (contract-certificates-generated-p contract)
- (error "Cannot generate certificate")))
-
(defmethod contract-issue-cert ((contract contract) name &key address language)
(when (contract-cert-issued contract)
(warn "re-issuing cert for ~A" contract))
@@ -358,7 +349,6 @@
(make-certificate contract name :address address :language language)
(unless (contract-download-only-p contract)
(make-certificate contract name :address address :language language :print t))
- (wait-for-certificates contract)
(change-slot-values contract 'cert-issued t))
(defmethod contract-image-tiles ((contract contract))
Modified: trunk/projects/bos/m2/packages.lisp
===================================================================
--- trunk/projects/bos/m2/packages.lisp 2008-07-22 11:48:19 UTC (rev 3553)
+++ trunk/projects/bos/m2/packages.lisp 2008-07-22 12:02:48 UTC (rev 3554)
@@ -161,6 +161,7 @@
#:contract-set-download-only-p
#:contract-price
#:contract-issue-cert
+ #:contract-certificates-generated-p
#:contract-worldpay-trans-id
#:contract-pdf-pathname
#:contract-pdf-url
Modified: trunk/projects/bos/web/contract-handlers.lisp
===================================================================
--- trunk/projects/bos/web/contract-handlers.lisp 2008-07-22 11:48:19 UTC (rev 3553)
+++ trunk/projects/bos/web/contract-handlers.lisp 2008-07-22 12:02:48 UTC (rev 3554)
@@ -32,4 +32,5 @@
(:td (:princ-safe (contract-color contract))))
#+(or)
(:tr (:td "cert issued?")
- (:td (:princ-safe (if (contract-cert-issued contract) "yes" "no")))))))
\ No newline at end of file
+ (:td (:princ-safe (if (contract-cert-issued contract) "yes" "no")))))))
+
Modified: trunk/projects/bos/web/kml-handlers.lisp
===================================================================
--- trunk/projects/bos/web/kml-handlers.lisp 2008-07-22 11:48:19 UTC (rev 3553)
+++ trunk/projects/bos/web/kml-handlers.lisp 2008-07-22 12:02:48 UTC (rev 3554)
@@ -138,7 +138,7 @@
(hunchentoot:handle-if-modified-since timestamp)
(setf (hunchentoot:header-out :last-modified)
(hunchentoot:rfc-1123-date timestamp))
- (with-xml-response (:content-type #+nil "text/xml" "application/vnd.google-earth.kml+xml; charset=utf-8"
+ (with-xml-response (:content-type "application/vnd.google-earth.kml+xml; charset=utf-8"
:root-element "kml")
(with-query-params ((lang "en"))
(with-element "Document"
Modified: trunk/projects/bos/web/webserver.lisp
===================================================================
--- trunk/projects/bos/web/webserver.lisp 2008-07-22 11:48:19 UTC (rev 3553)
+++ trunk/projects/bos/web/webserver.lisp 2008-07-22 12:02:48 UTC (rev 3554)
@@ -122,7 +122,17 @@
(defmethod handle-object ((handler certificate-handler) contract)
(unless contract
(setf contract (find-if #'contract-pdf-pathname (sponsor-contracts (bknr.web:bknr-session-user)))))
- (redirect (format nil "/certificates/~D.pdf" (store-object-id contract))))
+ (if (contract-certificates-generated-p contract)
+ (redirect (format nil "/certificates/~D.pdf" (store-object-id contract)))
+ (with-http-response (:content-type "text/html; charset=UTF-8")
+ (with-http-body ()
+ (html
+ (:html
+ (:head
+ (:title "Waiting for certificate generation...")
+ ((:meta :http-equiv "Refresh" :content (format nil "3; ~A" (hunchentoot:script-name*)))))
+ (:body
+ "Please wait, certificate is being generated")))))))
(defclass statistics-handler (editor-only-handler prefix-handler)
())
More information about the Bknr-cvs
mailing list