From b0349f0e8c7d4ceb7589560af39f23fbb0aab0c1 Mon Sep 17 00:00:00 2001 From: Florent Date: Tue, 17 Jun 2014 15:43:04 +0200 Subject: [PATCH] Try to guess if we need to change the formatter --- weboob/tools/application/repl.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/weboob/tools/application/repl.py b/weboob/tools/application/repl.py index c9b40a50..7494e503 100644 --- a/weboob/tools/application/repl.py +++ b/weboob/tools/application/repl.py @@ -339,13 +339,24 @@ class ReplApplication(Cmd, ConsoleApplication): fields = kwargs.pop('fields', self.selected_fields) if not fields and fields != []: fields = self.selected_fields + if '$direct' in fields: fields = [] elif '$full' in fields: fields = None - if self.formatter.MANDATORY_FIELDS is not None: - missing_fields = set(fields) - set(self.formatter.MANDATORY_FIELDS) + if fields and self.formatter.MANDATORY_FIELDS is not None: + missing_fields = set(self.formatter.MANDATORY_FIELDS) - set(fields) + # If a mandatory field is not selected, do not use the customized formatter + if missing_fields: + self.formatter = self.formatters_loader.build_formatter(ReplApplication.DEFAULT_FORMATTER) + + if self.formatter.DISPLAYED_FIELDS is not None: + if fields is None: + missing_fields = True + else: + missing_fields = set(fields) - set(self.formatter.DISPLAYED_FIELDS + self.formatter.MANDATORY_FIELDS) + # If a selected field is not displayed, do not use the customized formatter if missing_fields: self.formatter = self.formatters_loader.build_formatter(ReplApplication.DEFAULT_FORMATTER)