bugfix
This commit is contained in:
parent
faddf6201e
commit
650b0da43a
@ -1,6 +1,7 @@
|
||||
|
||||
from kivy.event import EventDispatcher
|
||||
from .threadcall import HttpClient
|
||||
from .utils import absurl
|
||||
from appPublic.registerfunction import RegisterFunction
|
||||
|
||||
class DataLoader(EventDispatcher):
|
||||
@ -28,7 +29,6 @@ class DataLoader(EventDispatcher):
|
||||
class HttpDataLoader(DataLoader):
|
||||
def load(self):
|
||||
url = absurl(self.data_user.url,self.data_user.target.parenturl)
|
||||
self.data_user.curpage = p
|
||||
method = self.data_user.method
|
||||
params = self.data_user.params.copy()
|
||||
params.update({
|
||||
@ -36,10 +36,10 @@ class HttpDataLoader(DataLoader):
|
||||
"rows":self.data_user.page_rows
|
||||
})
|
||||
hc = HttpClient()
|
||||
hc(self.url,
|
||||
hc(url,
|
||||
method=method,
|
||||
params=params,
|
||||
callback=self.on_success,
|
||||
callback=self.success,
|
||||
errback=self.error)
|
||||
|
||||
class ListDataLoader(DataLoader):
|
||||
|
@ -13,6 +13,9 @@ from appPublic.jsonConfig import getConfig
|
||||
from .baseWidget import Text, HTTPDataHandler
|
||||
from .utils import CSize, absurl, alert
|
||||
from .form import StrSearchForm
|
||||
from .dataloader import HttpDataLoader
|
||||
from .dataloader import ListDataLoader
|
||||
from .dataloader import RegisterFunctionDataLoader
|
||||
|
||||
class PagingButton(Button):
|
||||
def __init__(self, **kw):
|
||||
@ -36,22 +39,6 @@ it fires two type of event
|
||||
'on_pageloaded':fire when a page data loads success
|
||||
"""
|
||||
|
||||
class BaseLoader:
|
||||
def loadPage(self,p):
|
||||
pass
|
||||
|
||||
def loadNextPage(self):
|
||||
if self.total_page > 0 and self.curpage >=self.total_page:
|
||||
return
|
||||
p = self.curpage + 1
|
||||
self.loadPage(p)
|
||||
|
||||
def loadPreviousPage(self):
|
||||
if self.curpage <= 1:
|
||||
return
|
||||
p = self.curpage - 1
|
||||
self.loadPage(p)
|
||||
|
||||
class PageLoader(EventDispatcher):
|
||||
def __init__(self,target=None, **options):
|
||||
self.loading = False
|
||||
@ -64,6 +51,8 @@ class PageLoader(EventDispatcher):
|
||||
self.params = options.get('params',{})
|
||||
self.method = options.get('method','GET')
|
||||
self.url = options.get('dataurl')
|
||||
self.rfname = options.get('rfname')
|
||||
self.data = options.get('data')
|
||||
self.page_rows = options.get('page_rows',60)
|
||||
self.total_cnt = 0
|
||||
self.total_page = 0
|
||||
@ -72,6 +61,16 @@ class PageLoader(EventDispatcher):
|
||||
self.register_event_type('on_newbegin')
|
||||
self.register_event_type('on_pageloaded')
|
||||
self.newbegin = True
|
||||
if self.url:
|
||||
self.loader = HttpDataLoader(self)
|
||||
elif self.rfname:
|
||||
self.loader = RegisterFunctionDataLoader(self)
|
||||
elif self.data:
|
||||
self.loader = ListDataLoader(self)
|
||||
else:
|
||||
raise Exception('need a url or rfname or data')
|
||||
self.loader.bind(on_success=self.show_page)
|
||||
self.loader.bind(on_error=self.onerror)
|
||||
|
||||
def on_newbegin(self):
|
||||
pass
|
||||
@ -124,7 +123,7 @@ class PageLoader(EventDispatcher):
|
||||
}
|
||||
self.dispatch('on_pageloaded',d)
|
||||
|
||||
def httperror(self,o,e):
|
||||
def onerror(self,o,e):
|
||||
traceback.print_exc()
|
||||
alert(str(e),title='alert')
|
||||
|
||||
@ -141,8 +140,6 @@ class PageLoader(EventDispatcher):
|
||||
self.loadPage(p)
|
||||
|
||||
def loadPage(self,p):
|
||||
if not self.url:
|
||||
raise Exception('dataurl must be present:options=%s' % str(options))
|
||||
if self.curpage > p:
|
||||
self.dir = 'up'
|
||||
elif self.curpage == p:
|
||||
@ -151,6 +148,8 @@ class PageLoader(EventDispatcher):
|
||||
self.dir = 'down'
|
||||
self.curpage = p
|
||||
self.loading = True
|
||||
self.loader.load()
|
||||
"""
|
||||
params = self.params.copy()
|
||||
params.update({
|
||||
"page":self.curpage,
|
||||
@ -161,6 +160,7 @@ class PageLoader(EventDispatcher):
|
||||
loader.bind(on_success=self.show_page)
|
||||
loader.bind(on_failed=self.httperror)
|
||||
loader.handle()
|
||||
"""
|
||||
|
||||
"""
|
||||
{
|
||||
@ -320,37 +320,3 @@ class Paging(PageLoader):
|
||||
return
|
||||
self.loadPage(self.total_page)
|
||||
|
||||
class ListLoader(PageLoader):
|
||||
def __init__(self, data_list=[],**options):
|
||||
self._data_list = data_list
|
||||
PageLoader.__init__(self,**options)
|
||||
self.total_cnt = len(self._data_list)
|
||||
t = 0 if self.total_cnt % self.page_rows == 0 else 1
|
||||
self.total_page = self.total_cnt / self.page_rows + t
|
||||
|
||||
def loadPage(self,p):
|
||||
if p < 1:
|
||||
p = 1
|
||||
if p > self.total_page:
|
||||
d = []
|
||||
else :
|
||||
a = (p - 1) * self.page_rows
|
||||
b = p * self.page_rows
|
||||
d = self.d[a:b]
|
||||
return {
|
||||
"total":self.total_cnt,
|
||||
"rows":d
|
||||
}
|
||||
|
||||
class OneRecordLoader(PageLoader):
|
||||
def __init__(self,**options):
|
||||
PageLoader.__init__(self,**options)
|
||||
self.adder = options.get('adder')
|
||||
self.page_rows = 1
|
||||
|
||||
def calculateTotalPage(self):
|
||||
self.total_page = self.total_cnt
|
||||
|
||||
def show_page(self,o,d):
|
||||
self.adder(d['rows'][0])
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user