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")]'):