Odoo. Open Source Apps To Grow Your Business.
This report summarizes scanner evidence for odoo/odoo, a Python project with 54,960 GitHub stars. SynthScan examined 3,454,242 lines of code across 24829 source files, recording 38493 pattern matches distributed across 25 syntactic categories. The legacy adjusted pattern signal is 14.4 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 25763 finding(s).
Are imports declared and package/API names verified? 8764 finding(s).
Are wrappers, guards, and repeated structures necessary? 26646 finding(s).
Which changes need focused human review? 38493 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 38493 distinct pattern matches across 25 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | odoo/netsvc.py | 194 | def showwarning_with_traceback(message, category, filename, lineno, file=None, line=None): | CODE |
| LOW⚡ | odoo/tools/mail.py | 484 | def lxml_remove_element_preserve_tail(element, tail_separator='\n'): | CODE |
| LOW | odoo/tools/mail.py | 159 | def kill_conditional_comments(self, doc): | CODE |
| LOW | odoo/tools/mail.py | 188 | def _tag_matching_regex_in_text(regex, node, tag='span', attrs=None): | CODE |
| LOW | odoo/tools/mail.py | 803 | def generate_tracking_message_id(res_id): | CODE |
| LOW | odoo/tools/mail.py | 874 | def email_split_and_normalize(text): | CODE |
| LOW | odoo/tools/mail.py | 879 | def email_split_and_format_normalize(text): | CODE |
| LOW | odoo/tools/version_tag_reset.py | 28 | def _detect_tp_versions_used_offset(): | CODE |
| LOW | odoo/tools/version_tag_reset.py | 64 | def get_tp_versions_used_offset(): | CODE |
| LOW | odoo/tools/version_tag_reset.py | 74 | def reset_classes_tp_versions_used(classes, reset_above_ratio=1): | CODE |
| LOW | odoo/tools/misc.py | 283 | def file_open_temporary_directory(env: Environment): | CODE |
| LOW | odoo/tools/misc.py | 1558 | def format_decimalized_number(number: float, decimal: int = 1) -> str: | CODE |
| LOW | odoo/tools/misc.py | 1583 | def format_decimalized_amount(amount: float, currency=None) -> str: | CODE |
| LOW | odoo/tools/misc.py | 1877 | def limited_field_access_token(record, field_name, timestamp=None, *, scope): | STRING |
| LOW | odoo/tools/misc.py | 1913 | def verify_limited_field_access_token(record, field_name, access_token, *, scope): | STRING |
| LOW | odoo/tools/misc.py | 1958 | def named_to_positional_printf(string: str, args: Mapping) -> tuple[str, tuple]: | STRING |
| LOW | odoo/tools/translate.py | 135 | def is_translatable_attrib_value(node): | CODE |
| LOW | odoo/tools/translate.py | 145 | def is_translatable_attrib_text(node): | CODE |
| LOW | odoo/tools/translate.py | 168 | def translate_format_string_expression(term, callback): | CODE |
| LOW | odoo/tools/translate.py | 500 | def _get_translation_dictionary(field: BaseString, from_lang_value, to_lang_values): | CODE |
| LOW | odoo/tools/translate.py | 858 | def extract_term_translations(self, env: Environment, field: BaseString, source_lang: str, target_langs: set[str] | | CODE |
| LOW | odoo/tools/translate.py | 918 | def adapt_translated_field_value( | CODE |
| LOW | odoo/tools/translate.py | 1630 | def _extract_translatable_qweb_terms(element, callback): | CODE |
| LOW | odoo/tools/translate.py | 1703 | def extract_spreadsheet_terms(fileobj, keywords, comment_tags, options): | CODE |
| LOW | odoo/tools/translate.py | 1837 | def _get_translatable_records(self, imd_records): | CODE |
| LOW | odoo/tools/translate.py | 1905 | def _export_translatable_records(self, records, field_names): | CODE |
| LOW | odoo/tools/translate.py | 1967 | def _export_translatable_records(self): | CODE |
| LOW | odoo/tools/translate.py | 2019 | def _verified_module_filepaths(self, fname, path, root): | STRING |
| LOW | odoo/tools/translate.py | 2058 | def _export_translatable_resources(self): | STRING |
| LOW | odoo/tools/translate.py | 2432 | def get_datafile_translation_path(module_name: str) -> Iterator[str]: | STRING |
| LOW | odoo/tools/translate.py | 2445 | def get_translations_for_references(po_path: str, references: Iterable[str]) -> dict[str, dict[str, str]]: | STRING |
| LOW | odoo/tools/translate.py | 2587 | def _read_code_translations_file(fileobj, filter_func): | STRING |
| LOW | odoo/tools/translate.py | 2617 | def _load_python_translations(self, module_name, lang): | STRING |
| LOW | odoo/tools/translate.py | 2647 | def _get_translation_upgrade_queries(cr, field): | STRING |
| LOW | odoo/tools/config.py | 588 | def _flush_log_and_warn_entries(cls): | CODE |
| LOW | odoo/tools/template_inheritance.py | 23 | def add_stripped_items_before(node, spec, extract): | CODE |
| LOW | odoo/tools/mimetypes.py | 79 | def _odoo_guess_file_mimetype(path, default='application/octet-stream'): | CODE |
| LOW | odoo/tools/js_transpiler.py | 176 | def convert_export_function_default(content): | STRING |
| LOW | odoo/tools/js_transpiler.py | 205 | def convert_export_class_default(content): | STRING |
| LOW | odoo/tools/js_transpiler.py | 294 | def convert_variable_export_default(content): | STRING |
| LOW | odoo/tools/js_transpiler.py | 465 | def convert_legacy_default_import(content): | STRING |
| LOW | odoo/tools/js_transpiler.py | 520 | def convert_default_and_named_import(content): | STRING |
| LOW | odoo/tools/js_transpiler.py | 616 | def convert_default_and_star_import(content): | STRING |
| LOW | odoo/tools/js_transpiler.py | 640 | def convert_unnamed_relative_import(content): | STRING |
| LOW | odoo/tools/js_transpiler.py | 676 | def relative_path_to_module_path(url, path_rel): | STRING |
| LOW | odoo/tools/js_transpiler.py | 720 | def get_aliased_odoo_define_content(module_path, content): | STRING |
| LOW | odoo/tools/rendering_tools.py | 56 | def convert_inline_template_to_qweb(template): | CODE |
| LOW | odoo/tools/appdirs.py | 387 | def _get_win_folder_from_registry(csidl_name): | CODE |
| LOW | odoo/tools/appdirs.py | 431 | def _get_win_folder_with_ctypes(csidl_name): | CODE |
| LOW | odoo/tools/xml_utils.py | 24 | def remove_control_characters(byte_node): | CODE |
| LOW | odoo/tools/xml_utils.py | 315 | def validate_xml_from_attachment(env, xml_content, xsd_name, reload_files_function=None, prefix=None): | CODE |
| LOW | odoo/tools/view_validation.py | 152 | def _get_expression_contextual_values(item_ast): | CODE |
| LOW | odoo/tools/view_validation.py | 229 | def get_expression_field_names(expression): | CODE |
| LOW | odoo/tools/partner_identifiers.py | 970 | def get_tin_metadata_of_country(country_code): | CODE |
| LOW | odoo/tools/partner_identifiers.py | 1011 | def get_non_prefixed_identifier(country_code, value): | CODE |
| LOW | odoo/tools/sql.py | 384 | def convert_column_translatable(cr: Cursor, tablename: str, columnname: str, columntype: str | SQL): | CODE |
| LOW | odoo/tools/sql.py | 680 | def increment_fields_skiplock(records, *fields): | CODE |
| LOW | odoo/tools/sql.py | 717 | def value_to_translated_trigram_pattern(value: str) -> str: | CODE |
| LOW | odoo/tools/sql.py | 743 | def pattern_to_translated_trigram_pattern(pattern: str) -> str: | CODE |
| LOW | odoo/tools/profiler.py | 358 | def _get_directive_profiling_name(self, directive, attrib): | CODE |
| 22526 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | odoo/init.py | 18 | # ---------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | odoo/init.py | 22 | # ---------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | odoo/init.py | 28 | # ---------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | odoo/init.py | 31 | # ---------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | odoo/init.py | 38 | # ---------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | odoo/init.py | 41 | # ---------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | odoo/tools/mail.py | 479 | # ---------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | odoo/tools/mail.py | 481 | # ---------------------------------------------------------- | COMMENT |
| MEDIUM | odoo/tools/mail.py | 64 | #---------------------------------------------------------- | COMMENT |
| MEDIUM | odoo/tools/mail.py | 66 | #---------------------------------------------------------- | COMMENT |
| MEDIUM | odoo/tools/mail.py | 502 | # ---------------------------------------------------------- | COMMENT |
| MEDIUM | odoo/tools/mail.py | 504 | # ---------------------------------------------------------- | COMMENT |
| MEDIUM | odoo/tools/mail.py | 789 | #---------------------------------------------------------- | COMMENT |
| MEDIUM | odoo/tools/mail.py | 791 | #---------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | odoo/tools/misc.py | 132 | #---------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | odoo/tools/misc.py | 134 | #---------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | odoo/tools/misc.py | 142 | # ---------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | odoo/tools/misc.py | 144 | # ---------------------------------------------------------- | COMMENT |
| MEDIUM | odoo/tools/misc.py | 185 | # ---------------------------------------------------------- | COMMENT |
| MEDIUM | odoo/tools/misc.py | 187 | # ---------------------------------------------------------- | COMMENT |
| MEDIUM | odoo/tools/misc.py | 310 | #---------------------------------------------------------- | COMMENT |
| MEDIUM | odoo/tools/misc.py | 312 | #---------------------------------------------------------- | COMMENT |
| MEDIUM | odoo/tools/misc.py | 646 | # --------------------------------------------- | COMMENT |
| MEDIUM | odoo/tools/misc.py | 648 | # --------------------------------------------- | COMMENT |
| MEDIUM | odoo/tools/partner_identifier_validation.py | 23 | # =========================================================== | COMMENT |
| MEDIUM | odoo/tools/partner_identifier_validation.py | 25 | # =========================================================== | COMMENT |
| MEDIUM | odoo/tools/mimetypes.py | 165 | # ------------------------------------------------------------------------------------------------- | STRING |
| MEDIUM | odoo/tools/mimetypes.py | 167 | # ------------------------------------------------------------------------------------------------- | STRING |
| MEDIUM | odoo/tools/mimetypes.py | 267 | # ------------------------------------------------------------------------------------------------- | STRING |
| MEDIUM | odoo/tools/mimetypes.py | 269 | # ------------------------------------------------------------------------------------------------- | STRING |
| MEDIUM | odoo/tools/mimetypes.py | 287 | # ------------------------------------------------------------------------------------------------- | STRING |
| MEDIUM | odoo/tools/mimetypes.py | 289 | # ------------------------------------------------------------------------------------------------- | STRING |
| MEDIUM | odoo/tools/cloc.py | 38 | #------------------------------------------------------ | COMMENT |
| MEDIUM | odoo/tools/cloc.py | 40 | #------------------------------------------------------ | COMMENT |
| MEDIUM | odoo/tools/cloc.py | 102 | #------------------------------------------------------ | COMMENT |
| MEDIUM | odoo/tools/cloc.py | 104 | #------------------------------------------------------ | COMMENT |
| MEDIUM | odoo/tools/cloc.py | 300 | #------------------------------------------------------ | STRING |
| MEDIUM | odoo/tools/cloc.py | 302 | #------------------------------------------------------ | STRING |
| MEDIUM⚡ | odoo/tools/partner_identifiers.py | 39 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | odoo/tools/partner_identifiers.py | 46 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | odoo/tools/image.py | 327 | # ---------------------------------------- | COMMENT |
| MEDIUM⚡ | odoo/tools/image.py | 329 | # --------------------------------------- | COMMENT |
| MEDIUM | odoo/tools/pdf/__init__.py | 19 | # ---------------------------------------------------------- | COMMENT |
| MEDIUM | odoo/tools/pdf/__init__.py | 24 | # ---------------------------------------------------------- | COMMENT |
| MEDIUM | odoo/tools/pdf/__init__.py | 67 | # ---------------------------------------------------------- | COMMENT |
| MEDIUM | odoo/tools/pdf/__init__.py | 72 | # ---------------------------------------------------------- | COMMENT |
| MEDIUM | odoo/tools/safe_eval/runtime.py | 675 | # ========== | COMMENT |
| MEDIUM | odoo/tools/safe_eval/runtime.py | 677 | # ========== | COMMENT |
| MEDIUM | odoo/addons/test_http/controllers.py | 39 | # ===================================================== | COMMENT |
| MEDIUM | odoo/addons/test_http/controllers.py | 41 | # ===================================================== | COMMENT |
| MEDIUM | odoo/addons/test_http/controllers.py | 106 | # ===================================================== | COMMENT |
| MEDIUM | odoo/addons/test_http/controllers.py | 108 | # ===================================================== | COMMENT |
| MEDIUM | odoo/addons/test_http/controllers.py | 146 | # ===================================================== | COMMENT |
| MEDIUM | odoo/addons/test_http/controllers.py | 148 | # ===================================================== | COMMENT |
| MEDIUM | odoo/addons/test_http/controllers.py | 179 | # ===================================================== | COMMENT |
| MEDIUM | odoo/addons/test_http/controllers.py | 181 | # ===================================================== | COMMENT |
| MEDIUM⚡ | odoo/addons/test_http/controllers.py | 202 | # ===================================================== | COMMENT |
| MEDIUM⚡ | odoo/addons/test_http/controllers.py | 204 | # ===================================================== | COMMENT |
| MEDIUM⚡ | odoo/addons/test_http/controllers.py | 211 | # ===================================================== | COMMENT |
| MEDIUM⚡ | odoo/addons/test_http/controllers.py | 213 | # ===================================================== | COMMENT |
| 2888 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | odoo/netsvc.py | 18 | CODE | |
| LOW | odoo/sql_db.py | 8 | CODE | |
| LOW | odoo/tools/misc.py | 5 | CODE | |
| LOW | odoo/tools/misc.py | 41 | CODE | |
| LOW | odoo/tools/translate.py | 8 | CODE | |
| LOW | odoo/tools/date_utils.py | 1 | CODE | |
| LOW | odoo/tools/__init__.py | 4 | CODE | |
| LOW | odoo/tools/__init__.py | 5 | CODE | |
| LOW | odoo/tools/__init__.py | 6 | CODE | |
| LOW | odoo/tools/__init__.py | 7 | CODE | |
| LOW | odoo/tools/__init__.py | 7 | CODE | |
| LOW | odoo/tools/__init__.py | 8 | CODE | |
| LOW | odoo/tools/__init__.py | 9 | CODE | |
| LOW | odoo/tools/__init__.py | 9 | CODE | |
| LOW | odoo/tools/__init__.py | 9 | CODE | |
| LOW | odoo/tools/__init__.py | 9 | CODE | |
| LOW | odoo/tools/__init__.py | 9 | CODE | |
| LOW | odoo/tools/__init__.py | 9 | CODE | |
| LOW | odoo/tools/__init__.py | 9 | CODE | |
| LOW | odoo/tools/__init__.py | 10 | CODE | |
| LOW | odoo/tools/__init__.py | 10 | CODE | |
| LOW | odoo/tools/__init__.py | 10 | CODE | |
| LOW | odoo/tools/__init__.py | 10 | CODE | |
| LOW | odoo/tools/__init__.py | 10 | CODE | |
| LOW | odoo/tools/__init__.py | 11 | CODE | |
| LOW | odoo/tools/__init__.py | 11 | CODE | |
| LOW | odoo/tools/__init__.py | 12 | CODE | |
| LOW | odoo/tools/__init__.py | 13 | CODE | |
| LOW | odoo/tools/__init__.py | 14 | CODE | |
| LOW | odoo/tools/__init__.py | 15 | CODE | |
| LOW | odoo/tools/__init__.py | 15 | CODE | |
| LOW | odoo/tools/__init__.py | 16 | CODE | |
| LOW | odoo/tools/__init__.py | 16 | CODE | |
| LOW | odoo/tools/__init__.py | 16 | CODE | |
| LOW | odoo/tools/__init__.py | 16 | CODE | |
| LOW | odoo/tools/__init__.py | 17 | CODE | |
| LOW | odoo/tools/__init__.py | 17 | CODE | |
| LOW | odoo/tools/__init__.py | 17 | CODE | |
| LOW | odoo/tools/__init__.py | 18 | CODE | |
| LOW | odoo/tools/__init__.py | 19 | CODE | |
| LOW | odoo/tools/intervals.py | 2 | CODE | |
| LOW | odoo/tools/appdirs.py | 10 | CODE | |
| LOW | odoo/tools/appdirs.py | 459 | CODE | |
| LOW | odoo/tools/i18n.py | 1 | CODE | |
| LOW | odoo/tools/sql.py | 3 | CODE | |
| LOW | odoo/tools/which.py | 45 | CODE | |
| LOW | odoo/tools/which.py | 45 | CODE | |
| LOW | odoo/tools/which.py | 46 | CODE | |
| LOW | odoo/tools/image.py | 10 | CODE | |
| LOW | odoo/tools/func.py | 2 | CODE | |
| LOW | odoo/tools/func.py | 262 | CODE | |
| LOW | odoo/tools/set_expression.py | 1 | CODE | |
| LOW | odoo/tools/cache/__init__.py | 3 | CODE | |
| LOW | odoo/tools/_vendor/send_file.py | 30 | CODE | |
| LOW | odoo/tools/pdf/_pypdf2_2.py | 3 | CODE | |
| LOW | odoo/tools/pdf/_pypdf2_2.py | 3 | CODE | |
| LOW | odoo/tools/pdf/_pypdf2_2.py | 3 | CODE | |
| LOW | odoo/tools/pdf/_pypdf2_2.py | 3 | CODE | |
| LOW | odoo/tools/pdf/_pypdf2_2.py | 4 | CODE | |
| LOW | odoo/tools/pdf/_pypdf2_2.py | 5 | CODE | |
| 7754 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | odoo/addons/test_base/tests/test_orm/test_registry.py | 49 | self.env.cr.transaction._recent_envs.clear() | CODE |
| CRITICAL⚡ | odoo/addons/base/tests/test_avatar_mixin.py | 51 | self.assertEqual(self.user_without_image.partner_id.avatar_1920.content.decode(), expected_avatar) | CODE |
| CRITICAL | odoo/addons/base/models/assetsbundle.py | 884 | cache = self.bundle.env.cr.cache.setdefault('assets_js_transpiled', {}) | CODE |
| CRITICAL | odoo/addons/base/models/res_partner.py | 164 | address_view_id = self.env.company.country_id.address_view_id.sudo() | CODE |
| CRITICAL | …static/src/js/sale_product_field/sale_product_field.js | 62 | this.props.record.model.root._isReadonly("order_line")) | CODE |
| CRITICAL⚡ | …at/static/src/core/web/livechat_channel_model_patch.js | 14 | this.store.env.services.notification.add(_t("You joined %s.", this.name), { | CODE |
| CRITICAL⚡ | …at/static/src/core/web/livechat_channel_model_patch.js | 19 | this.store.env.services.orm.call("im_livechat.channel", "action_join", [this.id]) | CODE |
| CRITICAL⚡ | …at/static/src/core/web/livechat_channel_model_patch.js | 28 | this.store.env.services.notification.add(_t("You left %s.", this.name), { | CODE |
| CRITICAL⚡ | …at/static/src/core/web/livechat_channel_model_patch.js | 33 | this.store.env.services.orm.call("im_livechat.channel", "action_quit", [this.id]) | CODE |
| CRITICAL | …chat/static/src/core/web/livechat_channel_info_list.js | 39 | return this.props.thread.channel.sortedChatbotMessages.filter( | CODE |
| CRITICAL | …tic/src/core/public_web/discuss_channel_model_patch.js | 80 | this.store.env.services.dialog.add(LivechatLeaveDialog, { | CODE |
| CRITICAL | …atic/src/core/public_web/messaging_menu_model_patch.js | 31 | this.store.env.services.action.doAction( | CODE |
| CRITICAL | …rk_entry/static/src/export_cog_menu/export_cog_menu.js | 23 | ? this.env.model.root.selection.map(r => r.resId) | CODE |
| CRITICAL | …_work_entry_action_menus/hr_work_entry_action_menus.js | 7 | ? this.env.model.root.selection.map((r) => r.resId) | CODE |
| CRITICAL | …s/calendar/static/src/core/web/activity_model_patch.js | 15 | const action = await this.store.env.services.orm.call( | CODE |
| CRITICAL | …s/calendar/static/src/core/web/activity_model_patch.js | 20 | this.store.env.services.action.doAction(action); | CODE |
| CRITICAL | …src/views/calendar_form/calendar_event_quick_create.js | 76 | const breadcrumb = this.actionService.currentController.config.breadcrumbs.at(-2); | CODE |
| CRITICAL | …ee_calendar/common/attendee_calendar_common_popover.js | 51 | this.props.record.rawRecord.partner_ids.includes(user.partnerId) || | CODE |
| CRITICAL | …ee_calendar/common/attendee_calendar_common_popover.js | 66 | this.props.record.rawRecord.partner_ids.some((partner) => partner !== user.partnerId) && | CODE |
| CRITICAL | …dons/pos_safaricom/static/src/app/payment_safaricom.js | 26 | return this.env.services.orm.silent.call("pos.payment.method", action, [ | CODE |
| CRITICAL | …et/static/tests/charts/model/odoo_chart_plugin.test.js | 1688 | const scaleCallback = config.options.scales.x.ticks.callback.bind(fakeChart); | CODE |
| CRITICAL⚡ | …il/tests/discuss/test_discuss_channel_last_interest.py | 175 | self.assertIn(channel.id, self.env.cr.postcommit.data.get("mail.sync_last_interest_dt", ()), | CODE |
| CRITICAL⚡ | addons/mail/models/mail_thread.py | 567 | # self.env.cr.precommit.data.pop(f'mail.tracking.target.message.{track_records._name}', None) | COMMENT |
| CRITICAL⚡ | addons/mail/models/mail_thread.py | 547 | self.env.cr.precommit.data.pop(f'mail.tracking.message.{self._name}', None) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_thread.py | 548 | self.env.cr.precommit.data.pop(f'mail.tracking.author.{self._name}', None) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_thread.py | 571 | authors = self.env.cr.precommit.data.setdefault(f'mail.tracking.author.{self._name}', {}) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_thread.py | 579 | body_values = self.env.cr.precommit.data.setdefault(f'mail.tracking.message.{self._name}', {}) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_thread.py | 587 | body_values = self.env.cr.precommit.data.setdefault(f'mail.tracking.target.message.{track_records._name}', {}) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_thread.py | 645 | target_bodies = self.env.cr.precommit.data.get(f'mail.tracking.target.message.{track_records._name}', {}) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_thread.py | 648 | authors = self.env.cr.precommit.data.get(f'mail.tracking.author.{self._name}', {}) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_thread.py | 650 | bodies = self.env.cr.precommit.data.get(f'mail.tracking.message.{self._name}', {}) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_thread.py | 651 | authors = self.env.cr.precommit.data.get(f'mail.tracking.author.{self._name}', {}) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_thread.py | 721 | self.env.cr.precommit.data.pop(f'mail.tracking.create.{self._name}', None) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_thread.py | 727 | self.env.cr.precommit.data.setdefault(f'mail.tracking.create.{self._name}', {})[record.id] = field_names | CODE |
| CRITICAL⚡ | addons/mail/models/mail_thread.py | 732 | precommit_data = self.env.cr.precommit.data.get(f'mail.tracking.create.{self._name}', {}) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_track_mixin.py | 101 | self.env.cr.precommit.data.pop(f'mail.tracking.{self._name}', None) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_track_mixin.py | 102 | self.env.cr.precommit.data.pop(f'mail.tracking.end_values.{self._name}', None) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_track_mixin.py | 103 | self.env.cr.precommit.data.pop(f'mail.tracking.fields_info.{self._name}', None) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_track_mixin.py | 104 | self.env.cr.precommit.data.pop(f'mail.tracking.target.{self._name}', None) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_track_mixin.py | 105 | self.env.cr.precommit.data.pop(f'mail.tracking.target.fnames.{self._name}', None) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_track_mixin.py | 112 | initial_values = self.env.cr.precommit.data.setdefault(f'mail.tracking.{self._name}', {}) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_track_mixin.py | 280 | current_fields_info = self.env.cr.precommit.data.setdefault(f'mail.tracking.fields_info.{self._name}', {}) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_track_mixin.py | 285 | current_initial_values = self.env.cr.precommit.data.setdefault(f'mail.tracking.{self._name}', {}) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_track_mixin.py | 289 | current_end_values = self.env.cr.precommit.data.setdefault(f'mail.tracking.end_values.{self._name}', {}) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_track_mixin.py | 327 | current_initial_values = self.env.cr.precommit.data.setdefault(f'mail.tracking.{records._name}', {}) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_track_mixin.py | 333 | current_end_values = self.env.cr.precommit.data.setdefault(f'mail.tracking.end_values.{records._name}', {}) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_track_mixin.py | 336 | target_data = self.env.cr.precommit.data.setdefault(f'mail.tracking.target.{records._name}', {}) | CODE |
| CRITICAL⚡ | addons/mail/models/mail_track_mixin.py | 337 | target_fnames_data = self.env.cr.precommit.data.setdefault(f'mail.tracking.target.fnames.{records._name}', {}) | CODE |
| CRITICAL | addons/mail/models/mail_track_mixin.py | 89 | initial_values = self.env.cr.precommit.data.setdefault(f'mail.tracking.{self._name}', {}) | CODE |
| CRITICAL | addons/mail/models/mail_track_mixin.py | 141 | initial_values = self.env.cr.precommit.data.pop(f'mail.tracking.{self._name}', {}) | CODE |
| CRITICAL | addons/mail/models/mail_track_mixin.py | 173 | parents_all = self.env.cr.precommit.data.get(f'mail.tracking.target.{self._name}', {}) | CODE |
| CRITICAL | addons/mail/models/mail_track_mixin.py | 174 | parents_fnames_all = self.env.cr.precommit.data.get(f'mail.tracking.target.fnames.{self._name}', {}) | CODE |
| CRITICAL | addons/mail/models/mail_track_mixin.py | 245 | current_fields_info = self.env.cr.precommit.data.get(f'mail.tracking.fields_info.{self._name}', {}) | CODE |
| CRITICAL | addons/mail/models/mail_track_mixin.py | 370 | end_values = self.env.cr.precommit.data.get(f'mail.tracking.end_values.{self._name}', {}) | CODE |
| CRITICAL | …ns/mail/static/src/core/web/follower_subtype_dialog.js | 70 | this.store.env.services.dialog.add(ConfirmationDialog, { | CODE |
| CRITICAL | …ns/mail/static/src/core/web/follower_subtype_dialog.js | 140 | { model_name: this.props.follower.thread.modelName.toLowerCase() } | CODE |
| CRITICAL | addons/mail/static/src/core/web/thread_model_patch.js | 12 | const data = await this.store.env.services.orm.call(this.model, "message_get_followers", [ | CODE |
| CRITICAL | addons/mail/static/src/core/web/thread_model_patch.js | 19 | const data = await this.store.env.services.orm.call( | CODE |
| CRITICAL | addons/mail/static/src/core/web/thread_model_patch.js | 33 | return this.store.env.services.action.doAction(this.openRecordActionRequest, { | CODE |
| CRITICAL | addons/mail/static/src/core/web/activity_model_patch.js | 28 | this.store.env.services.action.doAction( | CODE |
| 174 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | odoo/tools/image.py | 332 | """This function is used to calculate the dominant colors when given a list of colors | STRING |
| MEDIUM | odoo/tools/pdf/incremental_pdf_merge.py | 209 | # Create the Appearance Stream XObject (Section 8.10): Extracts the raw content stream and | COMMENT |
| MEDIUM | odoo/tools/pdf/incremental_pdf_merge.py | 225 | # Create the Stamp Annotation (Section 12.5.6.12): Create a ``/Stamp`` annotation | COMMENT |
| MEDIUM | odoo/tools/pdf/__init__.py | 441 | # Create a new object containing an array referencing embedded file | COMMENT |
| MEDIUM | odoo/tools/arabic_reshaper/letters.py | 1 | # The following code was copied from the original author's repository | COMMENT |
| MEDIUM | odoo/tools/arabic_reshaper/__init__.py | 1 | # The following code was copied from the original author's repository | COMMENT |
| MEDIUM | odoo/addons/test_main_flows/__init__.py | 8 | # This module is defined in community but some steps (defined with 'edition: "enterprise"') | COMMENT |
| MEDIUM | odoo/addons/test_web/tests/test_web_save.py | 10 | # Create a new record, without unity specification (it should return only the id) | COMMENT |
| MEDIUM | odoo/addons/test_web/tests/test_web_save.py | 19 | # Create a new record, with unity specification | COMMENT |
| MEDIUM | odoo/addons/test_base/tests/test_core/test_cli.py | 153 | "# This file contains the translation of the following modules:", | CODE |
| MEDIUM | odoo/addons/test_base/tests/test_orm/test_fields.py | 4514 | # Create a manual selection field with two initial options | STRING |
| MEDIUM | odoo/addons/test_base/tests/test_orm/test_fields.py | 4526 | # Create a manual related field on MODEL_RELATED pointing to the new field | STRING |
| MEDIUM | odoo/addons/test_base/tests/test_orm/test_models.py | 361 | # Create a new environment | COMMENT |
| MEDIUM | odoo/addons/test_base/tests/test_orm/test_one2many.py | 418 | # Create a parent record | COMMENT |
| MEDIUM | odoo/addons/base/tests/test_res_config.py | 21 | # Define the test values | COMMENT |
| MEDIUM | odoo/addons/base/tests/test_ir_attachment.py | 398 | # Create an attachment as user without res_model/res_id | COMMENT |
| MEDIUM | odoo/addons/base/tests/test_ir_attachment.py | 402 | # Create an attachment as superuser without res_model/res_id | COMMENT |
| MEDIUM⚡ | odoo/addons/base/tests/test_res_users.py | 974 | # Creating a key with a different scope raises an error | COMMENT |
| MEDIUM⚡ | odoo/addons/base/tests/test_res_users.py | 980 | # Creating a key with the same scope doesn't raise | COMMENT |
| MEDIUM | odoo/addons/base/tests/test_res_users.py | 903 | # Create a first session that will be used to revoke other sessions | COMMENT |
| MEDIUM | odoo/addons/base/tests/test_res_users.py | 906 | # Create a second session that will be used to check it has been revoked | COMMENT |
| MEDIUM | odoo/addons/base/tests/test_ir_mail_server.py | 504 | # Create a sample .eml file content | COMMENT |
| MEDIUM | odoo/addons/base/tests/test_res_users_has_group.py | 155 | #Create a user with two groups of user types kind (Internal and Portal) | COMMENT |
| MEDIUM⚡ | odoo/addons/base/models/ir_ui_view.py | 728 | """This method is meant to be overridden by other modules. | STRING |
| MEDIUM | odoo/addons/base/models/ir_ui_view.py | 401 | # This function is only interested in locating invalid locators. | STRING |
| MEDIUM | odoo/addons/base/models/ir_qweb.py | 843 | # Create the iterator from the template | COMMENT |
| MEDIUM | odoo/_monkeypatches/num2words.py | 8 | # The following section of the code is used to add support for the Bulgarian language in the num2words package. | COMMENT |
| MEDIUM | odoo/_monkeypatches/site.py | 39 | # This function is borrowed from psycogreen module which is licensed | COMMENT |
| MEDIUM | odoo/orm/models.py | 1880 | # Create a mapping from each unique SQL GROUP BY term to its bitmask value. | STRING |
| MEDIUM⚡ | odoo/orm/models_transient.py | 62 | # This method is shared by all transient models therefore, | COMMENT |
| MEDIUM | addons/auth_totp_mail/tests/test_totp.py | 43 | # Create an API key for the user | COMMENT |
| MEDIUM | …ns/website_sale_loyalty/tests/test_shop_sale_coupon.py | 209 | # Create a gift card to be used | COMMENT |
| MEDIUM | …e_sale_loyalty/tests/test_website_sale_auto_invoice.py | 25 | # Create a discount code | COMMENT |
| MEDIUM | …le_loyalty/tests/test_website_sale_loyalty_delivery.py | 83 | # Create a gift card to be used | COMMENT |
| MEDIUM | …le_loyalty/tests/test_website_sale_loyalty_delivery.py | 90 | # Create a 50% discount on order code | COMMENT |
| MEDIUM | …le_loyalty/tests/test_website_sale_loyalty_delivery.py | 202 | # Create a discount code | COMMENT |
| MEDIUM | addons/l10n_in_hr_holidays/tests/test_sandwich_leave.py | 671 | # Create a public holiday on a working day | COMMENT |
| MEDIUM | addons/l10n_pl_edi/tests/test_l10n_pl_edi.py | 355 | # Create a Bank Account for the Company | COMMENT |
| MEDIUM⚡ | addons/website_event_track/tests/test_website_event.py | 60 | # Create a website record | STRING |
| MEDIUM | addons/website_event_track/controllers/event_track.py | 235 | # Create the dict that contains the tracks at the correct time_slots / locations coordinates | COMMENT |
| MEDIUM | …dons/l10n_vn_edi_viettel_stock/tests/test_stock_edi.py | 159 | # Create a second symbol and assign it to wh1 | COMMENT |
| MEDIUM | addons/l10n_in_edi/models/account_move.py | 374 | # Creating a lambda function so it fetches the odoobot id only when needed | COMMENT |
| MEDIUM | addons/sale/tests/test_access_rights.py | 37 | # Create the SO with a specific salesperson | COMMENT |
| MEDIUM | addons/sale/tests/test_access_rights.py | 194 | # Create a sale order as a salesperson that has no accounting access rights | COMMENT |
| MEDIUM⚡ | addons/sale/tests/test_payment_flow.py | 361 | # Create the payment | COMMENT |
| MEDIUM | addons/sale/tests/test_payment_flow.py | 147 | # Create the payment | COMMENT |
| MEDIUM | addons/sale/tests/test_payment_flow.py | 177 | # Create the payment | COMMENT |
| MEDIUM | addons/sale/tests/test_payment_flow.py | 215 | # Create the payment | COMMENT |
| MEDIUM | addons/sale/tests/test_payment_flow.py | 256 | # Create the payment | COMMENT |
| MEDIUM | addons/sale/tests/test_payment_flow.py | 316 | # Create the payment | COMMENT |
| MEDIUM | addons/sale/tests/test_payment_flow.py | 334 | # Create the payment | COMMENT |
| MEDIUM | addons/sale/tests/test_payment_flow.py | 376 | # Create the payment | COMMENT |
| MEDIUM | addons/sale/tests/test_taxes_downpayment.py | 188 | # Create a down payment invoice of 30%. | COMMENT |
| MEDIUM | addons/sale/tests/test_taxes_downpayment.py | 231 | # Create the final invoice. | COMMENT |
| MEDIUM | addons/sale/tests/test_taxes_downpayment.py | 297 | # Create the final invoice. | COMMENT |
| MEDIUM | addons/sale/tests/test_taxes_downpayment.py | 370 | # Create the final invoice. | COMMENT |
| MEDIUM | addons/sale/tests/test_taxes_downpayment.py | 482 | # Create the final invoice. | COMMENT |
| MEDIUM | addons/sale/tests/test_taxes_downpayment.py | 498 | # Create a new final invoice. | COMMENT |
| MEDIUM | addons/sale/tests/test_taxes_downpayment.py | 546 | # Create a down payment invoice of 100%. | COMMENT |
| MEDIUM | addons/sale/tests/test_taxes_downpayment.py | 586 | # Create the final invoice. | COMMENT |
| 594 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | odoo/addons/base/models/res_partner.py | 0 | returns the list of address fields usable to format addresses. | STRING |
| HIGH | addons/l10n_pa/models/res_partner.py | 0 | returns the list of address fields usable to format addresses. | STRING |
| HIGH | addons/l10n_pe/models/res_partner.py | 0 | returns the list of address fields usable to format addresses. | STRING |
| HIGH | addons/l10n_ne/__manifest__.py | 0 | this module implements the tax for tchad. ================================================================= the chart of | STRING |
| HIGH | addons/l10n_ml/__manifest__.py | 0 | this module implements the tax for tchad. ================================================================= the chart of | STRING |
| HIGH | addons/l10n_gw/__manifest__.py | 0 | this module implements the tax for tchad. ================================================================= the chart of | STRING |
| HIGH | addons/l10n_bj/__manifest__.py | 0 | this module implements the tax for tchad. ================================================================= the chart of | STRING |
| HIGH | addons/l10n_km/__manifest__.py | 0 | this module implements the tax for tchad. ================================================================= the chart of | STRING |
| HIGH | addons/l10n_ga/__manifest__.py | 0 | this module implements the tax for tchad. ================================================================= the chart of | STRING |
| HIGH | addons/l10n_td/__manifest__.py | 0 | this module implements the tax for tchad. ================================================================= the chart of | STRING |
| HIGH | addons/sale/tests/test_sale_order.py | 0 | check taxes populated on invoice lines from product on branch company. taxes from the branch company should be taken wit | STRING |
| HIGH | addons/purchase/tests/test_purchase.py | 0 | check taxes populated on invoice lines from product on branch company. taxes from the branch company should be taken wit | STRING |
| HIGH | addons/account/tests/test_account_move_in_invoice.py | 0 | check taxes populated on invoice lines from product on branch company. taxes from the branch company should be taken wit | STRING |
| HIGH | addons/account/tests/test_account_move_out_invoice.py | 0 | check taxes populated on invoice lines from product on branch company. taxes from the branch company should be taken wit | STRING |
| HIGH | addons/l10n_dk/tools/demo_utils.py | 0 | this decorator is used on methods that should be mocked in demo mode. first handle the decision: "are we in demo mode?", | STRING |
| HIGH | addons/account_peppol/tools/demo_utils.py | 0 | this decorator is used on methods that should be mocked in demo mode. first handle the decision: "are we in demo mode?", | STRING |
| HIGH | addons/l10n_fr_pdp/tools/demo_utils.py | 0 | this decorator is used on methods that should be mocked in demo mode. first handle the decision: "are we in demo mode?", | STRING |
| HIGH | addons/l10n_dk/tests/test_nemhandel_messages.py | 0 | when in multi/async mode, the generation of xml can fail silently (without raising). this needs to be reflected as an er | STRING |
| HIGH | addons/account_peppol/tests/test_peppol_messages.py | 0 | when in multi/async mode, the generation of xml can fail silently (without raising). this needs to be reflected as an er | STRING |
| HIGH | addons/l10n_fr_pdp/tests/test_messages.py | 0 | when in multi/async mode, the generation of xml can fail silently (without raising). this needs to be reflected as an er | STRING |
| HIGH | addons/google_calendar/utils/google_api_resource.py | 0 | returns the odoo id stored in the microsoft event metadata. this id might not actually exists in the database. | STRING |
| HIGH | addons/google_calendar/utils/google_event.py | 0 | returns the odoo id stored in the microsoft event metadata. this id might not actually exists in the database. | STRING |
| HIGH | addons/microsoft_calendar/utils/microsoft_event.py | 0 | returns the odoo id stored in the microsoft event metadata. this id might not actually exists in the database. | STRING |
| HIGH | addons/payment_redsys/tests/test_payment_transaction.py | 0 | test that the amount and currency are returned from the payment data. | STRING |
| HIGH | …ayment_toss_payments/tests/test_payment_transaction.py | 0 | test that the amount and currency are returned from the payment data. | STRING |
| HIGH | addons/payment_ecpay/tests/test_payment_transaction.py | 0 | test that the amount and currency are returned from the payment data. | STRING |
| HIGH | addons/payment_redsys/tests/test_payment_transaction.py | 0 | test that the transaction state is set to 'done' when the payment data indicates a successful payment. | STRING |
| HIGH | addons/payment_xendit/tests/test_payment_transaction.py | 0 | test that the transaction state is set to 'done' when the payment data indicates a successful payment. | STRING |
| HIGH | …ayment_toss_payments/tests/test_payment_transaction.py | 0 | test that the transaction state is set to 'done' when the payment data indicates a successful payment. | STRING |
| HIGH | addons/payment_demo/tests/test_payment_transaction.py | 0 | test that the transaction state is set to 'done' when the payment data indicates a successful payment. | STRING |
| HIGH | addons/payment_aps/tests/test_payment_transaction.py | 0 | test that the transaction state is set to 'done' when the payment data indicates a successful payment. | STRING |
| HIGH | …payment_mercado_pago/tests/test_payment_transaction.py | 0 | test that the transaction state is set to 'done' when the payment data indicates a successful payment. | STRING |
| HIGH | …ons/payment_razorpay/tests/test_payment_transaction.py | 0 | test that the transaction state is set to 'done' when the payment data indicates a successful payment. | STRING |
| HIGH | addons/payment_dpo/tests/test_payment_transaction.py | 0 | test that the transaction state is set to 'done' when the payment data indicates a successful payment. | STRING |
| HIGH | …/payment_flutterwave/tests/test_payment_transaction.py | 0 | test that the transaction state is set to 'done' when the payment data indicates a successful payment. | STRING |
| HIGH | addons/payment_iyzico/tests/test_payment_transaction.py | 0 | test that the transaction state is set to 'done' when the payment data indicates a successful payment. | STRING |
| HIGH | …dons/payment_asiapay/tests/test_payment_transaction.py | 0 | test that the transaction state is set to 'done' when the payment data indicates a successful payment. | STRING |
| HIGH | addons/payment_nuvei/tests/test_payment_transaction.py | 0 | test that the transaction state is set to 'done' when the payment data indicates a successful payment. | STRING |
| HIGH | addons/payment_redsys/tests/test_processing_flows.py | 0 | test that receiving a valid webhook notification triggers the processing of the payment data. | STRING |
| HIGH | addons/payment_dpo/tests/test_processing_flows.py | 0 | test that receiving a valid webhook notification triggers the processing of the payment data. | STRING |
| HIGH | addons/payment_ecpay/tests/test_processing_flows.py | 0 | test that receiving a valid webhook notification triggers the processing of the payment data. | STRING |
| HIGH | addons/payment_iyzico/tests/test_processing_flows.py | 0 | test that receiving a valid webhook notification triggers the processing of the payment data. | STRING |
| HIGH | addons/payment_authorize/tests/test_processing_flows.py | 0 | test that receiving a valid webhook notification triggers the processing of the payment data. | STRING |
| HIGH | …s/payment_toss_payments/tests/test_processing_flows.py | 0 | test that receiving a valid webhook notification triggers the processing of the payment data. | STRING |
| HIGH | addons/payment_aps/tests/test_processing_flows.py | 0 | test that receiving a valid webhook notification triggers the processing of the payment data. | STRING |
| HIGH | …ns/payment_mercado_pago/tests/test_processing_flows.py | 0 | test that receiving a valid webhook notification triggers the processing of the payment data. | STRING |
| HIGH | addons/payment_nuvei/tests/test_processing_flows.py | 0 | test that receiving a valid webhook notification triggers the processing of the payment data. | STRING |
| HIGH | addons/payment_razorpay/tests/test_processing_flows.py | 0 | test that receiving a valid webhook notification triggers the processing of the payment data. | STRING |
| HIGH | …ons/payment_flutterwave/tests/test_processing_flows.py | 0 | test that receiving a valid webhook notification triggers the processing of the payment data. | STRING |
| HIGH | addons/payment_asiapay/tests/test_processing_flows.py | 0 | test that receiving a valid webhook notification triggers the processing of the payment data. | STRING |
| HIGH | addons/payment_redsys/models/payment_provider.py | 0 | override of `payment` to enable additional features. | STRING |
| HIGH | addons/payment_authorize/models/payment_provider.py | 0 | override of `payment` to enable additional features. | STRING |
| HIGH | addons/payment_xendit/models/payment_provider.py | 0 | override of `payment` to enable additional features. | STRING |
| HIGH | addons/payment_mollie/models/payment_provider.py | 0 | override of `payment` to enable additional features. | STRING |
| HIGH | addons/payment_paypal/models/payment_provider.py | 0 | override of `payment` to enable additional features. | STRING |
| HIGH | addons/payment_demo/models/payment_provider.py | 0 | override of `payment` to enable additional features. | STRING |
| HIGH | addons/payment_worldline/models/payment_provider.py | 0 | override of `payment` to enable additional features. | STRING |
| HIGH | addons/payment_stripe/models/payment_provider.py | 0 | override of `payment` to enable additional features. | STRING |
| HIGH | addons/payment_mercado_pago/models/payment_provider.py | 0 | override of `payment` to enable additional features. | STRING |
| HIGH | addons/payment_razorpay/models/payment_provider.py | 0 | override of `payment` to enable additional features. | STRING |
| 278 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | odoo/logging.py | 163 | CODE | |
| LOW | odoo/netsvc.py | 42 | CODE | |
| LOW | odoo/sql_db.py | 663 | CODE | |
| LOW | odoo/tools/mail.py | 178 | CODE | |
| LOW | odoo/tools/mail.py | 291 | CODE | |
| LOW | odoo/tools/mail.py | 610 | CODE | |
| LOW | odoo/tools/facade.py | 41 | CODE | |
| LOW | odoo/tools/version_tag_reset.py | 28 | CODE | |
| LOW | odoo/tools/misc.py | 377 | CODE | |
| LOW | odoo/tools/misc.py | 562 | CODE | |
| LOW | odoo/tools/misc.py | 821 | CODE | |
| LOW | odoo/tools/misc.py | 1744 | CODE | |
| LOW | odoo/tools/speedscope.py | 223 | CODE | |
| LOW | odoo/tools/translate.py | 179 | CODE | |
| LOW | odoo/tools/translate.py | 1630 | CODE | |
| LOW | odoo/tools/translate.py | 1703 | CODE | |
| LOW | odoo/tools/translate.py | 2445 | CODE | |
| LOW | odoo/tools/translate.py | 2647 | CODE | |
| LOW | odoo/tools/translate.py | 244 | CODE | |
| LOW | odoo/tools/translate.py | 583 | CODE | |
| LOW | odoo/tools/translate.py | 1406 | CODE | |
| LOW | odoo/tools/translate.py | 1837 | CODE | |
| LOW | odoo/tools/translate.py | 1967 | CODE | |
| LOW | odoo/tools/translate.py | 2058 | CODE | |
| LOW | odoo/tools/translate.py | 2199 | CODE | |
| LOW | odoo/tools/config.py | 540 | CODE | |
| LOW | odoo/tools/config.py | 836 | CODE | |
| LOW | odoo/tools/config.py | 996 | CODE | |
| LOW | odoo/tools/config.py | 1031 | CODE | |
| LOW | odoo/tools/template_inheritance.py | 71 | CODE | |
| LOW | odoo/tools/template_inheritance.py | 109 | CODE | |
| LOW | odoo/tools/parse_version.py | 25 | CODE | |
| LOW | odoo/tools/date_utils.py | 129 | CODE | |
| LOW | odoo/tools/date_utils.py | 294 | CODE | |
| LOW | odoo/tools/date_utils.py | 333 | CODE | |
| LOW | odoo/tools/convert.py | 82 | CODE | |
| LOW | odoo/tools/convert.py | 692 | CODE | |
| LOW | odoo/tools/convert.py | 357 | CODE | |
| LOW | odoo/tools/intervals.py | 30 | CODE | |
| LOW | odoo/tools/intervals.py | 80 | CODE | |
| LOW | odoo/tools/intervals.py | 113 | CODE | |
| LOW | odoo/tools/appdirs.py | 76 | CODE | |
| LOW | odoo/tools/cloc.py | 90 | CODE | |
| LOW | odoo/tools/cloc.py | 120 | CODE | |
| LOW | odoo/tools/cloc.py | 353 | CODE | |
| LOW | odoo/tools/lru.py | 66 | CODE | |
| LOW | odoo/tools/osutil.py | 54 | CODE | |
| LOW | odoo/tools/barcode.py | 16 | CODE | |
| LOW | odoo/tools/view_validation.py | 51 | CODE | |
| LOW | odoo/tools/view_validation.py | 82 | CODE | |
| LOW | odoo/tools/sql.py | 824 | CODE | |
| LOW | odoo/tools/sql.py | 116 | CODE | |
| LOW | odoo/tools/profiler.py | 299 | CODE | |
| LOW | odoo/tools/profiler.py | 358 | CODE | |
| LOW | odoo/tools/profiler.py | 556 | CODE | |
| LOW | odoo/tools/profiler.py | 610 | CODE | |
| LOW | odoo/tools/image.py | 289 | CODE | |
| LOW | odoo/tools/image.py | 63 | CODE | |
| LOW | odoo/tools/set_expression.py | 483 | CODE | |
| LOW | odoo/tools/set_expression.py | 582 | CODE | |
| 1589 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | odoo/tools/business_data.py | 63 | except Exception: # noqa: BLE001 | CODE |
| HIGH | odoo/tools/mail.py | 959 | except UnicodeEncodeError: | CODE |
| HIGH | odoo/tools/misc.py | 1298 | except Exception: # noqa: BLE001 | CODE |
| HIGH | odoo/tools/misc.py | 972 | except KeyError: | CODE |
| HIGH | odoo/tools/config.py | 734 | except (OSError, ConfigParser.NoSectionError): | CODE |
| HIGH | odoo/tools/config.py | 1026 | except OSError: | CODE |
| HIGH | odoo/tools/config.py | 1028 | except ConfigParser.NoSectionError: | CODE |
| HIGH | odoo/tools/appdirs.py | 427 | except UnicodeError: | CODE |
| HIGH | odoo/tools/appdirs.py | 425 | except ImportError: | CODE |
| HIGH | odoo/tools/cloc.py | 132 | except Exception: | CODE |
| HIGH | odoo/tools/bank_account_number.py | 113 | except ValidationError: | CODE |
| HIGH | odoo/tools/func.py | 124 | except AttributeError: | CODE |
| HIGH | odoo/tools/pdf/__init__.py | 34 | except ImportError: | CODE |
| HIGH | odoo/tools/safe_eval/runtime.py | 373 | except (ValueError, TypeError, KeyError): | CODE |
| HIGH | odoo/addons/test_http/tests/test_echo_reply.py | 206 | except requests.exceptions.ConnectionError: | CODE |
| HIGH | …addons/test_base/tests/test_orm/test_ir_qweb_fields.py | 28 | except KeyError: | CODE |
| HIGH | …oo/addons/test_base/tests/test_modules/test_loading.py | 30 | except ParseError: | CODE |
| HIGH | odoo/addons/base/models/ir_mail_server.py | 100 | except idna.IDNAError: | CODE |
| HIGH | odoo/addons/base/models/ir_mail_server.py | 335 | except Exception: | CODE |
| HIGH | odoo/addons/base/models/ir_model.py | 1128 | except KeyError: | CODE |
| HIGH | odoo/addons/base/models/ir_model.py | 2702 | except psycopg2.ProgrammingError: | CODE |
| HIGH | odoo/addons/base/models/ir_http.py | 205 | except TypeError: | CODE |
| HIGH | odoo/addons/base/models/ir_attachment.py | 171 | except FileNotFoundError: | CODE |
| HIGH | odoo/addons/base/models/ir_attachment.py | 182 | except FileExistsError: | CODE |
| HIGH | odoo/addons/base/models/ir_attachment.py | 1138 | except OSError: | CODE |
| HIGH | odoo/addons/base/models/ir_attachment.py | 347 | except FileNotFoundError: | CODE |
| HIGH | odoo/addons/base/models/ir_attachment.py | 364 | except FileNotFoundError: | CODE |
| HIGH | odoo/addons/base/models/ir_attachment.py | 1065 | except FileExistsError: | CODE |
| HIGH | odoo/addons/base/models/ir_ui_view.py | 400 | except ValueError as e: | CODE |
| HIGH | odoo/addons/base/models/ir_ui_view.py | 629 | except (etree.ParseError, ValueError, TypeError): | CODE |
| HIGH | odoo/addons/base/models/ir_qweb.py | 910 | except Exception: # noqa: BLE001 | CODE |
| HIGH | odoo/addons/base/models/res_users.py | 1106 | except Exception: | CODE |
| HIGH | odoo/addons/base/models/res_users.py | 1110 | except Exception: | CODE |
| HIGH | odoo/addons/base/models/assetsbundle.py | 1094 | except StopIteration: | CODE |
| HIGH | odoo/addons/base/models/assetsbundle.py | 810 | except Exception: # most likely nor a file or an attachment, skip it | CODE |
| HIGH | odoo/addons/base/models/ir_actions.py | 1427 | except ValueError: | CODE |
| HIGH | odoo/addons/base/models/ir_actions.py | 1355 | except Exception: | CODE |
| HIGH | odoo/tests/form.py | 1046 | except ValueError: | CODE |
| HIGH | odoo/tests/common.py | 2054 | except websocket.WebSocketConnectionClosedException: | CODE |
| HIGH | odoo/tests/common.py | 2163 | except CancelledError: | CODE |
| HIGH | odoo/tests/common.py | 2658 | except AttributeError: | CODE |
| HIGH | odoo/tests/common.py | 1524 | except AttributeError: | CODE |
| HIGH | odoo/tests/common.py | 2099 | except CancelledError: | CODE |
| HIGH | odoo/tests/case.py | 202 | except AttributeError: # testMethod may not have a __unittest_skip__ or __unittest_skip_why__ | CODE |
| HIGH | odoo/cli/server.py | 79 | except OSError: | CODE |
| HIGH | odoo/cli/server.py | 112 | except db.DatabaseExists: | CODE |
| HIGH | odoo/cli/shell.py | 101 | except ImportError: | CODE |
| HIGH | odoo/cli/start.py | 57 | except DatabaseExists as e: | CODE |
| HIGH | odoo/_monkeypatches/werkzeug.py | 156 | except (ValueError, TypeError): | CODE |
| HIGH | odoo/orm/models.py | 6127 | except AttributeError: | CODE |
| HIGH | odoo/orm/models.py | 6140 | except AttributeError: | CODE |
| HIGH | odoo/orm/models.py | 6148 | except AttributeError: | CODE |
| HIGH | odoo/orm/models.py | 6158 | except AttributeError: | CODE |
| HIGH | odoo/orm/models.py | 1031 | except Exception: | CODE |
| HIGH | odoo/orm/fields.py | 1851 | except KeyError: | CODE |
| HIGH | odoo/orm/fields.py | 2048 | except MissingError: | CODE |
| HIGH | odoo/orm/fields.py | 2078 | except AccessError: | CODE |
| HIGH | odoo/orm/registry.py | 685 | except KeyError: | CODE |
| HIGH | odoo/orm/model_classes.py | 151 | except AttributeError: | CODE |
| HIGH | odoo/orm/domains.py | 1084 | except (NotImplementedError, UserError): | CODE |
| 97 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | odoo/tools/mail.py | 974 | >>> email_anonymize('admin@example.com') | STRING |
| LOW | odoo/tools/mail.py | 1053 | >>> formataddr(('John Doe', 'johndoe@example.com')) | STRING |
| LOW | odoo/tools/mail.py | 1054 | '"John Doe" <johndoe@example.com>' | STRING |
| LOW | odoo/tools/translate.py | 86 | 'string', 'add-label', 'help', 'sum', 'avg', 'confirm', 'placeholder', 'alt', 'title', 'aria-label', | CODE |
| LOW | odoo/tools/translate.py | 158 | "placeholder", | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 48 | 'placeholder': '9780471117094', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 71 | 'placeholder': 'ALJ91402501L', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 77 | 'placeholder': '20055361682', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 83 | 'placeholder': 'ATU12345675', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 89 | 'placeholder': '83 914 571 673', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 101 | 'placeholder': 'BE0477472701', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 107 | 'placeholder': 'BG1234567892', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 113 | 'placeholder': _lt('16.727.230/0001-97'), | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 120 | 'placeholder': _lt('CHE-123.456.788 TVA or CHE-123.456.788 MWST or CHE-123.456.788 IVA'), | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 125 | 'placeholder': '76086428-5', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 130 | 'placeholder': '213123432-1', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 135 | 'placeholder': '3101012009', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 141 | 'placeholder': 'CY10259033P', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 147 | 'placeholder': 'CZ12345679', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 153 | 'placeholder': _lt('DE123456788 or 12/345/67890'), | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 159 | 'placeholder': 'DK12345674', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 164 | 'placeholder': _lt('1-01-85004-3 or 101850043'), | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 170 | 'placeholder': _lt('1792060346001 or 1792060346'), | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 176 | 'placeholder': 'EE123456780', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 182 | 'placeholder': 'ESA12345674', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 188 | 'placeholder': 'FI12345671', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 194 | 'placeholder': 'FR23334175221', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 200 | 'placeholder': _lt('GB123456782 or XI123456782'), | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 207 | 'placeholder': 'EL123456783', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 212 | 'placeholder': '576937K', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 218 | 'placeholder': 'HR01234567896', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 225 | 'placeholder': _lt('12345678-1-11'), | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 230 | 'placeholder': '1234567890123456', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 236 | 'placeholder': 'IE1234567FA', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 241 | 'placeholder': _lt('XXXXXXXXX [9 digits] and it should respect the Luhn algorithm checksum'), | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 246 | 'placeholder': '12AAAAA1234AAZA', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 252 | 'placeholder': 'IS062199', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 259 | 'placeholder': 'IT12345670017', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 266 | 'placeholder': 'T7000012050002', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 271 | 'placeholder': _lt('123-45-67890 or 1234567890'), | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 282 | 'placeholder': 'LT123456715', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 288 | 'placeholder': 'LU12345613', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 294 | 'placeholder': 'LV41234567891', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 299 | 'placeholder': '12345678', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 305 | 'placeholder': 'FR53000004605', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 311 | 'placeholder': '02655284', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 317 | 'placeholder': 'MK4057009501106', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 323 | 'placeholder': 'MT12345634', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 328 | 'placeholder': 'GODE561231GR8', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 339 | 'placeholder': 'NL123456782B90', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 344 | 'placeholder': 'NO123456785', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 349 | 'placeholder': _lt('49-098-576 or 49098576'), | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 361 | 'placeholder': _lt('10XXXXXXXXY or 20XXXXXXXXY or 15XXXXXXXXY or 16XXXXXXXXY or 17XXXXXXXXY'), | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 366 | 'placeholder': '123-456-789-123', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 372 | 'placeholder': 'PL1234567883', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 378 | 'placeholder': 'PT123456789', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 384 | 'placeholder': _lt('RO1234567897 or 8001011234567 or 9000123456789'), | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 390 | 'placeholder': 'RS101134702', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 395 | 'placeholder': '123456789047', | CODE |
| LOW⚡ | odoo/tools/partner_identifiers.py | 400 | 'placeholder': _lt('310175397400003 [Fifteen digits, first and last digits should be "3"]'), | CODE |
| 608 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | odoo/netsvc.py | 134 | except Exception: | CODE |
| LOW | odoo/loglevels.py | 15 | except Exception: | CODE |
| LOW | odoo/sql_db.py | 179 | except Exception: | CODE |
| LOW | odoo/sql_db.py | 419 | except Exception as e: | CODE |
| LOW | odoo/sql_db.py | 573 | except Exception: | CODE |
| LOW | odoo/sql_db.py | 584 | except Exception: | CODE |
| LOW | odoo/tools/business_data.py | 63 | except Exception: # noqa: BLE001 | STRING |
| LOW⚡ | odoo/tools/mail.py | 471 | except Exception: | CODE |
| LOW | odoo/tools/misc.py | 913 | except Exception: | CODE |
| LOW | odoo/tools/misc.py | 1298 | except Exception: # noqa: BLE001 | CODE |
| LOW | odoo/tools/misc.py | 1302 | except Exception: # noqa: BLE001 | CODE |
| LOW | odoo/tools/misc.py | 1472 | except Exception: | CODE |
| LOW | odoo/tools/misc.py | 1527 | except Exception: | CODE |
| LOW | odoo/tools/translate.py | 1830 | except Exception: | CODE |
| LOW | odoo/tools/translate.py | 2053 | except Exception: | STRING |
| LOW | odoo/tools/convert.py | 107 | except Exception: | CODE |
| LOW | odoo/tools/convert.py | 642 | except Exception as e: | CODE |
| LOW | odoo/tools/convert.py | 797 | except Exception: | CODE |
| LOW | odoo/tools/cloc.py | 60 | except Exception: | CODE |
| LOW | odoo/tools/cloc.py | 132 | except Exception: | CODE |
| MEDIUM | odoo/tools/cloc.py | 50 | def parse_py(self, s): | CODE |
| LOW | odoo/tools/osutil.py | 112 | except Exception: | STRING |
| LOW | odoo/tools/barcode.py | 33 | except Exception: # noqa: BLE001 | CODE |
| LOW | odoo/tools/view_validation.py | 308 | except Exception: | CODE |
| LOW | odoo/tools/profiler.py | 516 | except Exception: | CODE |
| LOW | odoo/tools/func.py | 90 | except Exception: | CODE |
| LOW | odoo/tools/pdf/__init__.py | 349 | except Exception: # noqa: BLE001 | CODE |
| LOW | odoo/tools/safe_eval/evaluation.py | 309 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | odoo/addons/test_http/tests/test_session.py | 176 | except Exception: # noqa: BLE001 | CODE |
| LOW | odoo/addons/test_http/tests/test_session.py | 184 | except Exception: # noqa: BLE001 | CODE |
| LOW | odoo/addons/test_tests/tests/test_test_suite.py | 91 | except Exception as e: | CODE |
| LOW | odoo/addons/test_tests/tests/test_test_suite.py | 376 | except Exception: | STRING |
| LOW | odoo/addons/test_tests/tests/test_test_suite.py | 411 | except Exception: | STRING |
| MEDIUM | odoo/addons/test_tests/tests/test_test_suite.py | 408 | def alpha(): | CODE |
| LOW | …oo/addons/test_base/tests/test_tools/test_safe_eval.py | 588 | except Exception: | CODE |
| LOW | …oo/addons/test_base/tests/test_tools/test_safe_eval.py | 607 | except Exception: | CODE |
| LOW | …oo/addons/test_base/tests/test_tools/test_safe_eval.py | 651 | except Exception: | CODE |
| MEDIUM | …oo/addons/test_base/tests/test_tools/test_safe_eval.py | 604 | def gen(): | CODE |
| MEDIUM | …oo/addons/test_base/tests/test_tools/test_safe_eval.py | 648 | def gen(): | CODE |
| LOW | odoo/addons/test_lint/tests/test_index.py | 154 | except Exception as exc: # noqa: BLE001 - report, don't abort the sweep | CODE |
| LOW | odoo/addons/test_lint/tests/test_index.py | 287 | except Exception: | CODE |
| LOW | odoo/addons/test_lint/tests/test_sql_injection.py | 511 | except Exception: | CODE |
| LOW | odoo/addons/base/tests/test_ir_actions.py | 93 | except Exception: | STRING |
| LOW | odoo/addons/base/wizard/base_import_language.py | 41 | except Exception as e: | CODE |
| LOW | odoo/addons/base/models/ir_default.py | 41 | except Exception: # noqa: BLE001 | CODE |
| LOW | odoo/addons/base/models/ir_default.py | 112 | except Exception: | CODE |
| LOW | odoo/addons/base/models/ir_access.py | 210 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | odoo/addons/base/models/ir_mail_server.py | 328 | except Exception as e: | CODE |
| LOW | odoo/addons/base/models/ir_mail_server.py | 335 | except Exception: | CODE |
| LOW | odoo/addons/base/models/ir_mail_server.py | 833 | except Exception as e: | CODE |
| MEDIUM | odoo/addons/base/models/ir_model.py | 842 | def _onchange_relation(self): | CODE |
| MEDIUM | odoo/addons/base/models/ir_model.py | 1442 | def lookup_group(field, xmlid): | CODE |
| LOW | odoo/addons/base/models/ir_model.py | 756 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | odoo/addons/base/models/ir_model.py | 1096 | except Exception: | CODE |
| LOW | odoo/addons/base/models/ir_model.py | 1986 | except Exception: | CODE |
| LOW | odoo/addons/base/models/ir_model.py | 2345 | except Exception: # pylint: disable=broad-except | CODE |
| LOW | odoo/addons/base/models/ir_model.py | 2483 | except Exception: | STRING |
| LOW | odoo/addons/base/models/ir_model.py | 2643 | except Exception: | STRING |
| LOW | odoo/addons/base/models/ir_autovacuum.py | 60 | except Exception: | CODE |
| LOW | odoo/addons/base/models/ir_http.py | 402 | except Exception: # noqa: BLE001 | CODE |
| 396 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | odoo/init.py | 21 | # and the last generation was removed in 3.14. | COMMENT |
| LOW | odoo/tools/translate.py | 2521 | if line_end_pos == -1: | COMMENT |
| LOW | odoo/tools/lru.py | 21 | assert count > 0, "LRU needs a positive count" | COMMENT |
| LOW | odoo/tools/pdf/__init__.py | 61 | # compatibility aliases | COMMENT |
| LOW | odoo/tools/babel/javascript_extractor.py | 21 | # e.g. ((1, 'c'), 2) | COMMENT |
| LOW | odoo/tools/babel/python_extractor.py | 21 | # -> Indicates the first argument is a context key and the second is the translatable term, like in `pgettext` | COMMENT |
| LOW | odoo/tools/babel/python_extractor.py | 221 | # so we don't wan't to extract it. | COMMENT |
| LOW | odoo/tools/arabic_reshaper/letters.py | 1 | # The following code was copied from the original author's repository | COMMENT |
| LOW | odoo/tools/arabic_reshaper/__init__.py | 1 | # The following code was copied from the original author's repository | COMMENT |
| LOW | odoo/addons/test_main_flows/__init__.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | odoo/addons/test_http/tests/test_device.py | 581 | # - device A detected at time T0: info A in session + new log A | COMMENT |
| LOW | odoo/addons/test_web/tests/test_onchange.py | 981 | # 'total' depends on 'base' and 'line_ids.subtotal' | COMMENT |
| LOW | …oo/addons/test_base/tests/test_tools/test_translate.py | 761 | # TODO Currently, the unique constraint doesn't work for translatable field | COMMENT |
| LOW | …oo/addons/test_base/tests/test_tools/test_translate.py | 1921 | COMMENT | |
| LOW | odoo/addons/test_base/tests/test_orm/test_uninstall.py | 1 | # Part of Odoo. See LICENSE file for full copyright and licensing details. | COMMENT |
| LOW | odoo/addons/test_base/tests/test_orm/test_uninstall.py | 21 | # with reg.cursor() as cr: | COMMENT |
| LOW | odoo/addons/test_base/tests/test_orm/test_uninstall.py | 41 | # Registry.new(common.get_db_name(), update_module=True) | COMMENT |
| LOW | odoo/addons/test_base/tests/test_orm/test_uninstall.py | 61 | # with environment() as env: | COMMENT |
| LOW | odoo/addons/test_base/tests/test_orm/test_uninstall.py | 81 | # self.assertFalse(remaining_constraints) | COMMENT |
| LOW | …ons/test_base/tests/test_orm/test_domain_expression.py | 421 | # will return expectedly nothing (our ids always begin at 1). | COMMENT |
| LOW | odoo/addons/test_base/tests/test_orm/test_fields.py | 4061 | @tagged('at_install', '-post_install') # LEGACY at_install | COMMENT |
| LOW | …/addons/test_lint/tests/_odoo_checker_sql_injection.py | 281 | elif not self._allowable(node.right): | COMMENT |
| LOW | odoo/addons/test_lint/tests/test_override_signatures.py | 221 | COMMENT | |
| LOW | odoo/addons/base/tests/test_res_groups_data.py | 361 | user.group_ids += b | COMMENT |
| LOW | odoo/addons/base/tests/test_res_currency.py | 201 | #try_roundtrip(-2.6748955, -2.674896, '2000-01-02') | COMMENT |
| LOW | odoo/addons/base/tests/test_ir_actions_report.py | 421 | # leaving this as reference but this is to fragile to make a strict assertion | COMMENT |
| LOW | odoo/addons/base/models/ir_fields.py | 141 | # if the error is linked to a matching error, the error is a tuple | COMMENT |
| LOW | odoo/addons/base/models/ir_sequence.py | 381 | if vals.get('number_next'): | COMMENT |
| LOW | odoo/addons/base/models/ir_exports.py | 101 | # Works the following way: | COMMENT |
| LOW | odoo/addons/base/models/ir_logging.py | 1 | # Part of Odoo. See LICENSE file for full copyright and licensing details. | COMMENT |
| LOW | odoo/addons/base/models/ir_logging.py | 41 | # DROP CONSTRAINT unconditionally takes an ACCESS EXCLUSIVE lock | COMMENT |
| LOW | odoo/addons/base/models/res_groups.py | 101 | # A implies B C A | COMMENT |
| LOW | odoo/addons/base/models/ir_ui_view.py | 1001 | # 2 3 4: [6], # primary view | COMMENT |
| LOW | odoo/addons/base/models/ir_ui_view.py | 1361 | parent.text = (parent.text or '') + tail | COMMENT |
| LOW | odoo/addons/base/models/website.py | 1 | from odoo import api, fields, models | COMMENT |
| LOW | odoo/addons/base/models/ir_cron.py | 321 | ``psycopg2.errors.SerializationFailure`` in case the job | COMMENT |
| LOW | odoo/addons/base/models/ir_cron.py | 341 | # | COMMENT |
| LOW | odoo/addons/base/models/res_partner.py | 1921 | def check_vat_ch(self, vat): | COMMENT |
| LOW | odoo/tests/common.py | 2821 | update_session_token(self.session, env) | COMMENT |
| LOW | odoo/http/server.py | 21 | from .router import root | COMMENT |
| LOW | odoo/http/server.py | 61 | # RFC9112 says in #3.2: | COMMENT |
| LOW | odoo/http/server.py | 121 | res=res or self.h11response, | COMMENT |
| LOW | odoo/orm/models.py | 1861 | row_values = self.env.execute_query(query.select(*select_args)) | COMMENT |
| LOW | odoo/orm/models.py | 2421 | return result[0]["definition"] if result else {} | COMMENT |
| LOW | odoo/orm/models.py | 3881 | # protected while being written, the field's current value | COMMENT |
| LOW | odoo/orm/models.py | 3901 | COMMENT | |
| LOW | odoo/orm/models.py | 3921 | # indirectly depends on the many2one field 'order_id' linking lines | COMMENT |
| LOW | odoo/orm/models.py | 3941 | # which remove the field from the recompute list while all the | COMMENT |
| LOW | odoo/orm/models.py | 6281 | # The triggers of a field F is a tree that contains the fields that | COMMENT |
| LOW | odoo/orm/fields.py | 361 | # | COMMENT |
| LOW | odoo/orm/fields.py | 381 | # | COMMENT |
| LOW | odoo/orm/fields.py | 741 | # | COMMENT |
| LOW | odoo/orm/fields.py | 1841 | except KeyError: | COMMENT |
| LOW | odoo/orm/fields.py | 1861 | # stored and not (computed and readonly) -> fetch from origin | COMMENT |
| LOW | odoo/orm/model_classes.py | 41 | # | COMMENT |
| LOW | odoo/orm/model_classes.py | 61 | # carries inferred metadata that is shared between all the recordsets of that | COMMENT |
| LOW | odoo/orm/model_classes.py | 81 | # class B(Model): # B1 / / \ \ | COMMENT |
| LOW | odoo/orm/model_classes.py | 101 | # presence or absence of each model definition, which itself depends on the | COMMENT |
| LOW | odoo/orm/model_classes.py | 121 | # In the example below, the field 'foo' appears once on its model definition. | COMMENT |
| LOW | odoo/orm/fields_properties.py | 181 | return Property(value or {}, self, record) | COMMENT |
| 288 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | odoo/tools/translate.py | 2267 | SET %(field_name)s = jsonb_strip_nulls(%(field_name)s || t.value) | CODE |
| HIGH | odoo/tools/translate.py | 2672 | WHEN t.noupdate IS FALSE THEN t.value || m."{field.name}" | CODE |
| HIGH⚡ | odoo/tools/translate.py | 2295 | value_query = SQL("m.%(field)s || merged.noupdate_value || merged.update_value", field=field) | STRING |
| HIGH⚡ | odoo/tools/translate.py | 2297 | value_query = SQL("merged.noupdate_value || m.%(field)s || merged.update_value", field=field) | STRING |
| HIGH⚡ | odoo/tools/translate.py | 2299 | value_query = SQL("merged.noupdate_value || merged.update_value || m.%(field)s", field=field) | STRING |
| HIGH | odoo/addons/test_http/tests/test_echo_reply.py | 109 | self.assertEqual(res.text, r'{"jsonrpc": "2.0", "id": 1234, "result": null}', "result must not be absent") | STRING |
| HIGH | odoo/addons/base/tests/test_res_groups_data.py | 446 | test_reduce_to_light(proj_user, null) | STRING |
| HIGH | odoo/addons/base/tests/test_res_groups_data.py | 447 | test_reduce_to_light(proj_manager, null) | STRING |
| HIGH⚡ | odoo/addons/base/tests/test_res_groups_data.py | 459 | test_reduce_to_light(team_leader, null) | STRING |
| HIGH⚡ | odoo/addons/base/tests/test_res_groups_data.py | 460 | test_reduce_to_light(office_manager, null) | STRING |
| HIGH⚡ | odoo/addons/base/tests/test_res_groups_data.py | 461 | test_reduce_to_light(cto, null) | STRING |
| HIGH⚡ | odoo/addons/base/tests/test_res_groups_data.py | 466 | test_reduce_to_light(team_leader + proj_manager, null) | STRING |
| HIGH | odoo/addons/base/wizard/base_partner_merge.py | 323 | SET %(field)s = source_agg.value || COALESCE(%(table)s.%(field)s, '{}'::jsonb) | STRING |
| HIGH | odoo/addons/base/models/res_users.py | 1624 | name varchar not null, | CODE |
| HIGH | odoo/addons/base/models/res_users.py | 1629 | key varchar not null, | CODE |
| HIGH | odoo/tests/common.py | 2307 | # the undefined remoteobject is literally just {type: undefined}... | COMMENT |
| HIGH | odoo/tests/common.py | 811 | inner.push(init.pop_all()) | CODE |
| HIGH⚡ | odoo/http/dispatcher.py | 347 | --> {"jsonrpc": "2.0", "method": "call", "params": {"arg1": "val1" }, "id": null} | CODE |
| HIGH⚡ | odoo/http/dispatcher.py | 349 | <-- {"jsonrpc": "2.0", "result": { "res1": "val1" }, "id": null} | CODE |
| HIGH⚡ | odoo/http/dispatcher.py | 353 | --> {"jsonrpc": "2.0", "method": "call", "params": {"arg1": "val1" }, "id": null} | CODE |
| HIGH⚡ | odoo/http/dispatcher.py | 355 | <-- {"jsonrpc": "2.0", "error": {"code": 1, "message": "End user error message.", "data": {"code": "codestring | CODE |
| HIGH | odoo/orm/fields.py | 1403 | # here the specified value for a company might be NULL e.g. '{"1": null}'::jsonb | COMMENT |
| HIGH | addons/l10n_sa_edi/models/account_journal.py | 671 | 'l10n_sa_compliance_csid_json': """{"requestID": 1234567890123, "dispositionMessage": "ISSUED", "binarySecur | CODE |
| HIGH⚡ | addons/website_slides/models/slide_channel.py | 482 | SET access_token = md5(md5(random()::varchar || id::varchar) || clock_timestamp()::varchar)::uuid::varchar | CODE |
| HIGH | addons/website/models/ir_module_module.py | 539 | o_menu_name = SQL('menu.name || %s' if overwrite else '%s || menu.name', update_jsonb) | STRING |
| HIGH | addons/crm/models/crm_lead.py | 2295 | # if stage_id is null, return 0 and bypass computation | COMMENT |
| HIGH | addons/crm/models/crm_lead.py | 2295 | # if stage_id is null, return 0 and bypass computation | COMMENT |
| HIGH | addons/crm/models/crm_lead.py | 2440 | probability = CASE WHEN (probability = automated_probability OR probability is null) | CODE |
| HIGH | addons/iot_drivers/tools/upgrade.py | 126 | "( mountpoint -q /proc || mount -t proc proc /proc ) && " | CODE |
| HIGH | addons/iot_drivers/tools/upgrade.py | 127 | "( mountpoint -q /sys || mount -t sysfs sys /sys ) && " | CODE |
| HIGH | addons/iot_drivers/tools/upgrade.py | 150 | 'apt-get upgrade -y && apt-get -y autoremove"' | CODE |
| HIGH | addons/account/models/account_move.py | 6464 | AND other.name LIKE '%%' || other.sequence_number || ms.suffix | CODE |
| HIGH | addons/account/models/account_move.py | 6475 | AND other.name LIKE '%%' || other.sequence_number || ms.suffix | CODE |
| HIGH | addons/account/models/account_account_tag.py | 128 | SET name = tag.name || jsonb_build_object(%(lang)s, substring(tag.name->>'en_US' FOR 1) || (report_li | STRING |
| HIGH | addons/stock/models/stock_move_line.py | 605 | # adjustment, enforce some rules on the `lot_id` field. If `quantity` is null, we unlink | COMMENT |
| HIGH | addons/web_tour/tests/test_tours.py | 124 | errors.push(module) | CODE |
| HIGH | addons/web_tour/tests/test_tours.py | 167 | errors.push(module) | CODE |
| HIGH | addons/survey/models/survey_question.py | 216 | "CHECK (is_scored_question != True OR question_type != 'datetime' OR answer_datetime is not null)", | CODE |
| HIGH | addons/survey/models/survey_question.py | 220 | "CHECK (is_scored_question != True OR question_type != 'date' OR answer_date is not null)", | CODE |
| HIGH⚡ | addons/l10n_it_edi/tools/remove_signature.py | 73 | if verify(loaded_data._pkcs7, null, null, null, out_buffer, flags) != 1: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | odoo/tools/pdf/incremental_writer.py | 69 | # Check if the original PDF uses an XRef stream | COMMENT |
| LOW⚡ | odoo/addons/base/tests/test_ir_ui_view.py | 1460 | # Check if the replacement inside the child view did not mess up the | STRING |
| LOW⚡ | odoo/addons/base/tests/test_ir_ui_view.py | 1468 | # Check if the replacement of the first worlds did not mess up the | STRING |
| LOW⚡ | odoo/addons/base/tests/test_ir_ui_view.py | 1518 | # Check if the replacement inside the child view did not mess up the | STRING |
| LOW⚡ | odoo/addons/base/tests/test_ir_ui_view.py | 1527 | # Check if the child view replacement of added nodes did not mess up | STRING |
| LOW | odoo/addons/base/tests/test_ir_ui_view.py | 1401 | # Check if the replacement inside the child view did not mess up the | STRING |
| LOW | odoo/addons/base/tests/test_ir_ui_view.py | 1409 | # Check if the replacement of the first worlds did not mess up the | STRING |
| LOW | odoo/addons/base/models/ir_mail_server.py | 679 | # Check if it's still possible to put the bounce address as smtp_from | COMMENT |
| LOW | odoo/addons/base/models/ir_attachment.py | 1082 | # Read the file's content in chunks to compute its checksum, | COMMENT |
| LOW | odoo/addons/base/models/ir_ui_view.py | 486 | # Check if we know how to apply inheritances | COMMENT |
| LOW | odoo/orm/fields_relational.py | 1394 | # Check if we have a custom init function | COMMENT |
| LOW | odoo/orm/fields.py | 1309 | # Check if we have a custom init function | COMMENT |
| LOW | odoo/orm/environments.py | 770 | # Check if the model registry must be reloaded | COMMENT |
| LOW | odoo/orm/environments.py | 782 | # Check if the model caches must be invalidated. | COMMENT |
| LOW | addons/auth_signup/tests/test_auth_signup.py | 65 | # Check if an email is sent to the new userw | COMMENT |
| LOW | addons/auth_signup/controllers/main.py | 51 | # Set user to public if they were not signed in by do_signup | COMMENT |
| LOW⚡ | addons/website_event_track/tests/test_website_event.py | 70 | # Check if app_icon is set | STRING |
| LOW⚡ | addons/website_event_track/tests/test_website_event.py | 73 | # Check if app_icon is a valid image | STRING |
| LOW | addons/website_event_track/controllers/event_track.py | 150 | # Check if there are any ongoing or upcoming tracks | COMMENT |
| LOW | addons/l10n_sa_edi/controllers/portal.py | 40 | # Check if building number and plot identification are filled if vat is filled and are 4 digits | COMMENT |
| LOW | addons/google_calendar/utils/google_event.py | 136 | # Check if ids are the same | COMMENT |
| LOW | addons/google_calendar/models/google_event_sync.py | 220 | # Check if it is a recurring event that has been rescheduled. | COMMENT |
| LOW | addons/calendar/tests/test_calendar_tour.py | 44 | self.assertFalse(event) # Check if the event has been correctly deleted | CODE |
| LOW | addons/calendar/tests/test_calendar_tour.py | 69 | self.assertEqual(attendee.state, 'declined') # Check if the event has been correctly declined | CODE |
| LOW | addons/payment_paypal/tests/test_paypal.py | 323 | # Set country to one where state is required | COMMENT |
| LOW | …ternative_sale/tests/test_purchase_alternative_sale.py | 55 | # Check if newly created PO is correctly linked to the base Sale Order | COMMENT |
| LOW | addons/sms/tests/test_sms_template.py | 40 | # Check if a member of group_user can only read on sms.template | COMMENT |
| LOW | addons/l10n_sa/models/account_move.py | 92 | # Check if the document is legal in Saudi | COMMENT |
| LOW | addons/mrp_subcontracting/tests/test_subcontracting.py | 35 | # Check if warehouse routes got RECREATED (instead of reused) | COMMENT |
| LOW | addons/mrp_subcontracting/tests/test_subcontracting.py | 48 | # Check if warehouse operation types (picking.type) got RECREATED (instead of reused) | COMMENT |
| LOW | addons/mail/models/mail_message.py | 1451 | # Check if user has access to the record before displaying a notification about it. | COMMENT |
| LOW | addons/sale_stock/models/stock.py | 128 | # Check if there is already a SO line for this product to get | COMMENT |
| LOW | addons/sale_stock/models/stock.py | 331 | # Check if there is already a SO line for this product to get | COMMENT |
| LOW | addons/web/tests/test_reports.py | 182 | # Check if the temporary session has been deleted | STRING |
| LOW | addons/web/tests/test_reports.py | 186 | # Check if temporary files have been deleted | STRING |
| LOW | addons/web/tests/test_res_users_settings.py | 66 | # Check if the setting is correctly created | COMMENT |
| LOW | addons/web/tests/test_res_users_settings.py | 75 | # Check if the settings are correctly formatted from the getter | COMMENT |
| LOW | addons/web/tests/test_res_users_settings.py | 93 | # Check if the setting is correctly updated | COMMENT |
| LOW | addons/web/tests/test_res_users_settings.py | 102 | # Check if the settings are correctly formatted after the update | COMMENT |
| LOW | addons/pos_stock/tests/test_anglo_saxon.py | 124 | # Check if there is account_move in the order. | COMMENT |
| LOW | addons/l10n_tw_edi_ecpay/models/account_move.py | 548 | # Check if the credit note has exchange difference, we need to add it to the sale amount | STRING |
| LOW | addons/website/tests/test_performance.py | 305 | # Check if `view.track` to track visitor or not | COMMENT |
| LOW | addons/website/models/website_menu.py | 84 | # Check if the url matches a website.page (to set the m2o relation), | COMMENT |
| LOW | addons/website/models/ir_ui_view.py | 148 | # Set key to avoid copy() to generate an unique key as we want the | COMMENT |
| LOW | addons/website/models/assets.py | 60 | # Check if the file to save had already been modified | COMMENT |
| LOW | addons/website/models/html_text_processor.py | 133 | # Check if terms are translated. | COMMENT |
| LOW | addons/website/controllers/main.py | 429 | # Check if stored version is still valid | COMMENT |
| LOW | addons/website/controllers/main.py | 2169 | # Check if the file is customized and get bundle/path info | COMMENT |
| LOW | addons/mrp/tests/test_bom.py | 2732 | # Assign operation to each bom/byproduct line | COMMENT |
| LOW | addons/mrp/models/mrp_workorder.py | 648 | # Check if this workcenter is better than the previous ones | COMMENT |
| LOW | addons/mrp/report/mrp_report_bom_structure.py | 721 | # Check if product is already in stock with enough quantity | COMMENT |
| LOW | addons/mrp/report/mrp_report_bom_structure.py | 876 | # Check if this workcenter is better than the previous ones | COMMENT |
| LOW | addons/crm/models/crm_lead.py | 956 | # Set date_open to today if it is an opp | COMMENT |
| LOW | addons/crm/models/crm_lead.py | 2727 | # Check if tag_ids is in the pls_fields and removed it from the list. The tags will be managed separately. | COMMENT |
| LOW | …drivers/iot_handlers/interfaces/printer_interface_L.py | 43 | # Check if new printers available, and configure them if so | COMMENT |
| LOW | …s/iot_drivers/iot_handlers/interfaces/tim_interface.py | 92 | # Check if the terminal is online and responsive | COMMENT |
| LOW | addons/payment_stripe/controllers/main.py | 242 | # Check if the timestamp is not too old | COMMENT |
| LOW | addons/sale_loyalty/tests/test_program_numbers.py | 84 | # Check if we have enough paid product to receive free product in case of a free product | COMMENT |
| LOW | addons/base_import/models/base_import.py | 1405 | # Check if the field is in import_field and is a relational (followed by /) | COMMENT |
| LOW | addons/product/tests/test_pricelist.py | 167 | # Set country to BE -> property defaults to EU pricelist | COMMENT |
| 83 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | odoo/tools/mail.py | 1112 | """ Parse contact name and email (given by text) in order to find contact | STRING |
| LOW | odoo/tools/misc.py | 432 | deps[item] # just set the default | CODE |
| MEDIUM | odoo/addons/test_tests/tests/test_test_suite.py | 93 | # will make it more robust to future changes and eventual mistakes | COMMENT |
| MEDIUM | odoo/addons/test_tests/tests/test_cases.py | 161 | # but this makes the test more clear and robust | COMMENT |
| MEDIUM | …test_base/tests/test_core/test_monkeypatch_zoneinfo.py | 31 | # the first one is more robust | COMMENT |
| LOW | odoo/addons/test_base/models/test_inherits.py | 22 | # We just create a new model | COMMENT |
| LOW | …/addons/test_lint/tests/_odoo_checker_sql_injection.py | 326 | # otherwise just return the original node for checking | COMMENT |
| MEDIUM | …oo/addons/test_assetsbundle/tests/test_assetsbundle.py | 681 | """ Checks that a bundle don't try hard to parse broken xml, and returns a comprehensive | STRING |
| MEDIUM | …oo/addons/test_assetsbundle/tests/test_assetsbundle.py | 693 | """ Checks that a bundle with multiple broken xml returns a comprehensive error message. | STRING |
| MEDIUM | …oo/addons/test_assetsbundle/tests/test_assetsbundle.py | 704 | """ Checks that a bundle with template without name returns a comprehensive error message. | STRING |
| MEDIUM | …oo/addons/test_assetsbundle/tests/test_assetsbundle.py | 715 | """ Checks that a bundle with a file in error (file not found, encoding error, or other) returns a comprehensive | STRING |
| MEDIUM | odoo/addons/base/models/ir_actions_report.py | 131 | """Used in the ir.actions.report form view in order to search naively after the view(s) | STRING |
| LOW | odoo/addons/base/models/ir_exports.py | 111 | # * if we have a normal field (length 1), just add it to the info | COMMENT |
| MEDIUM | odoo/addons/base/models/res_partner_bank.py | 157 | """ To be overridden by subclasses in order to support other account_types. | STRING |
| MEDIUM | odoo/addons/base/models/ir_qweb.py | 2751 | """ This special 't-call-assets' tag can be used in order to aggregate/minify javascript and css assets""" | STRING |
| LOW | odoo/addons/base/models/res_partner.py | 172 | #(e.g fields not present on the model). In that case we just return arch | COMMENT |
| MEDIUM | odoo/addons/base/models/ir_actions.py | 30 | """ Proxy of the `_logger` element in order to be used in server actions. | STRING |
| MEDIUM | odoo/tests/form.py | 481 | """ Validate & extract values, recursively in order to handle o2ms properly. | STRING |
| LOW | odoo/http/session.py | 571 | # the save_session is going to simply use session.sid to set a new cookie. | COMMENT |
| LOW | odoo/orm/fields_relational.py | 865 | # ('id', 'any!', Query), so we can just use the query | COMMENT |
| MEDIUM | odoo/orm/models.py | 3078 | """ Read from the database in order to fetch ``field`` (:class:`Field` | STRING |
| LOW | odoo/orm/fields_properties.py | 381 | # when we create the new record. But if we just set the value without changing | COMMENT |
| LOW | odoo/orm/fields_misc.py | 124 | # do not flush, just return the identifier | COMMENT |
| MEDIUM | addons/sale/models/sale_order_line.py | 1038 | """Convert the current record to a dictionary in order to use the generic taxes computation | STRING |
| LOW | addons/l10n_sa_edi/models/l10n_sa_edi_document.py | 261 | # no signed invoice. In this case, we just return the original content | COMMENT |
| MEDIUM | addons/stock_delivery/models/delivery_carrier.py | 95 | """ Some delivery carriers require a prefix to be sent in order to use custom | STRING |
| MEDIUM⚡ | addons/l10n_ar/tests/test_manual.py | 82 | """ RI partner with many lines in order to prove rounding error, with 4 decimals of precision for the | STRING |
| MEDIUM⚡ | addons/l10n_ar/tests/test_manual.py | 87 | """ RI partner with many lines in order to test rounding error, it is required to use a 4 decimal precision | STRING |
| MEDIUM⚡ | addons/l10n_ar/tests/test_manual.py | 92 | """ RI partner with many lines in order to test zero amount invoices y rounding error. it is required to | STRING |
| MEDIUM | addons/l10n_ar/models/res_partner.py | 66 | """ This will add some dash to the CUIT number (VAT AR) in order to show in his natural format: | STRING |
| MEDIUM | addons/portal_rating/models/rating_rating.py | 45 | """ Force publisher partner and date if not given in order to have | STRING |
| MEDIUM | addons/l10n_my_edi_pos/tests/test_myinvois_pos.py | 1040 | """ Generate a relatively complex use case, and compare it to an XML file in order to ensure correct generation | STRING |
| MEDIUM | addons/l10n_my_edi_pos/tests/test_myinvois_pos.py | 1091 | """ Generate a relatively complex use case, and compare it to an XML file in order to ensure correct generation | STRING |
| MEDIUM | addons/sms/models/mail_message.py | 7 | """ Override MailMessage class in order to add a new type: SMS messages. | STRING |
| MEDIUM | addons/mrp_subcontracting/models/stock_move.py | 20 | """ Compute if the action button in order to see moves raw is visible """ | STRING |
| MEDIUM | addons/mrp_subcontracting/models/stock_move.py | 80 | """ Open the produce wizard in order to register tracked components for | STRING |
| MEDIUM | addons/mail/models/mail_blacklist.py | 59 | """ Override _search in order to grep search on email field and make it | STRING |
| MEDIUM | addons/mail/models/ir_config_parameter.py | 20 | # prepares data for 'send' in conjunction with auto_commit=True in order | COMMENT |
| MEDIUM | addons/web/static/lib/fullcalendar/core/index.global.js | 89 | var css_248z = ":root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--f | CODE |
| MEDIUM | addons/web/static/lib/fullcalendar/core/index.global.js | 1165 | standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers | CODE |
| MEDIUM | …ns/web/static/lib/fullcalendar/daygrid/index.global.js | 667 | // Essentially, once you compute an element's height, never null-out. | COMMENT |
| MEDIUM | addons/web/controllers/report.py | 102 | """This function is used by 'action_manager_report.js' in order to trigger the download of | STRING |
| LOW | …_vendor/webauthn/helpers/validate_certificate_chain.py | 27 | # We have no root certs to chain back to, so just pass on validation | COMMENT |
| MEDIUM | addons/website/static/tests/builder/images.test.js | 339 | // in practice but the system should be robust to this case as the | COMMENT |
| MEDIUM | addons/website/static/src/scss/website.edit_mode.scss | 142 | // TODO implement something more robust. This is currently for our only | COMMENT |
| MEDIUM | addons/website/static/src/scss/website.backend.scss | 18 | // TODO: Find another way to set the height, not robust enough, | COMMENT |
| MEDIUM | addons/website/static/src/utils/images.js | 1 | // Definitely not the right location for this file !!! | COMMENT |
| MEDIUM | …lder/plugins/options/cover_properties_option_plugin.js | 34 | // robust enough. | COMMENT |
| MEDIUM | addons/mrp/tests/test_order.py | 1401 | """ Checks that, the production is robust against deletion of finished move.""" | STRING |
| MEDIUM⚡ | addons/mrp/models/stock_rule.py | 44 | """ If 'run' is called on a kit, this override is made in order to call | STRING |
| MEDIUM | addons/mrp/models/mrp_production.py | 1572 | """ returns 'assigned' if enough components are reserved in order to complete | STRING |
| MEDIUM | addons/crm/tests/test_crm_lead_assignment.py | 433 | """ Test assignment on a more high volume oriented test set in order to | STRING |
| MEDIUM | addons/crm/tests/test_performances.py | 124 | """ Test assignment on a more high volume oriented test set in order to | STRING |
| MEDIUM | …tic/src/views/forecast_kanban/forecast_kanban_model.js | 20 | // future, modify the original domain instead. It is not robust | COMMENT |
| LOW | …10n_ar_withholding/wizards/account_payment_register.py | 92 | # recompute against the amount just set. | COMMENT |
| MEDIUM | addons/bus/static/tests/mock_websocket.js | 93 | // Disable the interval until those tests are rewritten to be more robust. | COMMENT |
| LOW | …s/product/tests/test_product_attribute_value_config.py | 366 | # CASE: no combination, no variant, just return the only variant | COMMENT |
| LOW | addons/mass_mailing/tests/test_mailing_list.py | 63 | # simply set default list in context | COMMENT |
| LOW | addons/mass_mailing/controllers/main.py | 455 | # do not force lang, will simply use user context | COMMENT |
| MEDIUM | addons/l10n_vn_edi_viettel/models/account_move.py | 425 | """ Return the dict of data that will be sent to the api in order to create the invoice. """ | STRING |
| 43 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …oo/addons/test_base/tests/test_tools/test_translate.py | 2721 | # Step 1: record written in French; en_US == fr_FR == fr1_fr2 | STRING |
| LOW⚡ | …oo/addons/test_base/tests/test_tools/test_translate.py | 2727 | # Step 2: update EN with FR-keyed terms; nl still falls back to new en_US = en1_en2 | STRING |
| LOW⚡ | …oo/addons/test_base/tests/test_tools/test_translate.py | 2775 | # Step 1: record written in French; en_US == fr_FR == fr1_fr2 | STRING |
| LOW⚡ | …oo/addons/test_base/tests/test_tools/test_translate.py | 2781 | # Step 2: update NL first → only term2 'monde'→'wereld'; term1 not provided | STRING |
| LOW | …oo/addons/test_base/tests/test_tools/test_translate.py | 2740 | # Step 3: update NL → only term2 'monde'→'wereld'; term1 not provided | STRING |
| LOW | …oo/addons/test_base/tests/test_tools/test_translate.py | 2757 | # Step 4: overwrite=False NL update → try term1 'bonjour'→'hallo' | STRING |
| LOW | …oo/addons/test_base/tests/test_tools/test_translate.py | 2796 | # Step 3: update EN with FR-keyed terms; nl_NL is not in term_updates → unchanged | STRING |
| LOW | …oo/addons/test_base/tests/test_tools/test_translate.py | 2809 | # Step 4: overwrite=False NL update → try term1 'bonjour'→'hallo' | STRING |
| LOW | odoo/addons/test_base/tests/test_orm/test_modules_db.py | 44 | # Step 0: setup | COMMENT |
| LOW | odoo/addons/test_base/tests/test_orm/test_modules_db.py | 80 | # Step 1: create | COMMENT |
| LOW | odoo/addons/test_base/tests/test_orm/test_modules_db.py | 111 | # Step 2: duplicate | COMMENT |
| LOW⚡ | odoo/addons/test_base/tests/test_orm/test_modules_db.py | 132 | # Step 3: rename the duplicate | COMMENT |
| LOW⚡ | odoo/addons/test_base/tests/test_orm/test_modules_db.py | 141 | # Step 4: drop the duplicate | COMMENT |
| LOW⚡ | odoo/addons/test_base/tests/test_orm/test_modules_db.py | 148 | # Step 5: dump & restore | COMMENT |
| LOW | odoo/addons/test_base/tests/test_orm/test_modules_db.py | 166 | # Step 6: drop | COMMENT |
| LOW⚡ | odoo/addons/base/models/res_users_deletion.py | 65 | # Step 1: Delete User | COMMENT |
| LOW⚡ | odoo/addons/base/models/res_users_deletion.py | 85 | # Step 2: Delete Linked Partner | COMMENT |
| LOW | odoo/addons/base/models/res_partner.py | 1312 | The purpose of this function is to build and return an address formatted accordingly to the | STRING |
| LOW | …dons/pos_viva_com/static/src/app/hooks/use_viva_app.js | 30 | * target the receipt screen, so we need to check if the URL contains | COMMENT |
| LOW | …website_sale_slides/tests/test_course_purchase_flow.py | 42 | # Step 2: create a sale_order with the course product | COMMENT |
| LOW⚡ | …website_sale_slides/tests/test_course_purchase_flow.py | 57 | # Step 3: check that the customer is now a member of both channel | COMMENT |
| LOW⚡ | …website_sale_slides/tests/test_course_purchase_flow.py | 61 | # Step 4: Same test as salesman | COMMENT |
| LOW⚡ | …/web/static/tests/webclient/actions/load_state.test.js | 1678 | // Step 1: Navigate to Sale->Customers with explicit menu_id | COMMENT |
| LOW⚡ | …/web/static/tests/webclient/actions/load_state.test.js | 1685 | // Step 2: Emulate F5 reload | COMMENT |
| LOW | addons/web/static/lib/hoot/hoot_utils.js | 1351 | // Step 1: remove "exact" parts of the string query and add them as exact string | COMMENT |
| LOW | addons/web/static/lib/hoot/hoot_utils.js | 1363 | // Step 2: split remaining string query on white spaces and: | COMMENT |
| LOW⚡ | addons/web/static/src/core/bottom_sheet/bottom_sheet.js | 97 | // Step 1: Take measurements | COMMENT |
| LOW⚡ | addons/web/static/src/core/bottom_sheet/bottom_sheet.js | 100 | // Step 2: Apply Dimensions | COMMENT |
| LOW⚡ | addons/web/static/src/core/bottom_sheet/bottom_sheet.js | 103 | // Step 3: Set initial position | COMMENT |
| LOW⚡ | addons/web/static/src/core/bottom_sheet/bottom_sheet.js | 106 | // Step 4: Setup event handlers after everything has been properly resized and positioned | COMMENT |
| LOW⚡ | addons/web/static/src/core/bottom_sheet/bottom_sheet.js | 109 | // Step 5: Mark as ready | COMMENT |
| LOW | …/static/src/model/relational_model/relational_model.js | 923 | * occurrences to be updated. The purpose of this function is to find and | COMMENT |
| LOW | addons/web/controllers/pivot.py | 33 | # Step 1: writing col group headers | COMMENT |
| LOW | addons/web/controllers/pivot.py | 65 | # Step 2: writing measure headers | COMMENT |
| LOW | addons/web/controllers/pivot.py | 78 | # Step 4: writing data | COMMENT |
| LOW⚡ | …ides_survey/tests/test_course_certification_failure.py | 11 | # Step 1: create a simple certification | COMMENT |
| LOW⚡ | …ides_survey/tests/test_course_certification_failure.py | 52 | # Step 2: link the certification to a slide of category 'certification' | COMMENT |
| LOW⚡ | …ides_survey/tests/test_course_certification_failure.py | 60 | # Step 3: add portal user as member of the channel | COMMENT |
| LOW⚡ | …ides_survey/tests/test_course_certification_failure.py | 70 | # Step 4: fill in the created user_input with wrong answers | COMMENT |
| LOW⚡ | …ides_survey/tests/test_course_certification_failure.py | 81 | # Step 5: simulate a 'retry' | COMMENT |
| LOW⚡ | …ides_survey/tests/test_course_certification_failure.py | 91 | # Step 6: fill in the new user_input with wrong answers again | COMMENT |
| LOW⚡ | …ides_survey/tests/test_course_certification_failure.py | 101 | # Step 7: add portal user as member of the channel once again | COMMENT |
| LOW⚡ | …ides_survey/tests/test_course_certification_failure.py | 110 | # Step 8: fill in the created user_input with correct answers this time | COMMENT |
| LOW | addons/privacy_lookup/wizard/privacy_lookup_wizard.py | 56 | # Step 1: Retrieve users/partners liked to email address or name | COMMENT |
| LOW | addons/privacy_lookup/wizard/privacy_lookup_wizard.py | 101 | # Step 3: Retrieve info on other models | STRING |
| LOW⚡ | addons/project/controllers/project_sharing_chatter.py | 17 | So, we need to check if the chatter is for a task and if the res_id is a task | STRING |
| LOW⚡ | addons/project/controllers/project_sharing_chatter.py | 20 | If we do not have any token, then we need to check if the portal user is a follower of the project shared. | STRING |
| LOW⚡ | …_of_sale/static/tests/pos/tours/product_screen_tour.js | 594 | // Step 1: Search and add first variant | COMMENT |
| LOW⚡ | …_of_sale/static/tests/pos/tours/product_screen_tour.js | 604 | // Step 2: Search and add product without attributes (used to delay UI update) | COMMENT |
| LOW⚡ | …_of_sale/static/tests/pos/tours/product_screen_tour.js | 613 | // Step 3: Search and add second variant of the original product | COMMENT |
| LOW | …ons/point_of_sale/static/src/app/services/pos_store.js | 2072 | // We need to check if a preparation display is configured to avoid unnecessary sync | COMMENT |
| LOW | addons/l10n_hu_edi/models/res_company.py | 139 | # Step 1: Request a list of all transactions made during the specified time interval. | STRING |
| LOW | addons/l10n_hu_edi/models/res_company.py | 161 | # Step 2: Query unknown transactions in reverse order (latest first) and update invoice states accordingly. | STRING |
| LOW | addons/account/tests/test_account_account.py | 812 | # Step 2: Unmerge the account | COMMENT |
| LOW | addons/account/wizard/account_merge_wizard.py | 141 | # Step 1: Keep track of the company_ids and codes we should write on the account. | COMMENT |
| LOW⚡ | addons/account/wizard/account_merge_wizard.py | 157 | # Step 2: Check that we have write access to all the accounts and access to all the companies | COMMENT |
| LOW⚡ | addons/account/wizard/account_merge_wizard.py | 161 | # Step 3: Update records in DB. | COMMENT |
| LOW | addons/account/wizard/account_merge_wizard.py | 195 | # Step 4: Remove merged accounts | COMMENT |
| LOW | addons/account/wizard/account_merge_wizard.py | 208 | # Step 5: Write company_ids and codes on the account | COMMENT |
| LOW⚡ | addons/account/models/account_account.py | 1291 | # Step 1: Check access rights. | STRING |
| 17 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …oo/addons/test_base/tests/test_tools/test_translate.py | 2721 | # Step 1: record written in French; en_US == fr_FR == fr1_fr2 | STRING |
| LOW⚡ | …oo/addons/test_base/tests/test_tools/test_translate.py | 2727 | # Step 2: update EN with FR-keyed terms; nl still falls back to new en_US = en1_en2 | STRING |
| LOW⚡ | …oo/addons/test_base/tests/test_tools/test_translate.py | 2775 | # Step 1: record written in French; en_US == fr_FR == fr1_fr2 | STRING |
| LOW⚡ | …oo/addons/test_base/tests/test_tools/test_translate.py | 2781 | # Step 2: update NL first → only term2 'monde'→'wereld'; term1 not provided | STRING |
| LOW | …oo/addons/test_base/tests/test_tools/test_translate.py | 2740 | # Step 3: update NL → only term2 'monde'→'wereld'; term1 not provided | STRING |
| LOW | …oo/addons/test_base/tests/test_tools/test_translate.py | 2757 | # Step 4: overwrite=False NL update → try term1 'bonjour'→'hallo' | STRING |
| LOW | …oo/addons/test_base/tests/test_tools/test_translate.py | 2796 | # Step 3: update EN with FR-keyed terms; nl_NL is not in term_updates → unchanged | STRING |
| LOW | …oo/addons/test_base/tests/test_tools/test_translate.py | 2809 | # Step 4: overwrite=False NL update → try term1 'bonjour'→'hallo' | STRING |
| LOW | odoo/addons/test_base/tests/test_orm/test_modules_db.py | 44 | # Step 0: setup | COMMENT |
| LOW | odoo/addons/test_base/tests/test_orm/test_modules_db.py | 80 | # Step 1: create | COMMENT |
| LOW | odoo/addons/test_base/tests/test_orm/test_modules_db.py | 111 | # Step 2: duplicate | COMMENT |
| LOW⚡ | odoo/addons/test_base/tests/test_orm/test_modules_db.py | 132 | # Step 3: rename the duplicate | COMMENT |
| LOW⚡ | odoo/addons/test_base/tests/test_orm/test_modules_db.py | 141 | # Step 4: drop the duplicate | COMMENT |
| LOW⚡ | odoo/addons/test_base/tests/test_orm/test_modules_db.py | 148 | # Step 5: dump & restore | COMMENT |
| LOW | odoo/addons/test_base/tests/test_orm/test_modules_db.py | 166 | # Step 6: drop | COMMENT |
| LOW⚡ | odoo/addons/base/models/res_users_deletion.py | 65 | # Step 1: Delete User | COMMENT |
| LOW⚡ | odoo/addons/base/models/res_users_deletion.py | 85 | # Step 2: Delete Linked Partner | COMMENT |
| LOW | odoo/orm/fields_properties.py | 687 | # NOTE: This function misbehaves for groupby so that the query rowcount | COMMENT |
| LOW | …website_sale_slides/tests/test_course_purchase_flow.py | 42 | # Step 2: create a sale_order with the course product | COMMENT |
| LOW⚡ | …website_sale_slides/tests/test_course_purchase_flow.py | 57 | # Step 3: check that the customer is now a member of both channel | COMMENT |
| LOW⚡ | …website_sale_slides/tests/test_course_purchase_flow.py | 61 | # Step 4: Same test as salesman | COMMENT |
| LOW⚡ | …/web/static/tests/webclient/actions/load_state.test.js | 1678 | // Step 1: Navigate to Sale->Customers with explicit menu_id | COMMENT |
| LOW⚡ | …/web/static/tests/webclient/actions/load_state.test.js | 1685 | // Step 2: Emulate F5 reload | COMMENT |
| LOW | addons/web/static/lib/hoot/hoot_utils.js | 1351 | // Step 1: remove "exact" parts of the string query and add them as exact string | COMMENT |
| LOW | addons/web/static/lib/hoot/hoot_utils.js | 1363 | // Step 2: split remaining string query on white spaces and: | COMMENT |
| LOW⚡ | addons/web/static/src/core/bottom_sheet/bottom_sheet.js | 97 | // Step 1: Take measurements | COMMENT |
| LOW⚡ | addons/web/static/src/core/bottom_sheet/bottom_sheet.js | 100 | // Step 2: Apply Dimensions | COMMENT |
| LOW⚡ | addons/web/static/src/core/bottom_sheet/bottom_sheet.js | 103 | // Step 3: Set initial position | COMMENT |
| LOW⚡ | addons/web/static/src/core/bottom_sheet/bottom_sheet.js | 106 | // Step 4: Setup event handlers after everything has been properly resized and positioned | COMMENT |
| LOW⚡ | addons/web/static/src/core/bottom_sheet/bottom_sheet.js | 109 | // Step 5: Mark as ready | COMMENT |
| LOW | addons/web/controllers/pivot.py | 33 | # Step 1: writing col group headers | COMMENT |
| LOW | addons/web/controllers/pivot.py | 65 | # Step 2: writing measure headers | COMMENT |
| LOW | addons/web/controllers/pivot.py | 78 | # Step 4: writing data | COMMENT |
| LOW⚡ | …ides_survey/tests/test_course_certification_failure.py | 11 | # Step 1: create a simple certification | COMMENT |
| LOW⚡ | …ides_survey/tests/test_course_certification_failure.py | 52 | # Step 2: link the certification to a slide of category 'certification' | COMMENT |
| LOW⚡ | …ides_survey/tests/test_course_certification_failure.py | 60 | # Step 3: add portal user as member of the channel | COMMENT |
| LOW⚡ | …ides_survey/tests/test_course_certification_failure.py | 70 | # Step 4: fill in the created user_input with wrong answers | COMMENT |
| LOW⚡ | …ides_survey/tests/test_course_certification_failure.py | 81 | # Step 5: simulate a 'retry' | COMMENT |
| LOW⚡ | …ides_survey/tests/test_course_certification_failure.py | 91 | # Step 6: fill in the new user_input with wrong answers again | COMMENT |
| LOW⚡ | …ides_survey/tests/test_course_certification_failure.py | 101 | # Step 7: add portal user as member of the channel once again | COMMENT |
| LOW⚡ | …ides_survey/tests/test_course_certification_failure.py | 110 | # Step 8: fill in the created user_input with correct answers this time | COMMENT |
| LOW | addons/privacy_lookup/wizard/privacy_lookup_wizard.py | 56 | # Step 1: Retrieve users/partners liked to email address or name | COMMENT |
| LOW | addons/privacy_lookup/wizard/privacy_lookup_wizard.py | 101 | # Step 3: Retrieve info on other models | STRING |
| LOW⚡ | …_of_sale/static/tests/pos/tours/product_screen_tour.js | 594 | // Step 1: Search and add first variant | COMMENT |
| LOW⚡ | …_of_sale/static/tests/pos/tours/product_screen_tour.js | 604 | // Step 2: Search and add product without attributes (used to delay UI update) | COMMENT |
| LOW⚡ | …_of_sale/static/tests/pos/tours/product_screen_tour.js | 613 | // Step 3: Search and add second variant of the original product | COMMENT |
| LOW | addons/l10n_hu_edi/models/res_company.py | 139 | # Step 1: Request a list of all transactions made during the specified time interval. | STRING |
| LOW | addons/l10n_hu_edi/models/res_company.py | 161 | # Step 2: Query unknown transactions in reverse order (latest first) and update invoice states accordingly. | STRING |
| LOW | addons/account/tests/test_account_account.py | 812 | # Step 2: Unmerge the account | COMMENT |
| LOW | addons/account/wizard/account_merge_wizard.py | 141 | # Step 1: Keep track of the company_ids and codes we should write on the account. | COMMENT |
| LOW⚡ | addons/account/wizard/account_merge_wizard.py | 157 | # Step 2: Check that we have write access to all the accounts and access to all the companies | COMMENT |
| LOW⚡ | addons/account/wizard/account_merge_wizard.py | 161 | # Step 3: Update records in DB. | COMMENT |
| LOW | addons/account/wizard/account_merge_wizard.py | 195 | # Step 4: Remove merged accounts | COMMENT |
| LOW | addons/account/wizard/account_merge_wizard.py | 208 | # Step 5: Write company_ids and codes on the account | COMMENT |
| LOW⚡ | addons/account/models/account_account.py | 1291 | # Step 1: Check access rights. | STRING |
| LOW⚡ | addons/account/models/account_account.py | 1294 | # Step 2: Create new accounts. | STRING |
| LOW⚡ | addons/account/models/account_account.py | 1510 | # Step 4: Change check_company fields to only keep values compatible with the account's company, and update comp | STRING |
| LOW⚡ | addons/account/models/account_account.py | 1520 | # Step 5: Put a log in the chatter of the newly-created accounts | STRING |
| LOW | addons/account/models/account_account.py | 1311 | # Step 3: Update foreign keys in DB. | STRING |
| LOW⚡ | addons/l10n_ro_edi/tests/test_ro_edi.py | 22 | # Step 1: First send succeeds, index 'AA' received | COMMENT |
| 9 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | odoo/tools/mail.py | 425 | CODE | |
| LOW | odoo/tools/image.py | 289 | CODE | |
| LOW | odoo/tools/_vendor/send_file.py | 36 | CODE | |
| LOW | odoo/addons/base/tests/common.py | 518 | CODE | |
| LOW | odoo/addons/base/wizard/base_module_update.py | 30 | CODE | |
| LOW | odoo/addons/base/models/ir_mail_server.py | 355 | CODE | |
| LOW | odoo/addons/base/models/ir_mail_server.py | 524 | CODE | |
| LOW | odoo/addons/base/models/ir_mail_server.py | 773 | CODE | |
| LOW | odoo/addons/base/models/res_users_settings.py | 39 | CODE | |
| LOW | odoo/addons/base/models/ir_binary.py | 174 | CODE | |
| LOW | odoo/addons/base/models/ir_qweb.py | 2920 | CODE | |
| LOW | odoo/addons/base/models/assetsbundle.py | 47 | CODE | |
| LOW | odoo/tests/common.py | 451 | CODE | |
| LOW | odoo/tests/common.py | 2733 | CODE | |
| LOW | odoo/tests/common.py | 2877 | CODE | |
| LOW | odoo/http/response.py | 103 | CODE | |
| LOW | odoo/http/response.py | 140 | CODE | |
| LOW | odoo/orm/models.py | 3075 | CODE | |
| LOW | addons/website_event_track/models/event_track.py | 487 | CODE | |
| LOW | addons/website_event_track/controllers/webmanifest.py | 40 | CODE | |
| LOW | addons/website_event_track/controllers/webmanifest.py | 57 | CODE | |
| LOW | addons/website_event_track/controllers/event_track.py | 425 | CODE | |
| LOW | addons/l10n_sa_edi/tests/common.py | 249 | CODE | |
| LOW | addons/l10n_sa_edi/tests/common.py | 289 | CODE | |
| LOW | addons/l10n_sa_edi/tests/common.py | 327 | CODE | |
| LOW | addons/calendar/models/calendar_alarm_manager.py | 91 | CODE | |
| LOW | addons/pos_self_order/tests/self_order_common_test.py | 254 | CODE | |
| LOW | …oud_storage_google/utils/cloud_storage_google_utils.py | 112 | CODE | |
| LOW | addons/website_hr_recruitment/controllers/main.py | 26 | CODE | |
| LOW | …/mrp_subcontracting/report/mrp_report_bom_structure.py | 41 | CODE | |
| LOW | addons/mail/tools/discuss.py | 752 | CODE | |
| LOW | addons/mail/tests/common.py | 217 | CODE | |
| LOW | addons/mail/tests/common.py | 229 | CODE | |
| LOW | addons/mail/tests/common.py | 251 | CODE | |
| LOW | addons/mail/tests/common.py | 291 | CODE | |
| LOW | addons/mail/tests/common.py | 629 | CODE | |
| LOW | addons/mail/tests/common.py | 738 | CODE | |
| LOW | addons/mail/tests/common.py | 1063 | CODE | |
| LOW | addons/mail/models/mail_thread.py | 2256 | CODE | |
| LOW | addons/mail/models/mail_thread.py | 2815 | CODE | |
| LOW | addons/mail/models/mail_thread.py | 2993 | CODE | |
| LOW | addons/mail/models/mail_thread.py | 3594 | CODE | |
| LOW | addons/mail/models/discuss/discuss_channel.py | 2084 | CODE | |
| LOW | addons/web/models/models.py | 567 | CODE | |
| LOW | addons/web/controllers/binary.py | 65 | CODE | |
| LOW | addons/web/controllers/binary.py | 186 | CODE | |
| LOW | addons/web/controllers/webmanifest.py | 96 | CODE | |
| LOW | addons/web/controllers/pivot.py | 98 | CODE | |
| LOW | addons/website_slides/controllers/main.py | 535 | CODE | |
| LOW | …webauthn/registration/generate_registration_options.py | 42 | CODE | |
| LOW | addons/account_peppol/tools/peppol_iap_connector.py | 72 | CODE | |
| LOW | addons/website/models/ir_module_module.py | 417 | CODE | |
| LOW | addons/website/models/assets.py | 342 | CODE | |
| LOW | addons/website/models/website.py | 1398 | CODE | |
| LOW | addons/website/controllers/main.py | 905 | CODE | |
| LOW | addons/mrp/models/mrp_production.py | 1489 | CODE | |
| LOW | addons/mrp/report/mrp_report_bom_structure.py | 179 | CODE | |
| LOW | addons/populate/generators/generator.py | 114 | CODE | |
| LOW | addons/crm/tests/common.py | 313 | CODE | |
| LOW | addons/crm/wizard/crm_lead_lost.py | 30 | CODE | |
| 34 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | odoo/logging.py | 8 | __all__ = [ # noqa: RUF022 | CODE |
| LOW | odoo/tools/mail.py | 34 | __all__ = [ | CODE |
| LOW | odoo/tools/version_tag_reset.py | 22 | __all__ = ["reset_classes_tp_versions_used"] | CODE |
| LOW | odoo/tools/misc.py | 52 | __all__ = [ | CODE |
| LOW | odoo/tools/binary.py | 6 | __all__ = ['BinaryBytes', 'BinaryValue'] | CODE |
| LOW | odoo/tools/translate.py | 54 | __all__ = [ | CODE |
| LOW | odoo/tools/float_utils.py | 10 | __all__ = [ | CODE |
| LOW | odoo/tools/template_inheritance.py | 13 | __all__ = [] | CODE |
| LOW | odoo/tools/date_utils.py | 60 | __all__ = [ | CODE |
| LOW | odoo/tools/convert.py | 3 | __all__ = [ | CODE |
| LOW | odoo/tools/mimetypes.py | 13 | __all__ = [ | CODE |
| LOW | odoo/tools/lru.py | 6 | __all__ = ['LRU'] | CODE |
| LOW | odoo/tools/barcode.py | 6 | __all__ = ['check_barcode_encoding', 'createBarcodeDrawing', 'get_barcode_font'] | CODE |
| LOW | odoo/tools/xml_utils.py | 15 | __all__ = [ | CODE |
| LOW | odoo/tools/which.py | 42 | __all__ = ['F_OK', 'R_OK', 'W_OK', 'X_OK', 'defpath', 'defpathext', 'dirname', 'pathsep', 'which', 'which_files'] | CODE |
| LOW | odoo/tools/urls.py | 4 | __all__ = ['urljoin'] | CODE |
| LOW | odoo/tools/image.py | 24 | __all__ = ["image_process"] | CODE |
| LOW | odoo/tools/func.py | 10 | __all__ = [ | CODE |
| LOW | odoo/tools/pdf/incremental_pdf_merge.py | 297 | def update_cached_indirect_object(pdf_reader: PdfFileReader, obj_gen: int, obj_id: int, obj: Any) -> None: | CODE |
| LOW | odoo/tools/pdf/_pypdf2_2.py | 8 | __all__ = [ | CODE |
| LOW | odoo/tools/pdf/_pypdf.py | 9 | __all__ = [ | CODE |
| LOW | odoo/tools/arabic_reshaper/__init__.py | 21 | __all__ = ['reshape'] | CODE |
| LOW | odoo/tools/safe_eval/evaluation.py | 40 | __all__ = [ | CODE |
| LOW | odoo/tools/safe_eval/runtime.py | 46 | __all__ = [ | CODE |
| LOW | odoo/addons/test_lint/tests/test_docstring.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | odoo/addons/base/models/ir_cron.py | 574 | def _update_failure_count(self, job: dict, status: CompletionStatus) -> None: | STRING |
| LOW | odoo/tests/shell.py | 1 | __all__ = ['run_tests'] | CODE |
| LOW | odoo/http/session.py | 394 | def update_session_token(session: Session, env: Environment) -> None: | CODE |
| LOW | odoo/http/response.py | 80 | def set_default(self, template: str | None = None, qcontext: dict | None = None, uid: int | None = None) -> None: | CODE |
| LOW | odoo/http/router.py | 233 | def set_csp(self, response: Response) -> None: | CODE |
| LOW | odoo/http/router.py | 496 | def _set_session_and_dbname(request: Request) -> None: | CODE |
| LOW⚡ | odoo/http/requestlib.py | 142 | def update_env(self, user: int | BaseModel | None = None, context: dict | None = None, su: bool | None = None) -> No | CODE |
| LOW | odoo/http/requestlib.py | 155 | def update_context(self, **overrides) -> None: | CODE |
| LOW | odoo/orm/models.py | 5536 | def _update_cache(self, values: ValuesType, validate: bool = True) -> None: | STRING |
| LOW | odoo/orm/fields.py | 522 | def _setup_attrs__(self, model_class: type[BaseModel], name: str) -> None: | CODE |
| LOW | odoo/orm/fields.py | 1234 | def update_db(self, model: BaseModel, columns: dict[str, dict[str, typing.Any]]) -> None: | CODE |
| LOW | odoo/orm/fields.py | 1783 | def _update_cache(self, records: BaseModel, cache_value: typing.Any, dirty: bool = False) -> None: | CODE |
| LOW | odoo/orm/query.py | 257 | def set_result_ids(self, ids: Iterable[int], ordered: bool = True) -> None: | CODE |
| LOW | odoo/orm/registry.py | 456 | def _setup_models__(self, cr: BaseCursor, model_names: Iterable[str] | None = None) -> None: # noqa: PLW3201 | CODE |
| LOW | odoo/orm/environments.py | 1264 | def update_raw(self, records: BaseModel, field: Field, values: Iterable, dirty: bool = False) -> None: | CODE |
| LOW | odoo/modules/module_graph.py | 257 | def _update_depends(self, names: Iterable[str]) -> None: | CODE |
| LOW | odoo/modules/module_graph.py | 271 | def _update_depth(self, names: Iterable[str]) -> None: | CODE |
| LOW | odoo/modules/module_graph.py | 280 | def _update_from_database(self, names: Iterable[str]) -> None: | CODE |
| LOW | odoo/modules/module.py | 45 | __all__ = [ | CODE |
| LOW | addons/base_report_paper_muncher/paper_muncher.py | 28 | __all__ = ['PaperMuncherInfo', 'PaperMuncherServer', 'paper_muncher'] | CODE |
| LOW | addons/spreadsheet/controllers/main.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | addons/mail/controllers/attachment.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | addons/web/tooling/icons/generate_icons.py | 177 | def update_metrics(font: TTFont, spec, transform) -> None: | CODE |
| LOW | addons/auth_passkey/_vendor/webauthn/__init__.py | 13 | __all__ = [ | CODE |
| LOW | …dons/auth_passkey/_vendor/webauthn/helpers/__init__.py | 23 | __all__ = [ | CODE |
| LOW | …/auth_passkey/_vendor/webauthn/helpers/tpm/__init__.py | 4 | __all__ = ["parse_cert_info", "parse_pub_area"] | CODE |
| LOW | addons/google_recaptcha/models/ir_http.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | addons/account_peppol/tests/common.py | 12 | __all__ = [ | CODE |
| LOW | addons/website/models/ir_http.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | addons/website/models/website_page.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | addons/website/models/website.py | 43 | logger = logging.getLogger(__name__) | CODE |
| LOW | addons/website/controllers/main.py | 50 | logger = logging.getLogger(__name__) | CODE |
| LOW | addons/product/controllers/product_document.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | addons/html_editor/tools.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | addons/html_editor/models/ir_qweb_fields.py | 32 | logger = logging.getLogger(__name__) | CODE |
| 7 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ns/test_base/tests/test_orm/test_registry_signaling.py | 410 | # make sure to fetch the field from the database | COMMENT |
| LOW | …oo/addons/test_base/tests/test_modules/test_loading.py | 33 | # make sure to reset the transaction | COMMENT |
| LOW | addons/l10n_in_edi/models/account_move.py | 227 | # make sure to clear the error before sending again | COMMENT |
| LOW | addons/l10n_in_edi/models/account_move.py | 361 | # make sure to clear the error before cancelling again | COMMENT |
| LOW | addons/l10n_in_edi/models/account_move_line.py | 46 | # Please make sure to change, if any change in error codes | COMMENT |
| LOW | addons/calendar/models/calendar_event.py | 1195 | # don't forget to update recurrences if there are some base events in the set to unlink, | STRING |
| LOW | addons/calendar/models/calendar_event.py | 1195 | # don't forget to update recurrences if there are some base events in the set to unlink, | STRING |
| LOW | addons/web/static/src/core/utils/patch.js | 62 | * If the intent is to patch a class, don't forget to patch the prototype, unless | COMMENT |
| LOW | …rc/views/fields/iframe_wrapper/iframe_wrapper_field.js | 42 | // If HTML, don't forget to adjust the sanitize options to avoid stripping most of the metadata | COMMENT |
| LOW | …ns/hr_recruitment/views/hr_recruitment_stage_views.xml | 105 | Don't forget to specify the department if your recruitment process | CODE |
| LOW | …dons/website_slides/static/src/js/tours/slides_tour.js | 172 | content: markup(_t("Once you're done, don't forget to <b>Publish</b> your course.")), | CODE |
| LOW | addons/google_recaptcha/static/src/scss/recaptcha.scss | 1 | // Hide google recaptcha V3 don't forget to add legal | COMMENT |
| LOW | addons/mass_mailing/data/mailing_data_templates.xml | 61 | <t t-if="mailing.ab_testing_winner_selection == 'manual'">Don't forget to send your preferred version</t> | CODE |
| LOW | addons/mass_mailing/data/mailing_data_templates.xml | 62 | <t t-elif="not mailing.ab_testing_schedule_datetime">Since the date and time for this test has not been scheduled, | CODE |
| LOW | …ons/website_forum/views/forum_forum_templates_post.xml | 146 | - no need to answer the same question twice. Also, please <b>don't forget to vote</b> | CODE |
| LOW | addons/pos_stripe/views/pos_payment_method_views.xml | 14 | <button name="action_stripe_key" type="object" icon="east" string="Don't forget to compl | CODE |
| LOW | addons/microsoft_calendar/utils/microsoft_event.py | 136 | # don't forget to also set the global event ID on the Odoo event to ease | COMMENT |
| LOW | addons/microsoft_calendar/utils/microsoft_event.py | 136 | # don't forget to also set the global event ID on the Odoo event to ease | COMMENT |
| LOW | addons/website_event/static/src/js/tours/event_tour.js | 51 | content: markup(_t("Don't forget to click <b>save</b> when you're done.")), | CODE |
| MEDIUM⚡ | addons/account/tests/test_account_account.py | 94 | # Test that you can modify the code of an account in another company by writing on `code_mapping_ids`. | COMMENT |
| MEDIUM⚡ | addons/account/tests/test_account_account.py | 98 | # Test that you can modify the code of an account in another company by passing a CREATE value to `code_mapping_ | COMMENT |
| MEDIUM | addons/account/tests/test_account_account.py | 46 | # Test that you can add a company to an account if you add the code at the same time | COMMENT |
| LOW | addons/account/wizard/account_payment_register.py | 1238 | # Fix the balance but make sure to peek the liquidity and counterpart lines first. | STRING |
| LOW⚡ | addons/account/models/account_tax.py | 2550 | Don't forget to call '_add_tax_details_in_base_lines' and '_round_base_lines_tax_details' before calling this me | STRING |
| LOW⚡ | addons/account/models/account_tax.py | 2750 | Don't forget to call '_add_tax_details_in_base_lines' and '_round_base_lines_tax_details' before calling this me | STRING |
| LOW | addons/account/models/account_tax.py | 3093 | Don't forget to call '_add_tax_details_in_base_lines', '_round_base_lines_tax_details' and | STRING |
| LOW | addons/stock/models/stock_picking.py | 664 | # make sure to write `schedule_date` *after* the `stock.move` creation in | COMMENT |
| LOW⚡ | addons/sale_purchase/models/product_template.py | 44 | return self.env._("Each time you sell this product through a SO, a RfQ is automatically created to buy the p | CODE |
| MEDIUM | addons/survey/models/survey_survey.py | 160 | help="This code will be used by your attendees to reach your session. Feel free to customize it however you like | CODE |
| LOW | addons/website_sale/models/product_template.py | 923 | # make sure to fetch the right product for the given combination | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …/static/tests/unit/services/self_order_service.test.js | 990 | print() { | CODE |
| HIGH | …/static/src/webclient/actions/reports/report_action.js | 73 | print() { | CODE |
| HIGH | addons/web/static/src/core/utils/nested_sortable.js | 22 | * to verify if a drop location is allowed. return True by default | COMMENT |
| HIGH | addons/api_doc/static/src/utils/doc_code_gen.js | 92 | print(data) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …oud_storage_google/utils/cloud_storage_google_utils.py | 126 | Generate a V4 signed URL to provide query-string auth'n to a resource. This function is a simplified version of the | STRING |
| HIGH | …/webauthn/registration/verify_registration_response.py | 77 | Verify an authenticator's response to navigator.credentials.create() Args: - `credential`: The value return | STRING |
| HIGH | …authn/authentication/verify_authentication_response.py | 56 | Verify a response from navigator.credentials.get() Args: - `credential`: The value returned from `navigator | STRING |
| HIGH | addons/website/controllers/main.py | 1718 | Fetch SEO metadata for a given record. This endpoint is used by the website editor to retrieve meta fi | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | addons/api_doc/static/tests/api_doc.test.js | 140 | constapiKey="YOUR_API_KEY"; | CODE |
| HIGH | addons/api_doc/static/src/utils/doc_code_gen.js | 38 | const apiKey = "YOUR_API_KEY"; | CODE |
| HIGH | addons/api_doc/static/src/utils/doc_code_gen.js | 64 | --oauth2-bearer YOUR_API_KEY \\ | CODE |
| HIGH | addons/api_doc/static/src/utils/doc_code_gen.js | 79 | api_key = "YOUR_API_KEY" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | odoo/tools/misc.py | 691 | def do_stuff(): | STRING |
| LOW | odoo/addons/test_base/tests/test_tools/test_convert.py | 70 | def test_function(self): | CODE |
| LOW | addons/html_editor/static/lib/cropperjs/cropper.js | 478 | function getData(element, name) { | CODE |
| LOW | addons/html_editor/static/lib/cropperjs/cropper.js | 2732 | getData: function getData() { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …s/l10n_es_edi_tbai/models/l10n_es_edi_tbai_document.py | 719 | # Render digital signature scaffold from QWeb | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | addons/l10n_fr_pdp/models/pdp_flow_xml_builder.py | 422 | # TODO: implement ? Seller always has TT-34, so this not usefull ?? | COMMENT |