diff --git a/modules/cmes/browser.py b/modules/cmes/browser.py index 1de3a3a562b783b478e6ed38211d3cc79464b60b..d2322a7153f7dce3b8756f3e6cc743efef3114a6 100644 --- a/modules/cmes/browser.py +++ b/modules/cmes/browser.py @@ -18,19 +18,20 @@ # along with this weboob module. If not, see . -from weboob.exceptions import BrowserIncorrectPassword +from weboob.exceptions import BrowserIncorrectPassword from weboob.browser import LoginBrowser, URL, need_login from .pages import ( LoginPage, NewWebsitePage, AccountsPage, FCPEInvestmentPage, - CCBInvestmentPage, HistoryPage, CustomPage, - ) + CCBInvestmentPage, HistoryPage, CustomPage, ActionNeededPage, +) class CmesBrowser(LoginBrowser): BASEURL = 'https://www.cic-epargnesalariale.fr' login = URL('/espace-client/fr/identification/authentification.html', LoginPage) + action_needed = URL('/espace-client/fr/epargnants/premiers-pas/saisir-vos-coordonnees/saisir-adresse-e-mail.html', ActionNeededPage) accounts = URL('(?P.*)fr/espace/devbavoirs.aspx\?mode=net&menu=cpte$', AccountsPage) new_website = URL('(?P.*)espace-client/fr/epargnants/tableau-de-bord/index.html', NewWebsitePage) fcpe_investment = URL(r'/fr/.*GoPositionsParFond.*', diff --git a/modules/cmes/new_website/browser.py b/modules/cmes/new_website/browser.py index 1cb00e80a8256b50fa4a1e756de217112caffb12..8fee297c6532a515d0f54a0a4ecdf36406216b34 100644 --- a/modules/cmes/new_website/browser.py +++ b/modules/cmes/new_website/browser.py @@ -21,7 +21,7 @@ from weboob.browser import URL, need_login from ..browser import CmesBrowser from .pages import ( - NewAccountsPage, OperationsListPage, OperationPage + NewAccountsPage, OperationsListPage, OperationPage, ) diff --git a/modules/cmes/new_website/pages.py b/modules/cmes/new_website/pages.py index fe7aa93d7beda3fee179a3a5e85070f9f69b099a..380c2496c0c5ec2bbb210ea0fe630c6c2fd51810 100644 --- a/modules/cmes/new_website/pages.py +++ b/modules/cmes/new_website/pages.py @@ -24,7 +24,7 @@ from weboob.browser.pages import HTMLPage, LoggedPage from weboob.browser.elements import ListElement, ItemElement, method from weboob.browser.filters.standard import ( - CleanText, Date, Regexp, Field, Currency, Upper, MapIn, Eval + CleanText, Date, Regexp, Field, Currency, Upper, MapIn, Eval, ) from weboob.capabilities.bank import Account, Investment, Pocket diff --git a/modules/cmes/pages.py b/modules/cmes/pages.py index f26b30139b755c0ea7ad3f4370bf1d543998d4a9..6609ec8e90da94aeb3c5731c00f85afbceb545d7 100644 --- a/modules/cmes/pages.py +++ b/modules/cmes/pages.py @@ -26,7 +26,7 @@ from weboob.browser.filters.standard import ( CleanText, Upper, Date, Regexp, Field, CleanDecimal, Env, Async, AsyncLoad, Currency, - ) +) from weboob.browser.filters.html import Link, TableCell, Attr from weboob.browser.switch import SiteSwitch from weboob.capabilities.bank import Account, Investment, Pocket @@ -53,6 +53,23 @@ def on_load(self): raise SiteSwitch('cmes_new') +class ActionNeededPage(HTMLPage, LoggedPage): + def on_load(self): + # Need to update mail. Try to skip + msg = "Merci de renseigner votre adresse e-mail" + if CleanText('//p[@role="heading" and contains(text(), "%s")]' % msg)(self.doc): + url = Link('//a[contains(., "PASSER CETTE ETAPE")]')(self.doc) + if url: + self.browser.location(url) + else: + raise ActionNeeded(msg) + + # Mobile phone update can not be skipped + msg = "Merci de renseigner votre numéro de téléphone mobile" + if CleanText('//p[@role="heading" and contains(text(), "%s")]' % msg)(self.doc): + raise ActionNeeded(msg) + + class AccountsPage(LoggedPage, HTMLPage): def on_load(self): if self.doc.xpath('//label[contains(@for, "AcceptCGU")]'):