From 3b3705d654c931c5d8fd67397c9d5b8e44727b6b Mon Sep 17 00:00:00 2001 From: Martin Sicot Date: Tue, 18 Dec 2018 10:58:43 +0100 Subject: [PATCH] [credimutuel] Handle nested investments Sometimes when one invest is splitted underneath in several sub investments we now retrieve the data correctly. --- modules/creditmutuel/pages.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/modules/creditmutuel/pages.py b/modules/creditmutuel/pages.py index 580a8bee4c..ed2a5426c8 100644 --- a/modules/creditmutuel/pages.py +++ b/modules/creditmutuel/pages.py @@ -1218,13 +1218,21 @@ class iter_investment(TableElement): class item(ItemElement): klass = Investment + def condition(self): + return not any(not x.isdigit() for x in Attr('.', 'id')(self)) + obj_label = CleanText(TableCell('label'), default=NotAvailable) - obj_code = CleanText('.//td[1]/a/@title') & Regexp(pattern=r'^([^ ]+)') obj_quantity = CleanDecimal(TableCell('quantity'), default=Decimal(0), replace_dots=True) obj_unitprice = CleanDecimal(TableCell('unitprice'), default=Decimal(0), replace_dots=True) obj_valuation = CleanDecimal(TableCell('valuation'), default=Decimal(0), replace_dots=True) obj_diff = CleanDecimal(TableCell('diff'), default=Decimal(0), replace_dots=True) + def obj_code(self): + code = Regexp(CleanText('.//td[1]/a/@title'), r'^([^ ]+)')(self) + if 'masquer' in code: + return Regexp(CleanText('./following-sibling::tr[1]//a/@title'), r'^([^ ]+)')(self) + return code + def obj_unitvalue(self): r = CleanText(TableCell('unitvalue'))(self) if r[-1] == '%': -- GitLab