소스 검색

[IMP] printers update

Gogs 7 년 전
부모
커밋
79c4150441
3개의 변경된 파일22개의 추가작업 그리고 15개의 파일을 삭제
  1. 3 5
      controllers/main.py
  2. 18 9
      static/src/js/main.js
  3. 1 1
      views/print_engine_sockets.xml

+ 3 - 5
controllers/main.py

@@ -39,10 +39,8 @@ class PrintEngineController(http.Controller):
  
     '''
     '''
-    @http.route('/print_engine/update', auth='user', type='http', methods=['POST'], cors='*')
+    @http.route('/print_engine/update', auth='user', type='json', methods=['POST'], cors='*')
     def printers_update(self, **kw):
-        assert len(request.env.user.socket_ids) <= 1
-
         printer_obj = request.env['print.engine.printer']
 
         for printer in request.env.user.socket_ids.printer_ids:
@@ -54,8 +52,8 @@ class PrintEngineController(http.Controller):
                 'socket_id': request.env.user.socket_ids.id
             })
 
-        return redirect('/web?id={}&view_type=form&model=print.engine.socket'.format(request.env.user.socket_ids.id))
-        
+        return True
+
     '''
     '''
     def get_sockets(self):

+ 18 - 9
static/src/js/main.js

@@ -92,8 +92,8 @@
             var obj = JSON.parse(e.data);
 
             if (obj.printers) {
-                this.sendToServer('/print_engine/update', e.data).then(function (ok) {
-                    console.log(ok);
+                this.sendToServer('/print_engine/update', e.data).then(function () {
+                    instance.client.action_manager.inner_widget.views['form'].controller.reload()
                 });
             }
         },
@@ -117,13 +117,22 @@
             var json = {
                 jsonrpc: '2.0',
                 method: 'call',
-                data: data
+                params: {
+                    data: data
+                }
             }
 
-            $.post(url, json).done(function (response) {
-                defer.resolve(response);
-            }).fail(function (error) {
-                defer.reject(error);
+            $.ajax({
+                type: 'POST',
+                url: url,
+                dataType: 'json',
+                data: JSON.stringify(json),
+                beforeSend: function(xhr) {
+                    xhr.setRequestHeader('Content-Type', 'application/json');
+                },
+                success: function (ok) {
+                    defer.resolve(ok);
+                },
             });
 
             return defer;
@@ -223,8 +232,8 @@
     instance.web.client_actions.add('print_engine.test_printer', 'instance.print_engine.test_printer')
 
 
-    if(openerp.web && openerp.web.UserMenu) {
-        openerp.web.UserMenu.include({
+    if (instance.web && instance.web.UserMenu) {
+        instance.web.UserMenu.include({
             do_update: function(){
                 var printer = new openerp.print_engine.PrinterTopWidget(this);
                 printer.appendTo($('.oe_systray'));

+ 1 - 1
views/print_engine_sockets.xml

@@ -24,7 +24,7 @@
             <field name="arch" type="xml">
                 <form string="Socket">
                     <header>
-                        <button type="action" name="print_engine.ping_action" string="Probar conexión" />
+                        <button type="action" name="print_engine.ping_action" string="Ping" />
                         <button type="action" name="print_engine.discovery_printers_action" string="Actualizar impresoras" />
                     </header>
                     <sheet>