[IMP] on pager action reload list view
authorRGA(OpenERP) <>
Fri, 15 Jun 2012 12:20:16 +0000 (17:50 +0530)
committerRGA(OpenERP) <>
Fri, 15 Jun 2012 12:20:16 +0000 (17:50 +0530)
bzr revid: rgaopenerp-20120615122016-2m982b7cgfjzkzk9

addons/account/account_move_line.py
addons/account/static/src/js/account.js
addons/account/static/src/xml/account.xml

index 892747c..475abd5 100644 (file)
@@ -708,8 +708,26 @@ class account_move_line(osv.osv):
             if not partner:
                 return []
             args.append(('partner_id', '=', partner[0]))
-        return super(account_move_line, self).search(cr, uid, args, offset, limit, order, context, count)
+        ids = super(account_move_line, self).search(cr, uid, args, offset, limit, order, context, count)
+        if context.get('extended_from'):
+            return self.get_move_by_unique_partner(cr, uid, offset, context)
+        return ids
 
+    def get_move_by_unique_partner(self, cr, uid, offset=0, context=None):
+        cr.execute(
+             """
+             SELECT l.id ,l.partner_id AS partner_id  
+                FROM account_move_line l
+                LEFT JOIN account_account a ON (a.id = l.account_id)
+                    
+                    WHERE a.reconcile IS TRUE
+                    AND l.reconcile_id IS NULL
+
+                    AND l.state <> 'draft'
+                    GROUP BY l.id, l.partner_id OFFSET %s""", (offset, )
+            )
+        return  dict(cr.fetchall()).keys()
+        
     def get_next_partner_only(self, cr, uid, offset=0, context=None):
         cr.execute(
              """
index 5bb8236..87ca083 100644 (file)
@@ -4,16 +4,39 @@ openerp.account = function(instance) {
             this._super()
             this.setup_exended_list_view()
         },
-        
         setup_exended_list_view: function(parent){
             if (this.action && this.action.extended_form_view_id){
+                var self = this
                 view_id = this.action.extended_form_view_id[0]
                 var from_view = this.registry.get_object('form');
-                var options = {}
-                var obj_from_view = new from_view(this, this.dataset, view_id, options);
+                this.dataset_form.context.extended_from = true
+                this.dataset_form.read_slice()
+                this.dataset_form.context.extended_from = false
+                var obj_from_view = new from_view(this, this.dataset_form, view_id, options={});
+                this.obj_from_view = obj_from_view
                 obj_from_view.template = 'ExtendedFormView' 
-                obj_from_view.appendTo(this.$element.find('.oe_extended_form_view'))
+                view_promise = obj_from_view.appendTo(this.$element.find('.oe_extended_form_view'))
+                $.when(view_promise).then(function() {
+                    obj_from_view.on_pager_action('first')
+                })
             }
         },
     })
+    instance.account.extend_view_action = instance.web.ViewManagerAction.include({
+        init: function(parent, action) {
+            this._super(parent, action)
+            this.dataset_form = new instance.web.DataSetSearch(this, action.res_model, action.context, action.domain);
+        },
+    })
+    instance.account.extend_form_view = instance.web.FormView.include({
+        on_pager_action: function(action) {
+            var self = this
+            var viewmanager = self.__parentedParent
+            $.when(this._super(action)).then(function() {
+                var id = self.get_fields_values().partner_id
+                viewmanager.action.domain = [["partner_id", "=", id]]
+                viewmanager.searchview.do_search()
+            })
+        }
+    })
 }
index 9b3ae75..8dac02d 100644 (file)
@@ -10,6 +10,7 @@
     </t>
     <t t-name="ExtendedFormView">
         <div class="oe_formview">
+            <div class="oe_form_pager"/>
             <div class="oe_form_container"/>
         </div>
     </t>