use a local instance of LinearDateGuesser instead of global one
When giving LinearDateGuesser instance to DateGuesser at Page's declaration, that'll be the SAME object for all the life-time of the module. So when listing transactions of a second account, the first taken date is the date of the oldest transaction of the first account!
This commit is contained in:
parent
920583eae7
commit
87070bf05a
4 changed files with 15 additions and 13 deletions
|
|
@ -24,6 +24,7 @@ from itertools import chain
|
|||
|
||||
from weboob.exceptions import BrowserHTTPError, BrowserIncorrectPassword
|
||||
from weboob.browser import LoginBrowser, URL, need_login
|
||||
from weboob.tools.date import LinearDateGuesser
|
||||
|
||||
from .pages import LoginPage, AccountsPage, HistoryPage
|
||||
|
||||
|
|
@ -71,4 +72,6 @@ class CmsoProBrowser(LoginBrowser):
|
|||
first_page = self.page
|
||||
rest_page = self.history.go(data=query)
|
||||
|
||||
return chain(first_page.iter_history(), rest_page.iter_history())
|
||||
date_guesser = LinearDateGuesser()
|
||||
|
||||
return chain(first_page.iter_history(date_guesser=date_guesser), rest_page.iter_history(date_guesser=date_guesser))
|
||||
|
|
|
|||
|
|
@ -22,10 +22,9 @@ import datetime
|
|||
|
||||
from weboob.browser.pages import HTMLPage, LoggedPage
|
||||
from weboob.browser.elements import ListElement, ItemElement, method
|
||||
from weboob.browser.filters.standard import CleanText, CleanDecimal, Regexp, DateGuesser
|
||||
from weboob.browser.filters.standard import CleanText, CleanDecimal, Regexp, DateGuesser, Env
|
||||
from weboob.browser.filters.html import Link
|
||||
from weboob.capabilities.bank import Account
|
||||
from weboob.tools.date import LinearDateGuesser
|
||||
|
||||
from ..transaction import Transaction
|
||||
|
||||
|
|
@ -71,10 +70,10 @@ class CmsoTransactionElement(ItemElement):
|
|||
|
||||
|
||||
class HistoryPage(LoggedPage, HTMLPage):
|
||||
def iter_history(self):
|
||||
def iter_history(self, *args, **kwargs):
|
||||
if self.doc.xpath('//a[@href="1-situationGlobaleProfessionnel.act"]'):
|
||||
return self.iter_history_rest_page()
|
||||
return self.iter_history_first_page()
|
||||
return self.iter_history_rest_page(*args, **kwargs)
|
||||
return self.iter_history_first_page(*args, **kwargs)
|
||||
|
||||
@method
|
||||
class iter_history_first_page(CmsoListElement):
|
||||
|
|
@ -83,7 +82,7 @@ class HistoryPage(LoggedPage, HTMLPage):
|
|||
return obj.date >= datetime.date.today().replace(day=1)
|
||||
|
||||
def date(selector):
|
||||
return DateGuesser(CleanText(selector), LinearDateGuesser()) | Transaction.Date(selector)
|
||||
return DateGuesser(CleanText(selector), Env('date_guesser')) | Transaction.Date(selector)
|
||||
|
||||
obj_date = date('./td[1]')
|
||||
obj_vdate = date('./td[2]')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue