ajay javiya (OpenERP) has proposed merging 
lp:~openerp-dev/openerp-web/trunk-print-wkf-workflow-aja into 
lp:~openerp-dev/openerp-web/trunk-print-wkf.

Requested reviews:
  Jigar Amin  (OpenERP) (jam-openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-print-wkf-workflow-aja/+merge/123931

Hello, 
Print a worflow report.
Thank You
-- 
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-print-wkf-workflow-aja/+merge/123931
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openerp-web/trunk-print-wkf.
=== modified file 'addons/web/controllers/main.py'
--- addons/web/controllers/main.py	2012-09-10 10:51:29 +0000
+++ addons/web/controllers/main.py	2012-09-12 11:24:33 +0000
@@ -1938,8 +1938,33 @@
                  ('Content-Disposition', 'attachment; filename="%s.%s"' % (file_name, report_struct['format'])),
                  ('Content-Type', report_mimetype),
                  ('Content-Length', len(report))],
-             cookies={'fileToken': int(token)})
+                 cookies={'fileToken': int(token)})
 
+    @openerpweb.httprequest
+    def print_workflow(self, req, action, token):
+        action = simplejson.loads(action)
+        report_srv = req.session.proxy("report")
+        action.update({'nested': True})
+        report_id = report_srv.report(
+            req.session._db, req.session._uid, req.session._password,
+            'workflow.instance.graph', action['id'], action)
+        report_struct = None
+        while True:
+            report_struct = report_srv.report_get(
+                req.session._db, req.session._uid,
+                req.session._password, report_id)
+            if report_struct["state"]:
+                break
+            time.sleep(self.POLLING_DELAY)
+        report = base64.b64decode(report_struct['result'])
+        file_name = 'workflow_%s_%d.%s'%(action['model'], action['id'], report_struct['format'])
+        return req.make_response(report,
+             headers=[
+                 ('Content-Disposition', 'attachment; filename="%s"'% (file_name)),
+                 ('Content-Type', 'application/pdf'),
+                 ('Content-Length', len(report))],
+                 cookies={'fileToken': int(token)})
+             
 class Import(View):
     _cp_path = "/web/import"
 

=== modified file 'addons/web/static/src/js/views.js'
--- addons/web/static/src/js/views.js	2012-09-11 04:42:31 +0000
+++ addons/web/static/src/js/views.js	2012-09-12 11:24:33 +0000
@@ -837,6 +837,21 @@
                 });
                 break;
             case 'print_workflow':
+                var self = this
+                if (current_view.get_selected_ids().length != 1) {
+                    instance.web.dialog($("<div />").text(_t("You must choose only one record.")), { title: _t("Warning"), modal: true });
+                    evt.currentTarget.selectedIndex = 0;
+                    return false;
+                } else {
+                    instance.web.blockUI();
+                    var action={"id":current_view.get_selected_ids()[0],
+                                "model":self.dataset.model}
+                    self.session.get_file({
+                        url: '/web/report/print_workflow',
+                        data: {action: JSON.stringify(action)},
+                        complete: instance.web.unblockUI
+                    });
+                }
                 break;
             default:
                 if (val) {

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to