@@ -89,7 +89,7 @@ class SPPAPIPath(models.Model):
8989 # Read
9090 filter_domain = fields .Char (default = "[]" )
9191 field_ids = fields .Many2many ("ir.model.fields" , domain = "[('model_id', '=', model_id)]" , string = "Fields" )
92- limit = fields .Integer (string = "Limit of results" , default = 80 , help = "Limit of results per page" )
92+ limit = fields .Integer (string = "Limit of results" , default = 500 , help = "Limit of results per page" )
9393 # Create / Update
9494 warning_required = fields .Boolean (compute = "_compute_warning_required" , compute_sudo = True )
9595 api_field_ids = fields .One2many ("spp_api.field" , "path_id" , string = "API Fields" , copy = True )
@@ -663,24 +663,43 @@ def search_treatment_kwargs(self, kwargs):
663663 """
664664 self .ensure_one ()
665665
666- # Page
667- page = kwargs .get ("page" , 1 )
668-
669- # Get defined limit first in spp_api.path
670- # if limit is defined in kwargs (query parameter), use it; else use self.limit or MAX_LIMIT
671- limit = kwargs .get ("limit" , self .limit if self .limit else MAX_LIMIT )
672-
673- # Validate limit
674- try :
675- limit = int (limit )
676- except (ValueError , TypeError ):
677- limit = self .limit if self .limit else MAX_LIMIT
678-
679- kwargs ["limit" ] = limit
680-
681- # Offset
682- offset = (page - 1 ) * limit if page > 1 else kwargs .get ("offset" , 0 )
683- kwargs ["offset" ] = offset
666+ backward_compat = False
667+ if "start_from" in kwargs :
668+ backward_compat = True
669+
670+ if backward_compat :
671+ limit = kwargs .get ("limit" , 0 )
672+ max_limit = self .limit if self .limit else MAX_LIMIT
673+ kwargs ["limit" ] = limit if (limit and limit <= max_limit ) else max_limit
674+ kwargs ["offset" ] = kwargs .get ("start_from" , 0 )
675+ if "start_from" in kwargs :
676+ del kwargs ["start_from" ]
677+ else :
678+ # Page
679+ try :
680+ page = int (kwargs .get ("page" , 1 ))
681+ except (ValueError , TypeError ):
682+ page = 1
683+ page = max (1 , page )
684+
685+ # Get defined limit first in spp_api.path
686+ # if limit is defined in kwargs (query parameter), use it; else use self.limit or MAX_LIMIT
687+ max_limit = self .limit if self .limit else MAX_LIMIT
688+ limit = kwargs .get ("limit" , max_limit )
689+
690+ # Validate limit
691+ try :
692+ limit = int (limit )
693+ if limit <= 0 or limit > max_limit :
694+ limit = max_limit
695+ except (ValueError , TypeError ):
696+ limit = max_limit
697+
698+ kwargs ["limit" ] = limit
699+
700+ # Offset
701+ offset = (page - 1 ) * limit
702+ kwargs ["offset" ] = offset
684703
685704 # Domain
686705 kwargs ["domain" ] = self .get_domain (kwargs )
0 commit comments