AI Slop Code RIsk Monitor

odoo/odoo

Odoo. Open Source Apps To Grow Your Business.

14.4 Moderate pattern signal View on GitHub

Maintenance and Governance Review

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.

14.4
Adjusted Signal
14.4
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
55.0K
Stars
Python
Language
3.5M
Lines of Code
24.8K
Files
38.5K
Pattern Hits
2026-10-12
Scan Date
0.03
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 31.0/100 · MEDIUM

Can maintainers explain intent, assumptions, and trade-offs? 25763 finding(s).

Hallucinated Dependency & Supply Chain Risk 14.8/100 · LOW

Are imports declared and package/API names verified? 8764 finding(s).

Agent Over-Engineering Ratio 39.4/100 · MEDIUM

Are wrappers, guards, and repeated structures necessary? 26646 finding(s).

PR Review Velocity Impact 52.0/100 · HIGH

Which changes need focused human review? 38493 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

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.

Severity Breakdown

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.

CRITICAL 234HIGH 547MEDIUM 3716LOW 33996

Directory Score Breakdown

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.

Pattern Findings

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.

Hyper-Verbose Identifiers22586 hits · 21396 pts
SeverityFileLineSnippetContext
LOWodoo/netsvc.py194def showwarning_with_traceback(message, category, filename, lineno, file=None, line=None):CODE
LOW⚡odoo/tools/mail.py484def lxml_remove_element_preserve_tail(element, tail_separator='\n'):CODE
LOWodoo/tools/mail.py159 def kill_conditional_comments(self, doc):CODE
LOWodoo/tools/mail.py188 def _tag_matching_regex_in_text(regex, node, tag='span', attrs=None):CODE
LOWodoo/tools/mail.py803def generate_tracking_message_id(res_id):CODE
LOWodoo/tools/mail.py874def email_split_and_normalize(text):CODE
LOWodoo/tools/mail.py879def email_split_and_format_normalize(text):CODE
LOWodoo/tools/version_tag_reset.py28def _detect_tp_versions_used_offset():CODE
LOWodoo/tools/version_tag_reset.py64def get_tp_versions_used_offset():CODE
LOWodoo/tools/version_tag_reset.py74def reset_classes_tp_versions_used(classes, reset_above_ratio=1):CODE
LOWodoo/tools/misc.py283def file_open_temporary_directory(env: Environment):CODE
LOWodoo/tools/misc.py1558def format_decimalized_number(number: float, decimal: int = 1) -> str:CODE
LOWodoo/tools/misc.py1583def format_decimalized_amount(amount: float, currency=None) -> str:CODE
LOWodoo/tools/misc.py1877def limited_field_access_token(record, field_name, timestamp=None, *, scope):STRING
LOWodoo/tools/misc.py1913def verify_limited_field_access_token(record, field_name, access_token, *, scope):STRING
LOWodoo/tools/misc.py1958def named_to_positional_printf(string: str, args: Mapping) -> tuple[str, tuple]:STRING
LOWodoo/tools/translate.py135def is_translatable_attrib_value(node):CODE
LOWodoo/tools/translate.py145def is_translatable_attrib_text(node):CODE
LOWodoo/tools/translate.py168def translate_format_string_expression(term, callback):CODE
LOWodoo/tools/translate.py500 def _get_translation_dictionary(field: BaseString, from_lang_value, to_lang_values):CODE
LOWodoo/tools/translate.py858 def extract_term_translations(self, env: Environment, field: BaseString, source_lang: str, target_langs: set[str] | CODE
LOWodoo/tools/translate.py918def adapt_translated_field_value(CODE
LOWodoo/tools/translate.py1630def _extract_translatable_qweb_terms(element, callback):CODE
LOWodoo/tools/translate.py1703def extract_spreadsheet_terms(fileobj, keywords, comment_tags, options):CODE
LOWodoo/tools/translate.py1837 def _get_translatable_records(self, imd_records):CODE
LOWodoo/tools/translate.py1905 def _export_translatable_records(self, records, field_names):CODE
LOWodoo/tools/translate.py1967 def _export_translatable_records(self):CODE
LOWodoo/tools/translate.py2019 def _verified_module_filepaths(self, fname, path, root):STRING
LOWodoo/tools/translate.py2058 def _export_translatable_resources(self):STRING
LOWodoo/tools/translate.py2432def get_datafile_translation_path(module_name: str) -> Iterator[str]:STRING
LOWodoo/tools/translate.py2445def get_translations_for_references(po_path: str, references: Iterable[str]) -> dict[str, dict[str, str]]:STRING
LOWodoo/tools/translate.py2587 def _read_code_translations_file(fileobj, filter_func):STRING
LOWodoo/tools/translate.py2617 def _load_python_translations(self, module_name, lang):STRING
LOWodoo/tools/translate.py2647def _get_translation_upgrade_queries(cr, field):STRING
LOWodoo/tools/config.py588 def _flush_log_and_warn_entries(cls):CODE
LOWodoo/tools/template_inheritance.py23def add_stripped_items_before(node, spec, extract):CODE
LOWodoo/tools/mimetypes.py79def _odoo_guess_file_mimetype(path, default='application/octet-stream'):CODE
LOWodoo/tools/js_transpiler.py176def convert_export_function_default(content):STRING
LOWodoo/tools/js_transpiler.py205def convert_export_class_default(content):STRING
LOWodoo/tools/js_transpiler.py294def convert_variable_export_default(content):STRING
LOWodoo/tools/js_transpiler.py465def convert_legacy_default_import(content):STRING
LOWodoo/tools/js_transpiler.py520def convert_default_and_named_import(content):STRING
LOWodoo/tools/js_transpiler.py616def convert_default_and_star_import(content):STRING
LOWodoo/tools/js_transpiler.py640def convert_unnamed_relative_import(content):STRING
LOWodoo/tools/js_transpiler.py676def relative_path_to_module_path(url, path_rel):STRING
LOWodoo/tools/js_transpiler.py720def get_aliased_odoo_define_content(module_path, content):STRING
LOWodoo/tools/rendering_tools.py56def convert_inline_template_to_qweb(template):CODE
LOWodoo/tools/appdirs.py387def _get_win_folder_from_registry(csidl_name):CODE
LOWodoo/tools/appdirs.py431def _get_win_folder_with_ctypes(csidl_name):CODE
LOWodoo/tools/xml_utils.py24def remove_control_characters(byte_node):CODE
LOWodoo/tools/xml_utils.py315def validate_xml_from_attachment(env, xml_content, xsd_name, reload_files_function=None, prefix=None):CODE
LOWodoo/tools/view_validation.py152def _get_expression_contextual_values(item_ast):CODE
LOWodoo/tools/view_validation.py229def get_expression_field_names(expression):CODE
LOWodoo/tools/partner_identifiers.py970def get_tin_metadata_of_country(country_code):CODE
LOWodoo/tools/partner_identifiers.py1011def get_non_prefixed_identifier(country_code, value):CODE
LOWodoo/tools/sql.py384def convert_column_translatable(cr: Cursor, tablename: str, columnname: str, columntype: str | SQL):CODE
LOWodoo/tools/sql.py680def increment_fields_skiplock(records, *fields):CODE
LOWodoo/tools/sql.py717def value_to_translated_trigram_pattern(value: str) -> str:CODE
LOWodoo/tools/sql.py743def pattern_to_translated_trigram_pattern(pattern: str) -> str:CODE
LOWodoo/tools/profiler.py358 def _get_directive_profiling_name(self, directive, attrib):CODE
22526 more matches not shown…
Decorative Section Separators2948 hits · 10069 pts
SeverityFileLineSnippetContext
MEDIUM⚡odoo/init.py18# ----------------------------------------------------------COMMENT
MEDIUM⚡odoo/init.py22# ----------------------------------------------------------COMMENT
MEDIUM⚡odoo/init.py28# ----------------------------------------------------------COMMENT
MEDIUM⚡odoo/init.py31# ----------------------------------------------------------COMMENT
MEDIUM⚡odoo/init.py38# ----------------------------------------------------------COMMENT
MEDIUM⚡odoo/init.py41# ----------------------------------------------------------COMMENT
MEDIUM⚡odoo/tools/mail.py479# ----------------------------------------------------------COMMENT
MEDIUM⚡odoo/tools/mail.py481# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/mail.py64#----------------------------------------------------------COMMENT
MEDIUModoo/tools/mail.py66#----------------------------------------------------------COMMENT
MEDIUModoo/tools/mail.py502# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/mail.py504# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/mail.py789#----------------------------------------------------------COMMENT
MEDIUModoo/tools/mail.py791#----------------------------------------------------------COMMENT
MEDIUM⚡odoo/tools/misc.py132#----------------------------------------------------------COMMENT
MEDIUM⚡odoo/tools/misc.py134#----------------------------------------------------------COMMENT
MEDIUM⚡odoo/tools/misc.py142# ----------------------------------------------------------COMMENT
MEDIUM⚡odoo/tools/misc.py144# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/misc.py185# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/misc.py187# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/misc.py310#----------------------------------------------------------COMMENT
MEDIUModoo/tools/misc.py312#----------------------------------------------------------COMMENT
MEDIUModoo/tools/misc.py646# ---------------------------------------------COMMENT
MEDIUModoo/tools/misc.py648# ---------------------------------------------COMMENT
MEDIUModoo/tools/partner_identifier_validation.py23# ===========================================================COMMENT
MEDIUModoo/tools/partner_identifier_validation.py25# ===========================================================COMMENT
MEDIUModoo/tools/mimetypes.py165# -------------------------------------------------------------------------------------------------STRING
MEDIUModoo/tools/mimetypes.py167# -------------------------------------------------------------------------------------------------STRING
MEDIUModoo/tools/mimetypes.py267# -------------------------------------------------------------------------------------------------STRING
MEDIUModoo/tools/mimetypes.py269# -------------------------------------------------------------------------------------------------STRING
MEDIUModoo/tools/mimetypes.py287# -------------------------------------------------------------------------------------------------STRING
MEDIUModoo/tools/mimetypes.py289# -------------------------------------------------------------------------------------------------STRING
MEDIUModoo/tools/cloc.py38 #------------------------------------------------------COMMENT
MEDIUModoo/tools/cloc.py40 #------------------------------------------------------COMMENT
MEDIUModoo/tools/cloc.py102 #------------------------------------------------------COMMENT
MEDIUModoo/tools/cloc.py104 #------------------------------------------------------COMMENT
MEDIUModoo/tools/cloc.py300 #------------------------------------------------------STRING
MEDIUModoo/tools/cloc.py302 #------------------------------------------------------STRING
MEDIUM⚡odoo/tools/partner_identifiers.py39# -------------------------------------------------------------------------COMMENT
MEDIUM⚡odoo/tools/partner_identifiers.py46# -------------------------------------------------------------------------COMMENT
MEDIUM⚡odoo/tools/image.py327# ----------------------------------------COMMENT
MEDIUM⚡odoo/tools/image.py329# ---------------------------------------COMMENT
MEDIUModoo/tools/pdf/__init__.py19# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/pdf/__init__.py24# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/pdf/__init__.py67# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/pdf/__init__.py72# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/safe_eval/runtime.py675# ==========COMMENT
MEDIUModoo/tools/safe_eval/runtime.py677# ==========COMMENT
MEDIUModoo/addons/test_http/controllers.py39 # =====================================================COMMENT
MEDIUModoo/addons/test_http/controllers.py41 # =====================================================COMMENT
MEDIUModoo/addons/test_http/controllers.py106 # =====================================================COMMENT
MEDIUModoo/addons/test_http/controllers.py108 # =====================================================COMMENT
MEDIUModoo/addons/test_http/controllers.py146 # =====================================================COMMENT
MEDIUModoo/addons/test_http/controllers.py148 # =====================================================COMMENT
MEDIUModoo/addons/test_http/controllers.py179 # =====================================================COMMENT
MEDIUModoo/addons/test_http/controllers.py181 # =====================================================COMMENT
MEDIUM⚡odoo/addons/test_http/controllers.py202 # =====================================================COMMENT
MEDIUM⚡odoo/addons/test_http/controllers.py204 # =====================================================COMMENT
MEDIUM⚡odoo/addons/test_http/controllers.py211 # =====================================================COMMENT
MEDIUM⚡odoo/addons/test_http/controllers.py213 # =====================================================COMMENT
2888 more matches not shown…
Unused Imports7814 hits · 7500 pts
SeverityFileLineSnippetContext
LOWodoo/netsvc.py18CODE
LOWodoo/sql_db.py8CODE
LOWodoo/tools/misc.py5CODE
LOWodoo/tools/misc.py41CODE
LOWodoo/tools/translate.py8CODE
LOWodoo/tools/date_utils.py1CODE
LOWodoo/tools/__init__.py4CODE
LOWodoo/tools/__init__.py5CODE
LOWodoo/tools/__init__.py6CODE
LOWodoo/tools/__init__.py7CODE
LOWodoo/tools/__init__.py7CODE
LOWodoo/tools/__init__.py8CODE
LOWodoo/tools/__init__.py9CODE
LOWodoo/tools/__init__.py9CODE
LOWodoo/tools/__init__.py9CODE
LOWodoo/tools/__init__.py9CODE
LOWodoo/tools/__init__.py9CODE
LOWodoo/tools/__init__.py9CODE
LOWodoo/tools/__init__.py9CODE
LOWodoo/tools/__init__.py10CODE
LOWodoo/tools/__init__.py10CODE
LOWodoo/tools/__init__.py10CODE
LOWodoo/tools/__init__.py10CODE
LOWodoo/tools/__init__.py10CODE
LOWodoo/tools/__init__.py11CODE
LOWodoo/tools/__init__.py11CODE
LOWodoo/tools/__init__.py12CODE
LOWodoo/tools/__init__.py13CODE
LOWodoo/tools/__init__.py14CODE
LOWodoo/tools/__init__.py15CODE
LOWodoo/tools/__init__.py15CODE
LOWodoo/tools/__init__.py16CODE
LOWodoo/tools/__init__.py16CODE
LOWodoo/tools/__init__.py16CODE
LOWodoo/tools/__init__.py16CODE
LOWodoo/tools/__init__.py17CODE
LOWodoo/tools/__init__.py17CODE
LOWodoo/tools/__init__.py17CODE
LOWodoo/tools/__init__.py18CODE
LOWodoo/tools/__init__.py19CODE
LOWodoo/tools/intervals.py2CODE
LOWodoo/tools/appdirs.py10CODE
LOWodoo/tools/appdirs.py459CODE
LOWodoo/tools/i18n.py1CODE
LOWodoo/tools/sql.py3CODE
LOWodoo/tools/which.py45CODE
LOWodoo/tools/which.py45CODE
LOWodoo/tools/which.py46CODE
LOWodoo/tools/image.py10CODE
LOWodoo/tools/func.py2CODE
LOWodoo/tools/func.py262CODE
LOWodoo/tools/set_expression.py1CODE
LOWodoo/tools/cache/__init__.py3CODE
LOWodoo/tools/_vendor/send_file.py30CODE
LOWodoo/tools/pdf/_pypdf2_2.py3CODE
LOWodoo/tools/pdf/_pypdf2_2.py3CODE
LOWodoo/tools/pdf/_pypdf2_2.py3CODE
LOWodoo/tools/pdf/_pypdf2_2.py3CODE
LOWodoo/tools/pdf/_pypdf2_2.py4CODE
LOWodoo/tools/pdf/_pypdf2_2.py5CODE
7754 more matches not shown…
Hallucination Indicators234 hits · 2668 pts
SeverityFileLineSnippetContext
CRITICALodoo/addons/test_base/tests/test_orm/test_registry.py49 self.env.cr.transaction._recent_envs.clear()CODE
CRITICAL⚡odoo/addons/base/tests/test_avatar_mixin.py51 self.assertEqual(self.user_without_image.partner_id.avatar_1920.content.decode(), expected_avatar)CODE
CRITICALodoo/addons/base/models/assetsbundle.py884 cache = self.bundle.env.cr.cache.setdefault('assets_js_transpiled', {})CODE
CRITICALodoo/addons/base/models/res_partner.py164 address_view_id = self.env.company.country_id.address_view_id.sudo()CODE
CRITICAL…static/src/js/sale_product_field/sale_product_field.js62 this.props.record.model.root._isReadonly("order_line"))CODE
CRITICAL⚡…at/static/src/core/web/livechat_channel_model_patch.js14 this.store.env.services.notification.add(_t("You joined %s.", this.name), {CODE
CRITICAL⚡…at/static/src/core/web/livechat_channel_model_patch.js19 this.store.env.services.orm.call("im_livechat.channel", "action_join", [this.id])CODE
CRITICAL⚡…at/static/src/core/web/livechat_channel_model_patch.js28 this.store.env.services.notification.add(_t("You left %s.", this.name), {CODE
CRITICAL⚡…at/static/src/core/web/livechat_channel_model_patch.js33 this.store.env.services.orm.call("im_livechat.channel", "action_quit", [this.id])CODE
CRITICAL…chat/static/src/core/web/livechat_channel_info_list.js39 return this.props.thread.channel.sortedChatbotMessages.filter(CODE
CRITICAL…tic/src/core/public_web/discuss_channel_model_patch.js80 this.store.env.services.dialog.add(LivechatLeaveDialog, {CODE
CRITICAL…atic/src/core/public_web/messaging_menu_model_patch.js31 this.store.env.services.action.doAction(CODE
CRITICAL…rk_entry/static/src/export_cog_menu/export_cog_menu.js23 ? this.env.model.root.selection.map(r => r.resId)CODE
CRITICAL…_work_entry_action_menus/hr_work_entry_action_menus.js7 ? this.env.model.root.selection.map((r) => r.resId)CODE
CRITICAL…s/calendar/static/src/core/web/activity_model_patch.js15 const action = await this.store.env.services.orm.call(CODE
CRITICAL…s/calendar/static/src/core/web/activity_model_patch.js20 this.store.env.services.action.doAction(action);CODE
CRITICAL…src/views/calendar_form/calendar_event_quick_create.js76 const breadcrumb = this.actionService.currentController.config.breadcrumbs.at(-2);CODE
CRITICAL…ee_calendar/common/attendee_calendar_common_popover.js51 this.props.record.rawRecord.partner_ids.includes(user.partnerId) ||CODE
CRITICAL…ee_calendar/common/attendee_calendar_common_popover.js66 this.props.record.rawRecord.partner_ids.some((partner) => partner !== user.partnerId) &&CODE
CRITICAL…dons/pos_safaricom/static/src/app/payment_safaricom.js26 return this.env.services.orm.silent.call("pos.payment.method", action, [CODE
CRITICAL…et/static/tests/charts/model/odoo_chart_plugin.test.js1688 const scaleCallback = config.options.scales.x.ticks.callback.bind(fakeChart);CODE
CRITICAL⚡…il/tests/discuss/test_discuss_channel_last_interest.py175 self.assertIn(channel.id, self.env.cr.postcommit.data.get("mail.sync_last_interest_dt", ()),CODE
CRITICAL⚡addons/mail/models/mail_thread.py567 # self.env.cr.precommit.data.pop(f'mail.tracking.target.message.{track_records._name}', None)COMMENT
CRITICAL⚡addons/mail/models/mail_thread.py547 self.env.cr.precommit.data.pop(f'mail.tracking.message.{self._name}', None)CODE
CRITICAL⚡addons/mail/models/mail_thread.py548 self.env.cr.precommit.data.pop(f'mail.tracking.author.{self._name}', None)CODE
CRITICAL⚡addons/mail/models/mail_thread.py571 authors = self.env.cr.precommit.data.setdefault(f'mail.tracking.author.{self._name}', {})CODE
CRITICAL⚡addons/mail/models/mail_thread.py579 body_values = self.env.cr.precommit.data.setdefault(f'mail.tracking.message.{self._name}', {})CODE
CRITICAL⚡addons/mail/models/mail_thread.py587 body_values = self.env.cr.precommit.data.setdefault(f'mail.tracking.target.message.{track_records._name}', {})CODE
CRITICAL⚡addons/mail/models/mail_thread.py645 target_bodies = self.env.cr.precommit.data.get(f'mail.tracking.target.message.{track_records._name}', {})CODE
CRITICAL⚡addons/mail/models/mail_thread.py648 authors = self.env.cr.precommit.data.get(f'mail.tracking.author.{self._name}', {})CODE
CRITICAL⚡addons/mail/models/mail_thread.py650 bodies = self.env.cr.precommit.data.get(f'mail.tracking.message.{self._name}', {})CODE
CRITICAL⚡addons/mail/models/mail_thread.py651 authors = self.env.cr.precommit.data.get(f'mail.tracking.author.{self._name}', {})CODE
CRITICAL⚡addons/mail/models/mail_thread.py721 self.env.cr.precommit.data.pop(f'mail.tracking.create.{self._name}', None)CODE
CRITICAL⚡addons/mail/models/mail_thread.py727 self.env.cr.precommit.data.setdefault(f'mail.tracking.create.{self._name}', {})[record.id] = field_namesCODE
CRITICAL⚡addons/mail/models/mail_thread.py732 precommit_data = self.env.cr.precommit.data.get(f'mail.tracking.create.{self._name}', {})CODE
CRITICAL⚡addons/mail/models/mail_track_mixin.py101 self.env.cr.precommit.data.pop(f'mail.tracking.{self._name}', None)CODE
CRITICAL⚡addons/mail/models/mail_track_mixin.py102 self.env.cr.precommit.data.pop(f'mail.tracking.end_values.{self._name}', None)CODE
CRITICAL⚡addons/mail/models/mail_track_mixin.py103 self.env.cr.precommit.data.pop(f'mail.tracking.fields_info.{self._name}', None)CODE
CRITICAL⚡addons/mail/models/mail_track_mixin.py104 self.env.cr.precommit.data.pop(f'mail.tracking.target.{self._name}', None)CODE
CRITICAL⚡addons/mail/models/mail_track_mixin.py105 self.env.cr.precommit.data.pop(f'mail.tracking.target.fnames.{self._name}', None)CODE
CRITICAL⚡addons/mail/models/mail_track_mixin.py112 initial_values = self.env.cr.precommit.data.setdefault(f'mail.tracking.{self._name}', {})CODE
CRITICAL⚡addons/mail/models/mail_track_mixin.py280 current_fields_info = self.env.cr.precommit.data.setdefault(f'mail.tracking.fields_info.{self._name}', {})CODE
CRITICAL⚡addons/mail/models/mail_track_mixin.py285 current_initial_values = self.env.cr.precommit.data.setdefault(f'mail.tracking.{self._name}', {})CODE
CRITICAL⚡addons/mail/models/mail_track_mixin.py289 current_end_values = self.env.cr.precommit.data.setdefault(f'mail.tracking.end_values.{self._name}', {})CODE
CRITICAL⚡addons/mail/models/mail_track_mixin.py327 current_initial_values = self.env.cr.precommit.data.setdefault(f'mail.tracking.{records._name}', {})CODE
CRITICAL⚡addons/mail/models/mail_track_mixin.py333 current_end_values = self.env.cr.precommit.data.setdefault(f'mail.tracking.end_values.{records._name}', {})CODE
CRITICAL⚡addons/mail/models/mail_track_mixin.py336 target_data = self.env.cr.precommit.data.setdefault(f'mail.tracking.target.{records._name}', {})CODE
CRITICAL⚡addons/mail/models/mail_track_mixin.py337 target_fnames_data = self.env.cr.precommit.data.setdefault(f'mail.tracking.target.fnames.{records._name}', {})CODE
CRITICALaddons/mail/models/mail_track_mixin.py89 initial_values = self.env.cr.precommit.data.setdefault(f'mail.tracking.{self._name}', {})CODE
CRITICALaddons/mail/models/mail_track_mixin.py141 initial_values = self.env.cr.precommit.data.pop(f'mail.tracking.{self._name}', {})CODE
CRITICALaddons/mail/models/mail_track_mixin.py173 parents_all = self.env.cr.precommit.data.get(f'mail.tracking.target.{self._name}', {})CODE
CRITICALaddons/mail/models/mail_track_mixin.py174 parents_fnames_all = self.env.cr.precommit.data.get(f'mail.tracking.target.fnames.{self._name}', {})CODE
CRITICALaddons/mail/models/mail_track_mixin.py245 current_fields_info = self.env.cr.precommit.data.get(f'mail.tracking.fields_info.{self._name}', {})CODE
CRITICALaddons/mail/models/mail_track_mixin.py370 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.js70 this.store.env.services.dialog.add(ConfirmationDialog, {CODE
CRITICAL…ns/mail/static/src/core/web/follower_subtype_dialog.js140 { model_name: this.props.follower.thread.modelName.toLowerCase() }CODE
CRITICALaddons/mail/static/src/core/web/thread_model_patch.js12 const data = await this.store.env.services.orm.call(this.model, "message_get_followers", [CODE
CRITICALaddons/mail/static/src/core/web/thread_model_patch.js19 const data = await this.store.env.services.orm.call(CODE
CRITICALaddons/mail/static/src/core/web/thread_model_patch.js33 return this.store.env.services.action.doAction(this.openRecordActionRequest, {CODE
CRITICALaddons/mail/static/src/core/web/activity_model_patch.js28 this.store.env.services.action.doAction(CODE
174 more matches not shown…
Self-Referential Comments654 hits · 1901 pts
SeverityFileLineSnippetContext
MEDIUM⚡odoo/tools/image.py332 """This function is used to calculate the dominant colors when given a list of colorsSTRING
MEDIUModoo/tools/pdf/incremental_pdf_merge.py209 # Create the Appearance Stream XObject (Section 8.10): Extracts the raw content stream andCOMMENT
MEDIUModoo/tools/pdf/incremental_pdf_merge.py225 # Create the Stamp Annotation (Section 12.5.6.12): Create a ``/Stamp`` annotationCOMMENT
MEDIUModoo/tools/pdf/__init__.py441 # Create a new object containing an array referencing embedded fileCOMMENT
MEDIUModoo/tools/arabic_reshaper/letters.py1# The following code was copied from the original author's repositoryCOMMENT
MEDIUModoo/tools/arabic_reshaper/__init__.py1# The following code was copied from the original author's repositoryCOMMENT
MEDIUModoo/addons/test_main_flows/__init__.py8# This module is defined in community but some steps (defined with 'edition: "enterprise"')COMMENT
MEDIUModoo/addons/test_web/tests/test_web_save.py10 # Create a new record, without unity specification (it should return only the id)COMMENT
MEDIUModoo/addons/test_web/tests/test_web_save.py19 # Create a new record, with unity specificationCOMMENT
MEDIUModoo/addons/test_base/tests/test_core/test_cli.py153 "# This file contains the translation of the following modules:",CODE
MEDIUModoo/addons/test_base/tests/test_orm/test_fields.py4514 # Create a manual selection field with two initial optionsSTRING
MEDIUModoo/addons/test_base/tests/test_orm/test_fields.py4526 # Create a manual related field on MODEL_RELATED pointing to the new fieldSTRING
MEDIUModoo/addons/test_base/tests/test_orm/test_models.py361 # Create a new environmentCOMMENT
MEDIUModoo/addons/test_base/tests/test_orm/test_one2many.py418 # Create a parent recordCOMMENT
MEDIUModoo/addons/base/tests/test_res_config.py21 # Define the test valuesCOMMENT
MEDIUModoo/addons/base/tests/test_ir_attachment.py398 # Create an attachment as user without res_model/res_idCOMMENT
MEDIUModoo/addons/base/tests/test_ir_attachment.py402 # Create an attachment as superuser without res_model/res_idCOMMENT
MEDIUM⚡odoo/addons/base/tests/test_res_users.py974 # Creating a key with a different scope raises an errorCOMMENT
MEDIUM⚡odoo/addons/base/tests/test_res_users.py980 # Creating a key with the same scope doesn't raiseCOMMENT
MEDIUModoo/addons/base/tests/test_res_users.py903 # Create a first session that will be used to revoke other sessionsCOMMENT
MEDIUModoo/addons/base/tests/test_res_users.py906 # Create a second session that will be used to check it has been revokedCOMMENT
MEDIUModoo/addons/base/tests/test_ir_mail_server.py504 # Create a sample .eml file contentCOMMENT
MEDIUModoo/addons/base/tests/test_res_users_has_group.py155 #Create a user with two groups of user types kind (Internal and Portal)COMMENT
MEDIUM⚡odoo/addons/base/models/ir_ui_view.py728 """This method is meant to be overridden by other modules.STRING
MEDIUModoo/addons/base/models/ir_ui_view.py401 # This function is only interested in locating invalid locators.STRING
MEDIUModoo/addons/base/models/ir_qweb.py843 # Create the iterator from the templateCOMMENT
MEDIUModoo/_monkeypatches/num2words.py8# The following section of the code is used to add support for the Bulgarian language in the num2words package.COMMENT
MEDIUModoo/_monkeypatches/site.py39 # This function is borrowed from psycogreen module which is licensedCOMMENT
MEDIUModoo/orm/models.py1880 # Create a mapping from each unique SQL GROUP BY term to its bitmask value.STRING
MEDIUM⚡odoo/orm/models_transient.py62 # This method is shared by all transient models therefore,COMMENT
MEDIUMaddons/auth_totp_mail/tests/test_totp.py43 # Create an API key for the userCOMMENT
MEDIUM…ns/website_sale_loyalty/tests/test_shop_sale_coupon.py209 # Create a gift card to be usedCOMMENT
MEDIUM…e_sale_loyalty/tests/test_website_sale_auto_invoice.py25 # Create a discount codeCOMMENT
MEDIUM…le_loyalty/tests/test_website_sale_loyalty_delivery.py83 # Create a gift card to be usedCOMMENT
MEDIUM…le_loyalty/tests/test_website_sale_loyalty_delivery.py90 # Create a 50% discount on order codeCOMMENT
MEDIUM…le_loyalty/tests/test_website_sale_loyalty_delivery.py202 # Create a discount codeCOMMENT
MEDIUMaddons/l10n_in_hr_holidays/tests/test_sandwich_leave.py671 # Create a public holiday on a working dayCOMMENT
MEDIUMaddons/l10n_pl_edi/tests/test_l10n_pl_edi.py355 # Create a Bank Account for the CompanyCOMMENT
MEDIUM⚡addons/website_event_track/tests/test_website_event.py60 # Create a website recordSTRING
MEDIUMaddons/website_event_track/controllers/event_track.py235 # Create the dict that contains the tracks at the correct time_slots / locations coordinatesCOMMENT
MEDIUM…dons/l10n_vn_edi_viettel_stock/tests/test_stock_edi.py159 # Create a second symbol and assign it to wh1COMMENT
MEDIUMaddons/l10n_in_edi/models/account_move.py374 # Creating a lambda function so it fetches the odoobot id only when neededCOMMENT
MEDIUMaddons/sale/tests/test_access_rights.py37 # Create the SO with a specific salespersonCOMMENT
MEDIUMaddons/sale/tests/test_access_rights.py194 # Create a sale order as a salesperson that has no accounting access rightsCOMMENT
MEDIUM⚡addons/sale/tests/test_payment_flow.py361 # Create the paymentCOMMENT
MEDIUMaddons/sale/tests/test_payment_flow.py147 # Create the paymentCOMMENT
MEDIUMaddons/sale/tests/test_payment_flow.py177 # Create the paymentCOMMENT
MEDIUMaddons/sale/tests/test_payment_flow.py215 # Create the paymentCOMMENT
MEDIUMaddons/sale/tests/test_payment_flow.py256 # Create the paymentCOMMENT
MEDIUMaddons/sale/tests/test_payment_flow.py316 # Create the paymentCOMMENT
MEDIUMaddons/sale/tests/test_payment_flow.py334 # Create the paymentCOMMENT
MEDIUMaddons/sale/tests/test_payment_flow.py376 # Create the paymentCOMMENT
MEDIUMaddons/sale/tests/test_taxes_downpayment.py188 # Create a down payment invoice of 30%.COMMENT
MEDIUMaddons/sale/tests/test_taxes_downpayment.py231 # Create the final invoice.COMMENT
MEDIUMaddons/sale/tests/test_taxes_downpayment.py297 # Create the final invoice.COMMENT
MEDIUMaddons/sale/tests/test_taxes_downpayment.py370 # Create the final invoice.COMMENT
MEDIUMaddons/sale/tests/test_taxes_downpayment.py482 # Create the final invoice.COMMENT
MEDIUMaddons/sale/tests/test_taxes_downpayment.py498 # Create a new final invoice.COMMENT
MEDIUMaddons/sale/tests/test_taxes_downpayment.py546 # Create a down payment invoice of 100%.COMMENT
MEDIUMaddons/sale/tests/test_taxes_downpayment.py586 # Create the final invoice.COMMENT
594 more matches not shown…
Cross-File Repetition338 hits · 1690 pts
SeverityFileLineSnippetContext
HIGHodoo/addons/base/models/res_partner.py0returns the list of address fields usable to format addresses.STRING
HIGHaddons/l10n_pa/models/res_partner.py0returns the list of address fields usable to format addresses.STRING
HIGHaddons/l10n_pe/models/res_partner.py0returns the list of address fields usable to format addresses.STRING
HIGHaddons/l10n_ne/__manifest__.py0this module implements the tax for tchad. ================================================================= the chart ofSTRING
HIGHaddons/l10n_ml/__manifest__.py0this module implements the tax for tchad. ================================================================= the chart ofSTRING
HIGHaddons/l10n_gw/__manifest__.py0this module implements the tax for tchad. ================================================================= the chart ofSTRING
HIGHaddons/l10n_bj/__manifest__.py0this module implements the tax for tchad. ================================================================= the chart ofSTRING
HIGHaddons/l10n_km/__manifest__.py0this module implements the tax for tchad. ================================================================= the chart ofSTRING
HIGHaddons/l10n_ga/__manifest__.py0this module implements the tax for tchad. ================================================================= the chart ofSTRING
HIGHaddons/l10n_td/__manifest__.py0this module implements the tax for tchad. ================================================================= the chart ofSTRING
HIGHaddons/sale/tests/test_sale_order.py0check taxes populated on invoice lines from product on branch company. taxes from the branch company should be taken witSTRING
HIGHaddons/purchase/tests/test_purchase.py0check taxes populated on invoice lines from product on branch company. taxes from the branch company should be taken witSTRING
HIGHaddons/account/tests/test_account_move_in_invoice.py0check taxes populated on invoice lines from product on branch company. taxes from the branch company should be taken witSTRING
HIGHaddons/account/tests/test_account_move_out_invoice.py0check taxes populated on invoice lines from product on branch company. taxes from the branch company should be taken witSTRING
HIGHaddons/l10n_dk/tools/demo_utils.py0this decorator is used on methods that should be mocked in demo mode. first handle the decision: "are we in demo mode?",STRING
HIGHaddons/account_peppol/tools/demo_utils.py0this decorator is used on methods that should be mocked in demo mode. first handle the decision: "are we in demo mode?",STRING
HIGHaddons/l10n_fr_pdp/tools/demo_utils.py0this decorator is used on methods that should be mocked in demo mode. first handle the decision: "are we in demo mode?",STRING
HIGHaddons/l10n_dk/tests/test_nemhandel_messages.py0when in multi/async mode, the generation of xml can fail silently (without raising). this needs to be reflected as an erSTRING
HIGHaddons/account_peppol/tests/test_peppol_messages.py0when in multi/async mode, the generation of xml can fail silently (without raising). this needs to be reflected as an erSTRING
HIGHaddons/l10n_fr_pdp/tests/test_messages.py0when in multi/async mode, the generation of xml can fail silently (without raising). this needs to be reflected as an erSTRING
HIGHaddons/google_calendar/utils/google_api_resource.py0returns the odoo id stored in the microsoft event metadata. this id might not actually exists in the database.STRING
HIGHaddons/google_calendar/utils/google_event.py0returns the odoo id stored in the microsoft event metadata. this id might not actually exists in the database.STRING
HIGHaddons/microsoft_calendar/utils/microsoft_event.py0returns the odoo id stored in the microsoft event metadata. this id might not actually exists in the database.STRING
HIGHaddons/payment_redsys/tests/test_payment_transaction.py0test that the amount and currency are returned from the payment data.STRING
HIGH…ayment_toss_payments/tests/test_payment_transaction.py0test that the amount and currency are returned from the payment data.STRING
HIGHaddons/payment_ecpay/tests/test_payment_transaction.py0test that the amount and currency are returned from the payment data.STRING
HIGHaddons/payment_redsys/tests/test_payment_transaction.py0test that the transaction state is set to 'done' when the payment data indicates a successful payment.STRING
HIGHaddons/payment_xendit/tests/test_payment_transaction.py0test 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.py0test that the transaction state is set to 'done' when the payment data indicates a successful payment.STRING
HIGHaddons/payment_demo/tests/test_payment_transaction.py0test that the transaction state is set to 'done' when the payment data indicates a successful payment.STRING
HIGHaddons/payment_aps/tests/test_payment_transaction.py0test 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.py0test 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.py0test that the transaction state is set to 'done' when the payment data indicates a successful payment.STRING
HIGHaddons/payment_dpo/tests/test_payment_transaction.py0test that the transaction state is set to 'done' when the payment data indicates a successful payment.STRING
HIGH…/payment_flutterwave/tests/test_payment_transaction.py0test that the transaction state is set to 'done' when the payment data indicates a successful payment.STRING
HIGHaddons/payment_iyzico/tests/test_payment_transaction.py0test 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.py0test that the transaction state is set to 'done' when the payment data indicates a successful payment.STRING
HIGHaddons/payment_nuvei/tests/test_payment_transaction.py0test that the transaction state is set to 'done' when the payment data indicates a successful payment.STRING
HIGHaddons/payment_redsys/tests/test_processing_flows.py0test that receiving a valid webhook notification triggers the processing of the payment data.STRING
HIGHaddons/payment_dpo/tests/test_processing_flows.py0test that receiving a valid webhook notification triggers the processing of the payment data.STRING
HIGHaddons/payment_ecpay/tests/test_processing_flows.py0test that receiving a valid webhook notification triggers the processing of the payment data.STRING
HIGHaddons/payment_iyzico/tests/test_processing_flows.py0test that receiving a valid webhook notification triggers the processing of the payment data.STRING
HIGHaddons/payment_authorize/tests/test_processing_flows.py0test that receiving a valid webhook notification triggers the processing of the payment data.STRING
HIGH…s/payment_toss_payments/tests/test_processing_flows.py0test that receiving a valid webhook notification triggers the processing of the payment data.STRING
HIGHaddons/payment_aps/tests/test_processing_flows.py0test that receiving a valid webhook notification triggers the processing of the payment data.STRING
HIGH…ns/payment_mercado_pago/tests/test_processing_flows.py0test that receiving a valid webhook notification triggers the processing of the payment data.STRING
HIGHaddons/payment_nuvei/tests/test_processing_flows.py0test that receiving a valid webhook notification triggers the processing of the payment data.STRING
HIGHaddons/payment_razorpay/tests/test_processing_flows.py0test that receiving a valid webhook notification triggers the processing of the payment data.STRING
HIGH…ons/payment_flutterwave/tests/test_processing_flows.py0test that receiving a valid webhook notification triggers the processing of the payment data.STRING
HIGHaddons/payment_asiapay/tests/test_processing_flows.py0test that receiving a valid webhook notification triggers the processing of the payment data.STRING
HIGHaddons/payment_redsys/models/payment_provider.py0override of `payment` to enable additional features.STRING
HIGHaddons/payment_authorize/models/payment_provider.py0override of `payment` to enable additional features.STRING
HIGHaddons/payment_xendit/models/payment_provider.py0override of `payment` to enable additional features.STRING
HIGHaddons/payment_mollie/models/payment_provider.py0override of `payment` to enable additional features.STRING
HIGHaddons/payment_paypal/models/payment_provider.py0override of `payment` to enable additional features.STRING
HIGHaddons/payment_demo/models/payment_provider.py0override of `payment` to enable additional features.STRING
HIGHaddons/payment_worldline/models/payment_provider.py0override of `payment` to enable additional features.STRING
HIGHaddons/payment_stripe/models/payment_provider.py0override of `payment` to enable additional features.STRING
HIGHaddons/payment_mercado_pago/models/payment_provider.py0override of `payment` to enable additional features.STRING
HIGHaddons/payment_razorpay/models/payment_provider.py0override of `payment` to enable additional features.STRING
278 more matches not shown…
Deep Nesting1649 hits · 1336 pts
SeverityFileLineSnippetContext
LOWodoo/logging.py163CODE
LOWodoo/netsvc.py42CODE
LOWodoo/sql_db.py663CODE
LOWodoo/tools/mail.py178CODE
LOWodoo/tools/mail.py291CODE
LOWodoo/tools/mail.py610CODE
LOWodoo/tools/facade.py41CODE
LOWodoo/tools/version_tag_reset.py28CODE
LOWodoo/tools/misc.py377CODE
LOWodoo/tools/misc.py562CODE
LOWodoo/tools/misc.py821CODE
LOWodoo/tools/misc.py1744CODE
LOWodoo/tools/speedscope.py223CODE
LOWodoo/tools/translate.py179CODE
LOWodoo/tools/translate.py1630CODE
LOWodoo/tools/translate.py1703CODE
LOWodoo/tools/translate.py2445CODE
LOWodoo/tools/translate.py2647CODE
LOWodoo/tools/translate.py244CODE
LOWodoo/tools/translate.py583CODE
LOWodoo/tools/translate.py1406CODE
LOWodoo/tools/translate.py1837CODE
LOWodoo/tools/translate.py1967CODE
LOWodoo/tools/translate.py2058CODE
LOWodoo/tools/translate.py2199CODE
LOWodoo/tools/config.py540CODE
LOWodoo/tools/config.py836CODE
LOWodoo/tools/config.py996CODE
LOWodoo/tools/config.py1031CODE
LOWodoo/tools/template_inheritance.py71CODE
LOWodoo/tools/template_inheritance.py109CODE
LOWodoo/tools/parse_version.py25CODE
LOWodoo/tools/date_utils.py129CODE
LOWodoo/tools/date_utils.py294CODE
LOWodoo/tools/date_utils.py333CODE
LOWodoo/tools/convert.py82CODE
LOWodoo/tools/convert.py692CODE
LOWodoo/tools/convert.py357CODE
LOWodoo/tools/intervals.py30CODE
LOWodoo/tools/intervals.py80CODE
LOWodoo/tools/intervals.py113CODE
LOWodoo/tools/appdirs.py76CODE
LOWodoo/tools/cloc.py90CODE
LOWodoo/tools/cloc.py120CODE
LOWodoo/tools/cloc.py353CODE
LOWodoo/tools/lru.py66CODE
LOWodoo/tools/osutil.py54CODE
LOWodoo/tools/barcode.py16CODE
LOWodoo/tools/view_validation.py51CODE
LOWodoo/tools/view_validation.py82CODE
LOWodoo/tools/sql.py824CODE
LOWodoo/tools/sql.py116CODE
LOWodoo/tools/profiler.py299CODE
LOWodoo/tools/profiler.py358CODE
LOWodoo/tools/profiler.py556CODE
LOWodoo/tools/profiler.py610CODE
LOWodoo/tools/image.py289CODE
LOWodoo/tools/image.py63CODE
LOWodoo/tools/set_expression.py483CODE
LOWodoo/tools/set_expression.py582CODE
1589 more matches not shown…
Empty Error Handlers157 hits · 785 pts
SeverityFileLineSnippetContext
HIGHodoo/tools/business_data.py63except Exception: # noqa: BLE001CODE
HIGHodoo/tools/mail.py959except UnicodeEncodeError:CODE
HIGHodoo/tools/misc.py1298except Exception: # noqa: BLE001CODE
HIGHodoo/tools/misc.py972except KeyError:CODE
HIGHodoo/tools/config.py734except (OSError, ConfigParser.NoSectionError):CODE
HIGHodoo/tools/config.py1026except OSError:CODE
HIGHodoo/tools/config.py1028except ConfigParser.NoSectionError:CODE
HIGHodoo/tools/appdirs.py427except UnicodeError:CODE
HIGHodoo/tools/appdirs.py425except ImportError:CODE
HIGHodoo/tools/cloc.py132except Exception:CODE
HIGHodoo/tools/bank_account_number.py113except ValidationError:CODE
HIGHodoo/tools/func.py124except AttributeError:CODE
HIGHodoo/tools/pdf/__init__.py34except ImportError:CODE
HIGHodoo/tools/safe_eval/runtime.py373except (ValueError, TypeError, KeyError):CODE
HIGHodoo/addons/test_http/tests/test_echo_reply.py206except requests.exceptions.ConnectionError:CODE
HIGH…addons/test_base/tests/test_orm/test_ir_qweb_fields.py28except KeyError:CODE
HIGH…oo/addons/test_base/tests/test_modules/test_loading.py30except ParseError:CODE
HIGHodoo/addons/base/models/ir_mail_server.py100except idna.IDNAError:CODE
HIGHodoo/addons/base/models/ir_mail_server.py335except Exception:CODE
HIGHodoo/addons/base/models/ir_model.py1128except KeyError:CODE
HIGHodoo/addons/base/models/ir_model.py2702except psycopg2.ProgrammingError:CODE
HIGHodoo/addons/base/models/ir_http.py205except TypeError:CODE
HIGHodoo/addons/base/models/ir_attachment.py171except FileNotFoundError:CODE
HIGHodoo/addons/base/models/ir_attachment.py182except FileExistsError:CODE
HIGHodoo/addons/base/models/ir_attachment.py1138except OSError:CODE
HIGHodoo/addons/base/models/ir_attachment.py347except FileNotFoundError:CODE
HIGHodoo/addons/base/models/ir_attachment.py364except FileNotFoundError:CODE
HIGHodoo/addons/base/models/ir_attachment.py1065except FileExistsError:CODE
HIGHodoo/addons/base/models/ir_ui_view.py400except ValueError as e:CODE
HIGHodoo/addons/base/models/ir_ui_view.py629except (etree.ParseError, ValueError, TypeError):CODE
HIGHodoo/addons/base/models/ir_qweb.py910except Exception: # noqa: BLE001CODE
HIGHodoo/addons/base/models/res_users.py1106except Exception:CODE
HIGHodoo/addons/base/models/res_users.py1110except Exception:CODE
HIGHodoo/addons/base/models/assetsbundle.py1094except StopIteration:CODE
HIGHodoo/addons/base/models/assetsbundle.py810except Exception: # most likely nor a file or an attachment, skip itCODE
HIGHodoo/addons/base/models/ir_actions.py1427except ValueError:CODE
HIGHodoo/addons/base/models/ir_actions.py1355except Exception:CODE
HIGHodoo/tests/form.py1046except ValueError:CODE
HIGHodoo/tests/common.py2054except websocket.WebSocketConnectionClosedException:CODE
HIGHodoo/tests/common.py2163except CancelledError:CODE
HIGHodoo/tests/common.py2658except AttributeError:CODE
HIGHodoo/tests/common.py1524except AttributeError:CODE
HIGHodoo/tests/common.py2099except CancelledError:CODE
HIGHodoo/tests/case.py202except AttributeError: # testMethod may not have a __unittest_skip__ or __unittest_skip_why__CODE
HIGHodoo/cli/server.py79except OSError:CODE
HIGHodoo/cli/server.py112except db.DatabaseExists:CODE
HIGHodoo/cli/shell.py101except ImportError:CODE
HIGHodoo/cli/start.py57except DatabaseExists as e:CODE
HIGHodoo/_monkeypatches/werkzeug.py156except (ValueError, TypeError):CODE
HIGHodoo/orm/models.py6127except AttributeError:CODE
HIGHodoo/orm/models.py6140except AttributeError:CODE
HIGHodoo/orm/models.py6148except AttributeError:CODE
HIGHodoo/orm/models.py6158except AttributeError:CODE
HIGHodoo/orm/models.py1031except Exception:CODE
HIGHodoo/orm/fields.py1851except KeyError:CODE
HIGHodoo/orm/fields.py2048except MissingError:CODE
HIGHodoo/orm/fields.py2078except AccessError:CODE
HIGHodoo/orm/registry.py685except KeyError:CODE
HIGHodoo/orm/model_classes.py151except AttributeError:CODE
HIGHodoo/orm/domains.py1084except (NotImplementedError, UserError):CODE
97 more matches not shown…
Fake / Example Data668 hits · 672 pts
SeverityFileLineSnippetContext
LOWodoo/tools/mail.py974 >>> email_anonymize('admin@example.com')STRING
LOWodoo/tools/mail.py1053 >>> formataddr(('John Doe', 'johndoe@example.com'))STRING
LOWodoo/tools/mail.py1054 '"John Doe" <johndoe@example.com>'STRING
LOWodoo/tools/translate.py86 'string', 'add-label', 'help', 'sum', 'avg', 'confirm', 'placeholder', 'alt', 'title', 'aria-label',CODE
LOWodoo/tools/translate.py158 "placeholder",CODE
LOW⚡odoo/tools/partner_identifiers.py48 'placeholder': '9780471117094',CODE
LOW⚡odoo/tools/partner_identifiers.py71 'placeholder': 'ALJ91402501L',CODE
LOW⚡odoo/tools/partner_identifiers.py77 'placeholder': '20055361682',CODE
LOW⚡odoo/tools/partner_identifiers.py83 'placeholder': 'ATU12345675',CODE
LOW⚡odoo/tools/partner_identifiers.py89 'placeholder': '83 914 571 673',CODE
LOW⚡odoo/tools/partner_identifiers.py101 'placeholder': 'BE0477472701',CODE
LOW⚡odoo/tools/partner_identifiers.py107 'placeholder': 'BG1234567892',CODE
LOW⚡odoo/tools/partner_identifiers.py113 'placeholder': _lt('16.727.230/0001-97'),CODE
LOW⚡odoo/tools/partner_identifiers.py120 '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.py125 'placeholder': '76086428-5',CODE
LOW⚡odoo/tools/partner_identifiers.py130 'placeholder': '213123432-1',CODE
LOW⚡odoo/tools/partner_identifiers.py135 'placeholder': '3101012009',CODE
LOW⚡odoo/tools/partner_identifiers.py141 'placeholder': 'CY10259033P',CODE
LOW⚡odoo/tools/partner_identifiers.py147 'placeholder': 'CZ12345679',CODE
LOW⚡odoo/tools/partner_identifiers.py153 'placeholder': _lt('DE123456788 or 12/345/67890'),CODE
LOW⚡odoo/tools/partner_identifiers.py159 'placeholder': 'DK12345674',CODE
LOW⚡odoo/tools/partner_identifiers.py164 'placeholder': _lt('1-01-85004-3 or 101850043'),CODE
LOW⚡odoo/tools/partner_identifiers.py170 'placeholder': _lt('1792060346001 or 1792060346'),CODE
LOW⚡odoo/tools/partner_identifiers.py176 'placeholder': 'EE123456780',CODE
LOW⚡odoo/tools/partner_identifiers.py182 'placeholder': 'ESA12345674',CODE
LOW⚡odoo/tools/partner_identifiers.py188 'placeholder': 'FI12345671',CODE
LOW⚡odoo/tools/partner_identifiers.py194 'placeholder': 'FR23334175221',CODE
LOW⚡odoo/tools/partner_identifiers.py200 'placeholder': _lt('GB123456782 or XI123456782'),CODE
LOW⚡odoo/tools/partner_identifiers.py207 'placeholder': 'EL123456783',CODE
LOW⚡odoo/tools/partner_identifiers.py212 'placeholder': '576937K',CODE
LOW⚡odoo/tools/partner_identifiers.py218 'placeholder': 'HR01234567896',CODE
LOW⚡odoo/tools/partner_identifiers.py225 'placeholder': _lt('12345678-1-11'),CODE
LOW⚡odoo/tools/partner_identifiers.py230 'placeholder': '1234567890123456',CODE
LOW⚡odoo/tools/partner_identifiers.py236 'placeholder': 'IE1234567FA',CODE
LOW⚡odoo/tools/partner_identifiers.py241 'placeholder': _lt('XXXXXXXXX [9 digits] and it should respect the Luhn algorithm checksum'),CODE
LOW⚡odoo/tools/partner_identifiers.py246 'placeholder': '12AAAAA1234AAZA',CODE
LOW⚡odoo/tools/partner_identifiers.py252 'placeholder': 'IS062199',CODE
LOW⚡odoo/tools/partner_identifiers.py259 'placeholder': 'IT12345670017',CODE
LOW⚡odoo/tools/partner_identifiers.py266 'placeholder': 'T7000012050002',CODE
LOW⚡odoo/tools/partner_identifiers.py271 'placeholder': _lt('123-45-67890 or 1234567890'),CODE
LOW⚡odoo/tools/partner_identifiers.py282 'placeholder': 'LT123456715',CODE
LOW⚡odoo/tools/partner_identifiers.py288 'placeholder': 'LU12345613',CODE
LOW⚡odoo/tools/partner_identifiers.py294 'placeholder': 'LV41234567891',CODE
LOW⚡odoo/tools/partner_identifiers.py299 'placeholder': '12345678',CODE
LOW⚡odoo/tools/partner_identifiers.py305 'placeholder': 'FR53000004605',CODE
LOW⚡odoo/tools/partner_identifiers.py311 'placeholder': '02655284',CODE
LOW⚡odoo/tools/partner_identifiers.py317 'placeholder': 'MK4057009501106',CODE
LOW⚡odoo/tools/partner_identifiers.py323 'placeholder': 'MT12345634',CODE
LOW⚡odoo/tools/partner_identifiers.py328 'placeholder': 'GODE561231GR8',CODE
LOW⚡odoo/tools/partner_identifiers.py339 'placeholder': 'NL123456782B90',CODE
LOW⚡odoo/tools/partner_identifiers.py344 'placeholder': 'NO123456785',CODE
LOW⚡odoo/tools/partner_identifiers.py349 'placeholder': _lt('49-098-576 or 49098576'),CODE
LOW⚡odoo/tools/partner_identifiers.py361 'placeholder': _lt('10XXXXXXXXY or 20XXXXXXXXY or 15XXXXXXXXY or 16XXXXXXXXY or 17XXXXXXXXY'),CODE
LOW⚡odoo/tools/partner_identifiers.py366 'placeholder': '123-456-789-123',CODE
LOW⚡odoo/tools/partner_identifiers.py372 'placeholder': 'PL1234567883',CODE
LOW⚡odoo/tools/partner_identifiers.py378 'placeholder': 'PT123456789',CODE
LOW⚡odoo/tools/partner_identifiers.py384 'placeholder': _lt('RO1234567897 or 8001011234567 or 9000123456789'),CODE
LOW⚡odoo/tools/partner_identifiers.py390 'placeholder': 'RS101134702',CODE
LOW⚡odoo/tools/partner_identifiers.py395 'placeholder': '123456789047',CODE
LOW⚡odoo/tools/partner_identifiers.py400 'placeholder': _lt('310175397400003 [Fifteen digits, first and last digits should be "3"]'),CODE
608 more matches not shown…
Excessive Try-Catch Wrapping456 hits · 468 pts
SeverityFileLineSnippetContext
LOWodoo/netsvc.py134 except Exception:CODE
LOWodoo/loglevels.py15 except Exception:CODE
LOWodoo/sql_db.py179 except Exception:CODE
LOWodoo/sql_db.py419 except Exception as e:CODE
LOWodoo/sql_db.py573 except Exception:CODE
LOWodoo/sql_db.py584 except Exception:CODE
LOWodoo/tools/business_data.py63 except Exception: # noqa: BLE001STRING
LOW⚡odoo/tools/mail.py471 except Exception:CODE
LOWodoo/tools/misc.py913 except Exception:CODE
LOWodoo/tools/misc.py1298 except Exception: # noqa: BLE001CODE
LOWodoo/tools/misc.py1302 except Exception: # noqa: BLE001CODE
LOWodoo/tools/misc.py1472 except Exception:CODE
LOWodoo/tools/misc.py1527 except Exception:CODE
LOWodoo/tools/translate.py1830 except Exception:CODE
LOWodoo/tools/translate.py2053 except Exception:STRING
LOWodoo/tools/convert.py107 except Exception:CODE
LOWodoo/tools/convert.py642 except Exception as e:CODE
LOWodoo/tools/convert.py797 except Exception:CODE
LOWodoo/tools/cloc.py60 except Exception:CODE
LOWodoo/tools/cloc.py132 except Exception:CODE
MEDIUModoo/tools/cloc.py50def parse_py(self, s):CODE
LOWodoo/tools/osutil.py112 except Exception:STRING
LOWodoo/tools/barcode.py33 except Exception: # noqa: BLE001CODE
LOWodoo/tools/view_validation.py308 except Exception:CODE
LOWodoo/tools/profiler.py516 except Exception:CODE
LOWodoo/tools/func.py90 except Exception:CODE
LOWodoo/tools/pdf/__init__.py349 except Exception: # noqa: BLE001CODE
LOWodoo/tools/safe_eval/evaluation.py309 except Exception as e: # noqa: BLE001CODE
LOWodoo/addons/test_http/tests/test_session.py176 except Exception: # noqa: BLE001CODE
LOWodoo/addons/test_http/tests/test_session.py184 except Exception: # noqa: BLE001CODE
LOWodoo/addons/test_tests/tests/test_test_suite.py91 except Exception as e:CODE
LOWodoo/addons/test_tests/tests/test_test_suite.py376 except Exception:STRING
LOWodoo/addons/test_tests/tests/test_test_suite.py411 except Exception:STRING
MEDIUModoo/addons/test_tests/tests/test_test_suite.py408def alpha():CODE
LOW…oo/addons/test_base/tests/test_tools/test_safe_eval.py588 except Exception:CODE
LOW…oo/addons/test_base/tests/test_tools/test_safe_eval.py607 except Exception:CODE
LOW…oo/addons/test_base/tests/test_tools/test_safe_eval.py651 except Exception:CODE
MEDIUM…oo/addons/test_base/tests/test_tools/test_safe_eval.py604def gen():CODE
MEDIUM…oo/addons/test_base/tests/test_tools/test_safe_eval.py648def gen():CODE
LOWodoo/addons/test_lint/tests/test_index.py154 except Exception as exc: # noqa: BLE001 - report, don't abort the sweepCODE
LOWodoo/addons/test_lint/tests/test_index.py287 except Exception:CODE
LOWodoo/addons/test_lint/tests/test_sql_injection.py511 except Exception:CODE
LOWodoo/addons/base/tests/test_ir_actions.py93except Exception:STRING
LOWodoo/addons/base/wizard/base_import_language.py41 except Exception as e:CODE
LOWodoo/addons/base/models/ir_default.py41 except Exception: # noqa: BLE001CODE
LOWodoo/addons/base/models/ir_default.py112 except Exception:CODE
LOWodoo/addons/base/models/ir_access.py210 except Exception as e: # noqa: BLE001CODE
LOWodoo/addons/base/models/ir_mail_server.py328 except Exception as e:CODE
LOWodoo/addons/base/models/ir_mail_server.py335 except Exception:CODE
LOWodoo/addons/base/models/ir_mail_server.py833 except Exception as e:CODE
MEDIUModoo/addons/base/models/ir_model.py842def _onchange_relation(self):CODE
MEDIUModoo/addons/base/models/ir_model.py1442def lookup_group(field, xmlid):CODE
LOWodoo/addons/base/models/ir_model.py756 except Exception as e: # noqa: BLE001CODE
LOWodoo/addons/base/models/ir_model.py1096 except Exception:CODE
LOWodoo/addons/base/models/ir_model.py1986 except Exception:CODE
LOWodoo/addons/base/models/ir_model.py2345 except Exception: # pylint: disable=broad-exceptCODE
LOWodoo/addons/base/models/ir_model.py2483 except Exception:STRING
LOWodoo/addons/base/models/ir_model.py2643 except Exception:STRING
LOWodoo/addons/base/models/ir_autovacuum.py60 except Exception:CODE
LOWodoo/addons/base/models/ir_http.py402 except Exception: # noqa: BLE001CODE
396 more matches not shown…
Over-Commented Block348 hits · 316 pts
SeverityFileLineSnippetContext
LOWodoo/init.py21# and the last generation was removed in 3.14.COMMENT
LOWodoo/tools/translate.py2521 if line_end_pos == -1:COMMENT
LOWodoo/tools/lru.py21 assert count > 0, "LRU needs a positive count"COMMENT
LOWodoo/tools/pdf/__init__.py61# compatibility aliasesCOMMENT
LOWodoo/tools/babel/javascript_extractor.py21 # e.g. ((1, 'c'), 2)COMMENT
LOWodoo/tools/babel/python_extractor.py21 # -> Indicates the first argument is a context key and the second is the translatable term, like in `pgettext`COMMENT
LOWodoo/tools/babel/python_extractor.py221 # so we don't wan't to extract it.COMMENT
LOWodoo/tools/arabic_reshaper/letters.py1# The following code was copied from the original author's repositoryCOMMENT
LOWodoo/tools/arabic_reshaper/__init__.py1# The following code was copied from the original author's repositoryCOMMENT
LOWodoo/addons/test_main_flows/__init__.py1# -*- coding: utf-8 -*-COMMENT
LOWodoo/addons/test_http/tests/test_device.py581 # - device A detected at time T0: info A in session + new log ACOMMENT
LOWodoo/addons/test_web/tests/test_onchange.py981 # 'total' depends on 'base' and 'line_ids.subtotal'COMMENT
LOW…oo/addons/test_base/tests/test_tools/test_translate.py761 # TODO Currently, the unique constraint doesn't work for translatable fieldCOMMENT
LOW…oo/addons/test_base/tests/test_tools/test_translate.py1921COMMENT
LOWodoo/addons/test_base/tests/test_orm/test_uninstall.py1# Part of Odoo. See LICENSE file for full copyright and licensing details.COMMENT
LOWodoo/addons/test_base/tests/test_orm/test_uninstall.py21# with reg.cursor() as cr:COMMENT
LOWodoo/addons/test_base/tests/test_orm/test_uninstall.py41# Registry.new(common.get_db_name(), update_module=True)COMMENT
LOWodoo/addons/test_base/tests/test_orm/test_uninstall.py61# with environment() as env:COMMENT
LOWodoo/addons/test_base/tests/test_orm/test_uninstall.py81# self.assertFalse(remaining_constraints)COMMENT
LOW…ons/test_base/tests/test_orm/test_domain_expression.py421 # will return expectedly nothing (our ids always begin at 1).COMMENT
LOWodoo/addons/test_base/tests/test_orm/test_fields.py4061@tagged('at_install', '-post_install') # LEGACY at_installCOMMENT
LOW…/addons/test_lint/tests/_odoo_checker_sql_injection.py281 elif not self._allowable(node.right):COMMENT
LOWodoo/addons/test_lint/tests/test_override_signatures.py221COMMENT
LOWodoo/addons/base/tests/test_res_groups_data.py361 user.group_ids += bCOMMENT
LOWodoo/addons/base/tests/test_res_currency.py201 #try_roundtrip(-2.6748955, -2.674896, '2000-01-02')COMMENT
LOWodoo/addons/base/tests/test_ir_actions_report.py421 # leaving this as reference but this is to fragile to make a strict assertionCOMMENT
LOWodoo/addons/base/models/ir_fields.py141 # if the error is linked to a matching error, the error is a tupleCOMMENT
LOWodoo/addons/base/models/ir_sequence.py381 if vals.get('number_next'):COMMENT
LOWodoo/addons/base/models/ir_exports.py101 # Works the following way:COMMENT
LOWodoo/addons/base/models/ir_logging.py1# Part of Odoo. See LICENSE file for full copyright and licensing details.COMMENT
LOWodoo/addons/base/models/ir_logging.py41 # DROP CONSTRAINT unconditionally takes an ACCESS EXCLUSIVE lockCOMMENT
LOWodoo/addons/base/models/res_groups.py101 # A implies B C ACOMMENT
LOWodoo/addons/base/models/ir_ui_view.py1001 # 2 3 4: [6], # primary viewCOMMENT
LOWodoo/addons/base/models/ir_ui_view.py1361 parent.text = (parent.text or '') + tailCOMMENT
LOWodoo/addons/base/models/website.py1from odoo import api, fields, modelsCOMMENT
LOWodoo/addons/base/models/ir_cron.py321 ``psycopg2.errors.SerializationFailure`` in case the jobCOMMENT
LOWodoo/addons/base/models/ir_cron.py341 #COMMENT
LOWodoo/addons/base/models/res_partner.py1921 def check_vat_ch(self, vat):COMMENT
LOWodoo/tests/common.py2821 update_session_token(self.session, env)COMMENT
LOWodoo/http/server.py21from .router import rootCOMMENT
LOWodoo/http/server.py61 # RFC9112 says in #3.2:COMMENT
LOWodoo/http/server.py121 res=res or self.h11response,COMMENT
LOWodoo/orm/models.py1861 row_values = self.env.execute_query(query.select(*select_args))COMMENT
LOWodoo/orm/models.py2421 return result[0]["definition"] if result else {}COMMENT
LOWodoo/orm/models.py3881 # protected while being written, the field's current valueCOMMENT
LOWodoo/orm/models.py3901COMMENT
LOWodoo/orm/models.py3921 # indirectly depends on the many2one field 'order_id' linking linesCOMMENT
LOWodoo/orm/models.py3941 # which remove the field from the recompute list while all theCOMMENT
LOWodoo/orm/models.py6281 # The triggers of a field F is a tree that contains the fields thatCOMMENT
LOWodoo/orm/fields.py361 #COMMENT
LOWodoo/orm/fields.py381 #COMMENT
LOWodoo/orm/fields.py741 #COMMENT
LOWodoo/orm/fields.py1841 except KeyError:COMMENT
LOWodoo/orm/fields.py1861 # stored and not (computed and readonly) -> fetch from originCOMMENT
LOWodoo/orm/model_classes.py41#COMMENT
LOWodoo/orm/model_classes.py61# carries inferred metadata that is shared between all the recordsets of thatCOMMENT
LOWodoo/orm/model_classes.py81# class B(Model): # B1 / / \ \COMMENT
LOWodoo/orm/model_classes.py101# presence or absence of each model definition, which itself depends on theCOMMENT
LOWodoo/orm/model_classes.py121# In the example below, the field 'foo' appears once on its model definition.COMMENT
LOWodoo/orm/fields_properties.py181 return Property(value or {}, self, record)COMMENT
288 more matches not shown…
Cross-Language Confusion40 hits · 204 pts
SeverityFileLineSnippetContext
HIGHodoo/tools/translate.py2267 SET %(field_name)s = jsonb_strip_nulls(%(field_name)s || t.value)CODE
HIGHodoo/tools/translate.py2672 WHEN t.noupdate IS FALSE THEN t.value || m."{field.name}"CODE
HIGH⚡odoo/tools/translate.py2295 value_query = SQL("m.%(field)s || merged.noupdate_value || merged.update_value", field=field)STRING
HIGH⚡odoo/tools/translate.py2297 value_query = SQL("merged.noupdate_value || m.%(field)s || merged.update_value", field=field)STRING
HIGH⚡odoo/tools/translate.py2299 value_query = SQL("merged.noupdate_value || merged.update_value || m.%(field)s", field=field)STRING
HIGHodoo/addons/test_http/tests/test_echo_reply.py109 self.assertEqual(res.text, r'{"jsonrpc": "2.0", "id": 1234, "result": null}', "result must not be absent")STRING
HIGHodoo/addons/base/tests/test_res_groups_data.py446 test_reduce_to_light(proj_user, null)STRING
HIGHodoo/addons/base/tests/test_res_groups_data.py447 test_reduce_to_light(proj_manager, null)STRING
HIGH⚡odoo/addons/base/tests/test_res_groups_data.py459 test_reduce_to_light(team_leader, null)STRING
HIGH⚡odoo/addons/base/tests/test_res_groups_data.py460 test_reduce_to_light(office_manager, null)STRING
HIGH⚡odoo/addons/base/tests/test_res_groups_data.py461 test_reduce_to_light(cto, null)STRING
HIGH⚡odoo/addons/base/tests/test_res_groups_data.py466 test_reduce_to_light(team_leader + proj_manager, null)STRING
HIGHodoo/addons/base/wizard/base_partner_merge.py323 SET %(field)s = source_agg.value || COALESCE(%(table)s.%(field)s, '{}'::jsonb)STRING
HIGHodoo/addons/base/models/res_users.py1624 name varchar not null,CODE
HIGHodoo/addons/base/models/res_users.py1629 key varchar not null,CODE
HIGHodoo/tests/common.py2307 # the undefined remoteobject is literally just {type: undefined}...COMMENT
HIGHodoo/tests/common.py811 inner.push(init.pop_all())CODE
HIGH⚡odoo/http/dispatcher.py347 --> {"jsonrpc": "2.0", "method": "call", "params": {"arg1": "val1" }, "id": null}CODE
HIGH⚡odoo/http/dispatcher.py349 <-- {"jsonrpc": "2.0", "result": { "res1": "val1" }, "id": null}CODE
HIGH⚡odoo/http/dispatcher.py353 --> {"jsonrpc": "2.0", "method": "call", "params": {"arg1": "val1" }, "id": null}CODE
HIGH⚡odoo/http/dispatcher.py355 <-- {"jsonrpc": "2.0", "error": {"code": 1, "message": "End user error message.", "data": {"code": "codestringCODE
HIGHodoo/orm/fields.py1403 # here the specified value for a company might be NULL e.g. '{"1": null}'::jsonbCOMMENT
HIGHaddons/l10n_sa_edi/models/account_journal.py671 'l10n_sa_compliance_csid_json': """{"requestID": 1234567890123, "dispositionMessage": "ISSUED", "binarySecurCODE
HIGH⚡addons/website_slides/models/slide_channel.py482 SET access_token = md5(md5(random()::varchar || id::varchar) || clock_timestamp()::varchar)::uuid::varcharCODE
HIGHaddons/website/models/ir_module_module.py539 o_menu_name = SQL('menu.name || %s' if overwrite else '%s || menu.name', update_jsonb)STRING
HIGHaddons/crm/models/crm_lead.py2295 # if stage_id is null, return 0 and bypass computationCOMMENT
HIGHaddons/crm/models/crm_lead.py2295 # if stage_id is null, return 0 and bypass computationCOMMENT
HIGHaddons/crm/models/crm_lead.py2440 probability = CASE WHEN (probability = automated_probability OR probability is null)CODE
HIGHaddons/iot_drivers/tools/upgrade.py126 "( mountpoint -q /proc || mount -t proc proc /proc ) && "CODE
HIGHaddons/iot_drivers/tools/upgrade.py127 "( mountpoint -q /sys || mount -t sysfs sys /sys ) && "CODE
HIGHaddons/iot_drivers/tools/upgrade.py150 'apt-get upgrade -y && apt-get -y autoremove"'CODE
HIGHaddons/account/models/account_move.py6464 AND other.name LIKE '%%' || other.sequence_number || ms.suffixCODE
HIGHaddons/account/models/account_move.py6475 AND other.name LIKE '%%' || other.sequence_number || ms.suffixCODE
HIGHaddons/account/models/account_account_tag.py128 SET name = tag.name || jsonb_build_object(%(lang)s, substring(tag.name->>'en_US' FOR 1) || (report_liSTRING
HIGHaddons/stock/models/stock_move_line.py605 # adjustment, enforce some rules on the `lot_id` field. If `quantity` is null, we unlinkCOMMENT
HIGHaddons/web_tour/tests/test_tours.py124 errors.push(module)CODE
HIGHaddons/web_tour/tests/test_tours.py167 errors.push(module)CODE
HIGHaddons/survey/models/survey_question.py216 "CHECK (is_scored_question != True OR question_type != 'datetime' OR answer_datetime is not null)",CODE
HIGHaddons/survey/models/survey_question.py220 "CHECK (is_scored_question != True OR question_type != 'date' OR answer_date is not null)",CODE
HIGH⚡addons/l10n_it_edi/tools/remove_signature.py73 if verify(loaded_data._pkcs7, null, null, null, out_buffer, flags) != 1:CODE
Redundant / Tautological Comments143 hits · 199 pts
SeverityFileLineSnippetContext
LOWodoo/tools/pdf/incremental_writer.py69 # Check if the original PDF uses an XRef streamCOMMENT
LOW⚡odoo/addons/base/tests/test_ir_ui_view.py1460 # Check if the replacement inside the child view did not mess up theSTRING
LOW⚡odoo/addons/base/tests/test_ir_ui_view.py1468 # Check if the replacement of the first worlds did not mess up theSTRING
LOW⚡odoo/addons/base/tests/test_ir_ui_view.py1518 # Check if the replacement inside the child view did not mess up theSTRING
LOW⚡odoo/addons/base/tests/test_ir_ui_view.py1527 # Check if the child view replacement of added nodes did not mess upSTRING
LOWodoo/addons/base/tests/test_ir_ui_view.py1401 # Check if the replacement inside the child view did not mess up theSTRING
LOWodoo/addons/base/tests/test_ir_ui_view.py1409 # Check if the replacement of the first worlds did not mess up theSTRING
LOWodoo/addons/base/models/ir_mail_server.py679 # Check if it's still possible to put the bounce address as smtp_fromCOMMENT
LOWodoo/addons/base/models/ir_attachment.py1082 # Read the file's content in chunks to compute its checksum,COMMENT
LOWodoo/addons/base/models/ir_ui_view.py486 # Check if we know how to apply inheritancesCOMMENT
LOWodoo/orm/fields_relational.py1394 # Check if we have a custom init functionCOMMENT
LOWodoo/orm/fields.py1309 # Check if we have a custom init functionCOMMENT
LOWodoo/orm/environments.py770 # Check if the model registry must be reloadedCOMMENT
LOWodoo/orm/environments.py782 # Check if the model caches must be invalidated.COMMENT
LOWaddons/auth_signup/tests/test_auth_signup.py65 # Check if an email is sent to the new userwCOMMENT
LOWaddons/auth_signup/controllers/main.py51 # Set user to public if they were not signed in by do_signupCOMMENT
LOW⚡addons/website_event_track/tests/test_website_event.py70 # Check if app_icon is setSTRING
LOW⚡addons/website_event_track/tests/test_website_event.py73 # Check if app_icon is a valid imageSTRING
LOWaddons/website_event_track/controllers/event_track.py150 # Check if there are any ongoing or upcoming tracksCOMMENT
LOWaddons/l10n_sa_edi/controllers/portal.py40 # Check if building number and plot identification are filled if vat is filled and are 4 digitsCOMMENT
LOWaddons/google_calendar/utils/google_event.py136 # Check if ids are the sameCOMMENT
LOWaddons/google_calendar/models/google_event_sync.py220 # Check if it is a recurring event that has been rescheduled.COMMENT
LOWaddons/calendar/tests/test_calendar_tour.py44 self.assertFalse(event) # Check if the event has been correctly deletedCODE
LOWaddons/calendar/tests/test_calendar_tour.py69 self.assertEqual(attendee.state, 'declined') # Check if the event has been correctly declinedCODE
LOWaddons/payment_paypal/tests/test_paypal.py323 # Set country to one where state is requiredCOMMENT
LOW…ternative_sale/tests/test_purchase_alternative_sale.py55 # Check if newly created PO is correctly linked to the base Sale OrderCOMMENT
LOWaddons/sms/tests/test_sms_template.py40 # Check if a member of group_user can only read on sms.templateCOMMENT
LOWaddons/l10n_sa/models/account_move.py92 # Check if the document is legal in SaudiCOMMENT
LOWaddons/mrp_subcontracting/tests/test_subcontracting.py35 # Check if warehouse routes got RECREATED (instead of reused)COMMENT
LOWaddons/mrp_subcontracting/tests/test_subcontracting.py48 # Check if warehouse operation types (picking.type) got RECREATED (instead of reused)COMMENT
LOWaddons/mail/models/mail_message.py1451 # Check if user has access to the record before displaying a notification about it.COMMENT
LOWaddons/sale_stock/models/stock.py128 # Check if there is already a SO line for this product to getCOMMENT
LOWaddons/sale_stock/models/stock.py331 # Check if there is already a SO line for this product to getCOMMENT
LOWaddons/web/tests/test_reports.py182 # Check if the temporary session has been deletedSTRING
LOWaddons/web/tests/test_reports.py186 # Check if temporary files have been deletedSTRING
LOWaddons/web/tests/test_res_users_settings.py66 # Check if the setting is correctly createdCOMMENT
LOWaddons/web/tests/test_res_users_settings.py75 # Check if the settings are correctly formatted from the getterCOMMENT
LOWaddons/web/tests/test_res_users_settings.py93 # Check if the setting is correctly updatedCOMMENT
LOWaddons/web/tests/test_res_users_settings.py102 # Check if the settings are correctly formatted after the updateCOMMENT
LOWaddons/pos_stock/tests/test_anglo_saxon.py124 # Check if there is account_move in the order.COMMENT
LOWaddons/l10n_tw_edi_ecpay/models/account_move.py548 # Check if the credit note has exchange difference, we need to add it to the sale amountSTRING
LOWaddons/website/tests/test_performance.py305 # Check if `view.track` to track visitor or notCOMMENT
LOWaddons/website/models/website_menu.py84 # Check if the url matches a website.page (to set the m2o relation),COMMENT
LOWaddons/website/models/ir_ui_view.py148 # Set key to avoid copy() to generate an unique key as we want theCOMMENT
LOWaddons/website/models/assets.py60 # Check if the file to save had already been modifiedCOMMENT
LOWaddons/website/models/html_text_processor.py133 # Check if terms are translated.COMMENT
LOWaddons/website/controllers/main.py429 # Check if stored version is still validCOMMENT
LOWaddons/website/controllers/main.py2169 # Check if the file is customized and get bundle/path infoCOMMENT
LOWaddons/mrp/tests/test_bom.py2732 # Assign operation to each bom/byproduct lineCOMMENT
LOWaddons/mrp/models/mrp_workorder.py648 # Check if this workcenter is better than the previous onesCOMMENT
LOWaddons/mrp/report/mrp_report_bom_structure.py721 # Check if product is already in stock with enough quantityCOMMENT
LOWaddons/mrp/report/mrp_report_bom_structure.py876 # Check if this workcenter is better than the previous onesCOMMENT
LOWaddons/crm/models/crm_lead.py956 # Set date_open to today if it is an oppCOMMENT
LOWaddons/crm/models/crm_lead.py2727 # 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.py43 # Check if new printers available, and configure them if soCOMMENT
LOW…s/iot_drivers/iot_handlers/interfaces/tim_interface.py92 # Check if the terminal is online and responsiveCOMMENT
LOWaddons/payment_stripe/controllers/main.py242 # Check if the timestamp is not too oldCOMMENT
LOWaddons/sale_loyalty/tests/test_program_numbers.py84 # Check if we have enough paid product to receive free product in case of a free productCOMMENT
LOWaddons/base_import/models/base_import.py1405 # Check if the field is in import_field and is a relational (followed by /)COMMENT
LOWaddons/product/tests/test_pricelist.py167 # Set country to BE -> property defaults to EU pricelistCOMMENT
83 more matches not shown…
AI Slop Vocabulary103 hits · 154 pts
SeverityFileLineSnippetContext
MEDIUModoo/tools/mail.py1112 """ Parse contact name and email (given by text) in order to find contactSTRING
LOWodoo/tools/misc.py432 deps[item] # just set the defaultCODE
MEDIUModoo/addons/test_tests/tests/test_test_suite.py93 # will make it more robust to future changes and eventual mistakesCOMMENT
MEDIUModoo/addons/test_tests/tests/test_cases.py161 # but this makes the test more clear and robustCOMMENT
MEDIUM…test_base/tests/test_core/test_monkeypatch_zoneinfo.py31 # the first one is more robustCOMMENT
LOWodoo/addons/test_base/models/test_inherits.py22# We just create a new modelCOMMENT
LOW…/addons/test_lint/tests/_odoo_checker_sql_injection.py326 # otherwise just return the original node for checkingCOMMENT
MEDIUM…oo/addons/test_assetsbundle/tests/test_assetsbundle.py681 """ Checks that a bundle don't try hard to parse broken xml, and returns a comprehensiveSTRING
MEDIUM…oo/addons/test_assetsbundle/tests/test_assetsbundle.py693 """ Checks that a bundle with multiple broken xml returns a comprehensive error message.STRING
MEDIUM…oo/addons/test_assetsbundle/tests/test_assetsbundle.py704 """ Checks that a bundle with template without name returns a comprehensive error message.STRING
MEDIUM…oo/addons/test_assetsbundle/tests/test_assetsbundle.py715 """ Checks that a bundle with a file in error (file not found, encoding error, or other) returns a comprehensiveSTRING
MEDIUModoo/addons/base/models/ir_actions_report.py131 """Used in the ir.actions.report form view in order to search naively after the view(s)STRING
LOWodoo/addons/base/models/ir_exports.py111 # * if we have a normal field (length 1), just add it to the infoCOMMENT
MEDIUModoo/addons/base/models/res_partner_bank.py157 """ To be overridden by subclasses in order to support other account_types.STRING
MEDIUModoo/addons/base/models/ir_qweb.py2751 """ This special 't-call-assets' tag can be used in order to aggregate/minify javascript and css assets"""STRING
LOWodoo/addons/base/models/res_partner.py172 #(e.g fields not present on the model). In that case we just return archCOMMENT
MEDIUModoo/addons/base/models/ir_actions.py30 """ Proxy of the `_logger` element in order to be used in server actions.STRING
MEDIUModoo/tests/form.py481 """ Validate & extract values, recursively in order to handle o2ms properly.STRING
LOWodoo/http/session.py571 # the save_session is going to simply use session.sid to set a new cookie.COMMENT
LOWodoo/orm/fields_relational.py865 # ('id', 'any!', Query), so we can just use the queryCOMMENT
MEDIUModoo/orm/models.py3078 """ Read from the database in order to fetch ``field`` (:class:`Field`STRING
LOWodoo/orm/fields_properties.py381 # when we create the new record. But if we just set the value without changingCOMMENT
LOWodoo/orm/fields_misc.py124 # do not flush, just return the identifierCOMMENT
MEDIUMaddons/sale/models/sale_order_line.py1038 """Convert the current record to a dictionary in order to use the generic taxes computationSTRING
LOWaddons/l10n_sa_edi/models/l10n_sa_edi_document.py261 # no signed invoice. In this case, we just return the original contentCOMMENT
MEDIUMaddons/stock_delivery/models/delivery_carrier.py95 """ Some delivery carriers require a prefix to be sent in order to use customSTRING
MEDIUM⚡addons/l10n_ar/tests/test_manual.py82 """ RI partner with many lines in order to prove rounding error, with 4 decimals of precision for theSTRING
MEDIUM⚡addons/l10n_ar/tests/test_manual.py87 """ RI partner with many lines in order to test rounding error, it is required to use a 4 decimal precisionSTRING
MEDIUM⚡addons/l10n_ar/tests/test_manual.py92 """ RI partner with many lines in order to test zero amount invoices y rounding error. it is required toSTRING
MEDIUMaddons/l10n_ar/models/res_partner.py66 """ This will add some dash to the CUIT number (VAT AR) in order to show in his natural format:STRING
MEDIUMaddons/portal_rating/models/rating_rating.py45 """ Force publisher partner and date if not given in order to haveSTRING
MEDIUMaddons/l10n_my_edi_pos/tests/test_myinvois_pos.py1040 """ Generate a relatively complex use case, and compare it to an XML file in order to ensure correct generation STRING
MEDIUMaddons/l10n_my_edi_pos/tests/test_myinvois_pos.py1091 """ Generate a relatively complex use case, and compare it to an XML file in order to ensure correct generation STRING
MEDIUMaddons/sms/models/mail_message.py7 """ Override MailMessage class in order to add a new type: SMS messages.STRING
MEDIUMaddons/mrp_subcontracting/models/stock_move.py20 """ Compute if the action button in order to see moves raw is visible """STRING
MEDIUMaddons/mrp_subcontracting/models/stock_move.py80 """ Open the produce wizard in order to register tracked components forSTRING
MEDIUMaddons/mail/models/mail_blacklist.py59 """ Override _search in order to grep search on email field and make itSTRING
MEDIUMaddons/mail/models/ir_config_parameter.py20 # prepares data for 'send' in conjunction with auto_commit=True in orderCOMMENT
MEDIUMaddons/web/static/lib/fullcalendar/core/index.global.js89 var css_248z = ":root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--fCODE
MEDIUMaddons/web/static/lib/fullcalendar/core/index.global.js1165 standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markersCODE
MEDIUM…ns/web/static/lib/fullcalendar/daygrid/index.global.js667 // Essentially, once you compute an element's height, never null-out.COMMENT
MEDIUMaddons/web/controllers/report.py102 """This function is used by 'action_manager_report.js' in order to trigger the download ofSTRING
LOW…_vendor/webauthn/helpers/validate_certificate_chain.py27 # We have no root certs to chain back to, so just pass on validationCOMMENT
MEDIUMaddons/website/static/tests/builder/images.test.js339 // in practice but the system should be robust to this case as theCOMMENT
MEDIUMaddons/website/static/src/scss/website.edit_mode.scss142 // TODO implement something more robust. This is currently for our onlyCOMMENT
MEDIUMaddons/website/static/src/scss/website.backend.scss18 // TODO: Find another way to set the height, not robust enough,COMMENT
MEDIUMaddons/website/static/src/utils/images.js1// Definitely not the right location for this file !!!COMMENT
MEDIUM…lder/plugins/options/cover_properties_option_plugin.js34 // robust enough.COMMENT
MEDIUMaddons/mrp/tests/test_order.py1401 """ Checks that, the production is robust against deletion of finished move."""STRING
MEDIUM⚡addons/mrp/models/stock_rule.py44 """ If 'run' is called on a kit, this override is made in order to callSTRING
MEDIUMaddons/mrp/models/mrp_production.py1572 """ returns 'assigned' if enough components are reserved in order to completeSTRING
MEDIUMaddons/crm/tests/test_crm_lead_assignment.py433 """ Test assignment on a more high volume oriented test set in order toSTRING
MEDIUMaddons/crm/tests/test_performances.py124 """ Test assignment on a more high volume oriented test set in order toSTRING
MEDIUM…tic/src/views/forecast_kanban/forecast_kanban_model.js20 // future, modify the original domain instead. It is not robustCOMMENT
LOW…10n_ar_withholding/wizards/account_payment_register.py92 # recompute against the amount just set.COMMENT
MEDIUMaddons/bus/static/tests/mock_websocket.js93 // Disable the interval until those tests are rewritten to be more robust.COMMENT
LOW…s/product/tests/test_product_attribute_value_config.py366 # CASE: no combination, no variant, just return the only variantCOMMENT
LOWaddons/mass_mailing/tests/test_mailing_list.py63 # simply set default list in contextCOMMENT
LOWaddons/mass_mailing/controllers/main.py455 # do not force lang, will simply use user contextCOMMENT
MEDIUMaddons/l10n_vn_edi_viettel/models/account_move.py425 """ Return the dict of data that will be sent to the api in order to create the invoice. """STRING
43 more matches not shown…
Verbosity Indicators77 hits · 117 pts
SeverityFileLineSnippetContext
LOW⚡…oo/addons/test_base/tests/test_tools/test_translate.py2721 # Step 1: record written in French; en_US == fr_FR == fr1_fr2STRING
LOW⚡…oo/addons/test_base/tests/test_tools/test_translate.py2727 # Step 2: update EN with FR-keyed terms; nl still falls back to new en_US = en1_en2STRING
LOW⚡…oo/addons/test_base/tests/test_tools/test_translate.py2775 # Step 1: record written in French; en_US == fr_FR == fr1_fr2STRING
LOW⚡…oo/addons/test_base/tests/test_tools/test_translate.py2781 # Step 2: update NL first → only term2 'monde'→'wereld'; term1 not providedSTRING
LOW…oo/addons/test_base/tests/test_tools/test_translate.py2740 # Step 3: update NL → only term2 'monde'→'wereld'; term1 not providedSTRING
LOW…oo/addons/test_base/tests/test_tools/test_translate.py2757 # Step 4: overwrite=False NL update → try term1 'bonjour'→'hallo'STRING
LOW…oo/addons/test_base/tests/test_tools/test_translate.py2796 # Step 3: update EN with FR-keyed terms; nl_NL is not in term_updates → unchangedSTRING
LOW…oo/addons/test_base/tests/test_tools/test_translate.py2809 # Step 4: overwrite=False NL update → try term1 'bonjour'→'hallo'STRING
LOWodoo/addons/test_base/tests/test_orm/test_modules_db.py44 # Step 0: setupCOMMENT
LOWodoo/addons/test_base/tests/test_orm/test_modules_db.py80 # Step 1: createCOMMENT
LOWodoo/addons/test_base/tests/test_orm/test_modules_db.py111 # Step 2: duplicateCOMMENT
LOW⚡odoo/addons/test_base/tests/test_orm/test_modules_db.py132 # Step 3: rename the duplicateCOMMENT
LOW⚡odoo/addons/test_base/tests/test_orm/test_modules_db.py141 # Step 4: drop the duplicateCOMMENT
LOW⚡odoo/addons/test_base/tests/test_orm/test_modules_db.py148 # Step 5: dump & restoreCOMMENT
LOWodoo/addons/test_base/tests/test_orm/test_modules_db.py166 # Step 6: dropCOMMENT
LOW⚡odoo/addons/base/models/res_users_deletion.py65 # Step 1: Delete UserCOMMENT
LOW⚡odoo/addons/base/models/res_users_deletion.py85 # Step 2: Delete Linked PartnerCOMMENT
LOWodoo/addons/base/models/res_partner.py1312 The purpose of this function is to build and return an address formatted accordingly to theSTRING
LOW…dons/pos_viva_com/static/src/app/hooks/use_viva_app.js30 * target the receipt screen, so we need to check if the URL containsCOMMENT
LOW…website_sale_slides/tests/test_course_purchase_flow.py42 # Step 2: create a sale_order with the course productCOMMENT
LOW⚡…website_sale_slides/tests/test_course_purchase_flow.py57 # Step 3: check that the customer is now a member of both channelCOMMENT
LOW⚡…website_sale_slides/tests/test_course_purchase_flow.py61 # Step 4: Same test as salesmanCOMMENT
LOW⚡…/web/static/tests/webclient/actions/load_state.test.js1678 // Step 1: Navigate to Sale->Customers with explicit menu_idCOMMENT
LOW⚡…/web/static/tests/webclient/actions/load_state.test.js1685 // Step 2: Emulate F5 reloadCOMMENT
LOWaddons/web/static/lib/hoot/hoot_utils.js1351 // Step 1: remove "exact" parts of the string query and add them as exact stringCOMMENT
LOWaddons/web/static/lib/hoot/hoot_utils.js1363 // Step 2: split remaining string query on white spaces and:COMMENT
LOW⚡addons/web/static/src/core/bottom_sheet/bottom_sheet.js97 // Step 1: Take measurementsCOMMENT
LOW⚡addons/web/static/src/core/bottom_sheet/bottom_sheet.js100 // Step 2: Apply DimensionsCOMMENT
LOW⚡addons/web/static/src/core/bottom_sheet/bottom_sheet.js103 // Step 3: Set initial positionCOMMENT
LOW⚡addons/web/static/src/core/bottom_sheet/bottom_sheet.js106 // Step 4: Setup event handlers after everything has been properly resized and positionedCOMMENT
LOW⚡addons/web/static/src/core/bottom_sheet/bottom_sheet.js109 // Step 5: Mark as readyCOMMENT
LOW…/static/src/model/relational_model/relational_model.js923 * occurrences to be updated. The purpose of this function is to find andCOMMENT
LOWaddons/web/controllers/pivot.py33 # Step 1: writing col group headersCOMMENT
LOWaddons/web/controllers/pivot.py65 # Step 2: writing measure headersCOMMENT
LOWaddons/web/controllers/pivot.py78 # Step 4: writing dataCOMMENT
LOW⚡…ides_survey/tests/test_course_certification_failure.py11 # Step 1: create a simple certificationCOMMENT
LOW⚡…ides_survey/tests/test_course_certification_failure.py52 # Step 2: link the certification to a slide of category 'certification'COMMENT
LOW⚡…ides_survey/tests/test_course_certification_failure.py60 # Step 3: add portal user as member of the channelCOMMENT
LOW⚡…ides_survey/tests/test_course_certification_failure.py70 # Step 4: fill in the created user_input with wrong answersCOMMENT
LOW⚡…ides_survey/tests/test_course_certification_failure.py81 # Step 5: simulate a 'retry'COMMENT
LOW⚡…ides_survey/tests/test_course_certification_failure.py91 # Step 6: fill in the new user_input with wrong answers againCOMMENT
LOW⚡…ides_survey/tests/test_course_certification_failure.py101 # Step 7: add portal user as member of the channel once againCOMMENT
LOW⚡…ides_survey/tests/test_course_certification_failure.py110 # Step 8: fill in the created user_input with correct answers this timeCOMMENT
LOWaddons/privacy_lookup/wizard/privacy_lookup_wizard.py56 # Step 1: Retrieve users/partners liked to email address or nameCOMMENT
LOWaddons/privacy_lookup/wizard/privacy_lookup_wizard.py101 # Step 3: Retrieve info on other modelsSTRING
LOW⚡addons/project/controllers/project_sharing_chatter.py17 So, we need to check if the chatter is for a task and if the res_id is a taskSTRING
LOW⚡addons/project/controllers/project_sharing_chatter.py20 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.js594 // Step 1: Search and add first variantCOMMENT
LOW⚡…_of_sale/static/tests/pos/tours/product_screen_tour.js604 // Step 2: Search and add product without attributes (used to delay UI update)COMMENT
LOW⚡…_of_sale/static/tests/pos/tours/product_screen_tour.js613 // Step 3: Search and add second variant of the original productCOMMENT
LOW…ons/point_of_sale/static/src/app/services/pos_store.js2072 // We need to check if a preparation display is configured to avoid unnecessary syncCOMMENT
LOWaddons/l10n_hu_edi/models/res_company.py139 # Step 1: Request a list of all transactions made during the specified time interval.STRING
LOWaddons/l10n_hu_edi/models/res_company.py161 # Step 2: Query unknown transactions in reverse order (latest first) and update invoice states accordingly.STRING
LOWaddons/account/tests/test_account_account.py812 # Step 2: Unmerge the accountCOMMENT
LOWaddons/account/wizard/account_merge_wizard.py141 # Step 1: Keep track of the company_ids and codes we should write on the account.COMMENT
LOW⚡addons/account/wizard/account_merge_wizard.py157 # Step 2: Check that we have write access to all the accounts and access to all the companiesCOMMENT
LOW⚡addons/account/wizard/account_merge_wizard.py161 # Step 3: Update records in DB.COMMENT
LOWaddons/account/wizard/account_merge_wizard.py195 # Step 4: Remove merged accountsCOMMENT
LOWaddons/account/wizard/account_merge_wizard.py208 # Step 5: Write company_ids and codes on the accountCOMMENT
LOW⚡addons/account/models/account_account.py1291 # Step 1: Check access rights.STRING
17 more matches not shown…
Structural Annotation Overuse69 hits · 109 pts
SeverityFileLineSnippetContext
LOW⚡…oo/addons/test_base/tests/test_tools/test_translate.py2721 # Step 1: record written in French; en_US == fr_FR == fr1_fr2STRING
LOW⚡…oo/addons/test_base/tests/test_tools/test_translate.py2727 # Step 2: update EN with FR-keyed terms; nl still falls back to new en_US = en1_en2STRING
LOW⚡…oo/addons/test_base/tests/test_tools/test_translate.py2775 # Step 1: record written in French; en_US == fr_FR == fr1_fr2STRING
LOW⚡…oo/addons/test_base/tests/test_tools/test_translate.py2781 # Step 2: update NL first → only term2 'monde'→'wereld'; term1 not providedSTRING
LOW…oo/addons/test_base/tests/test_tools/test_translate.py2740 # Step 3: update NL → only term2 'monde'→'wereld'; term1 not providedSTRING
LOW…oo/addons/test_base/tests/test_tools/test_translate.py2757 # Step 4: overwrite=False NL update → try term1 'bonjour'→'hallo'STRING
LOW…oo/addons/test_base/tests/test_tools/test_translate.py2796 # Step 3: update EN with FR-keyed terms; nl_NL is not in term_updates → unchangedSTRING
LOW…oo/addons/test_base/tests/test_tools/test_translate.py2809 # Step 4: overwrite=False NL update → try term1 'bonjour'→'hallo'STRING
LOWodoo/addons/test_base/tests/test_orm/test_modules_db.py44 # Step 0: setupCOMMENT
LOWodoo/addons/test_base/tests/test_orm/test_modules_db.py80 # Step 1: createCOMMENT
LOWodoo/addons/test_base/tests/test_orm/test_modules_db.py111 # Step 2: duplicateCOMMENT
LOW⚡odoo/addons/test_base/tests/test_orm/test_modules_db.py132 # Step 3: rename the duplicateCOMMENT
LOW⚡odoo/addons/test_base/tests/test_orm/test_modules_db.py141 # Step 4: drop the duplicateCOMMENT
LOW⚡odoo/addons/test_base/tests/test_orm/test_modules_db.py148 # Step 5: dump & restoreCOMMENT
LOWodoo/addons/test_base/tests/test_orm/test_modules_db.py166 # Step 6: dropCOMMENT
LOW⚡odoo/addons/base/models/res_users_deletion.py65 # Step 1: Delete UserCOMMENT
LOW⚡odoo/addons/base/models/res_users_deletion.py85 # Step 2: Delete Linked PartnerCOMMENT
LOWodoo/orm/fields_properties.py687 # NOTE: This function misbehaves for groupby so that the query rowcountCOMMENT
LOW…website_sale_slides/tests/test_course_purchase_flow.py42 # Step 2: create a sale_order with the course productCOMMENT
LOW⚡…website_sale_slides/tests/test_course_purchase_flow.py57 # Step 3: check that the customer is now a member of both channelCOMMENT
LOW⚡…website_sale_slides/tests/test_course_purchase_flow.py61 # Step 4: Same test as salesmanCOMMENT
LOW⚡…/web/static/tests/webclient/actions/load_state.test.js1678 // Step 1: Navigate to Sale->Customers with explicit menu_idCOMMENT
LOW⚡…/web/static/tests/webclient/actions/load_state.test.js1685 // Step 2: Emulate F5 reloadCOMMENT
LOWaddons/web/static/lib/hoot/hoot_utils.js1351 // Step 1: remove "exact" parts of the string query and add them as exact stringCOMMENT
LOWaddons/web/static/lib/hoot/hoot_utils.js1363 // Step 2: split remaining string query on white spaces and:COMMENT
LOW⚡addons/web/static/src/core/bottom_sheet/bottom_sheet.js97 // Step 1: Take measurementsCOMMENT
LOW⚡addons/web/static/src/core/bottom_sheet/bottom_sheet.js100 // Step 2: Apply DimensionsCOMMENT
LOW⚡addons/web/static/src/core/bottom_sheet/bottom_sheet.js103 // Step 3: Set initial positionCOMMENT
LOW⚡addons/web/static/src/core/bottom_sheet/bottom_sheet.js106 // Step 4: Setup event handlers after everything has been properly resized and positionedCOMMENT
LOW⚡addons/web/static/src/core/bottom_sheet/bottom_sheet.js109 // Step 5: Mark as readyCOMMENT
LOWaddons/web/controllers/pivot.py33 # Step 1: writing col group headersCOMMENT
LOWaddons/web/controllers/pivot.py65 # Step 2: writing measure headersCOMMENT
LOWaddons/web/controllers/pivot.py78 # Step 4: writing dataCOMMENT
LOW⚡…ides_survey/tests/test_course_certification_failure.py11 # Step 1: create a simple certificationCOMMENT
LOW⚡…ides_survey/tests/test_course_certification_failure.py52 # Step 2: link the certification to a slide of category 'certification'COMMENT
LOW⚡…ides_survey/tests/test_course_certification_failure.py60 # Step 3: add portal user as member of the channelCOMMENT
LOW⚡…ides_survey/tests/test_course_certification_failure.py70 # Step 4: fill in the created user_input with wrong answersCOMMENT
LOW⚡…ides_survey/tests/test_course_certification_failure.py81 # Step 5: simulate a 'retry'COMMENT
LOW⚡…ides_survey/tests/test_course_certification_failure.py91 # Step 6: fill in the new user_input with wrong answers againCOMMENT
LOW⚡…ides_survey/tests/test_course_certification_failure.py101 # Step 7: add portal user as member of the channel once againCOMMENT
LOW⚡…ides_survey/tests/test_course_certification_failure.py110 # Step 8: fill in the created user_input with correct answers this timeCOMMENT
LOWaddons/privacy_lookup/wizard/privacy_lookup_wizard.py56 # Step 1: Retrieve users/partners liked to email address or nameCOMMENT
LOWaddons/privacy_lookup/wizard/privacy_lookup_wizard.py101 # Step 3: Retrieve info on other modelsSTRING
LOW⚡…_of_sale/static/tests/pos/tours/product_screen_tour.js594 // Step 1: Search and add first variantCOMMENT
LOW⚡…_of_sale/static/tests/pos/tours/product_screen_tour.js604 // Step 2: Search and add product without attributes (used to delay UI update)COMMENT
LOW⚡…_of_sale/static/tests/pos/tours/product_screen_tour.js613 // Step 3: Search and add second variant of the original productCOMMENT
LOWaddons/l10n_hu_edi/models/res_company.py139 # Step 1: Request a list of all transactions made during the specified time interval.STRING
LOWaddons/l10n_hu_edi/models/res_company.py161 # Step 2: Query unknown transactions in reverse order (latest first) and update invoice states accordingly.STRING
LOWaddons/account/tests/test_account_account.py812 # Step 2: Unmerge the accountCOMMENT
LOWaddons/account/wizard/account_merge_wizard.py141 # Step 1: Keep track of the company_ids and codes we should write on the account.COMMENT
LOW⚡addons/account/wizard/account_merge_wizard.py157 # Step 2: Check that we have write access to all the accounts and access to all the companiesCOMMENT
LOW⚡addons/account/wizard/account_merge_wizard.py161 # Step 3: Update records in DB.COMMENT
LOWaddons/account/wizard/account_merge_wizard.py195 # Step 4: Remove merged accountsCOMMENT
LOWaddons/account/wizard/account_merge_wizard.py208 # Step 5: Write company_ids and codes on the accountCOMMENT
LOW⚡addons/account/models/account_account.py1291 # Step 1: Check access rights.STRING
LOW⚡addons/account/models/account_account.py1294 # Step 2: Create new accounts.STRING
LOW⚡addons/account/models/account_account.py1510 # Step 4: Change check_company fields to only keep values compatible with the account's company, and update compSTRING
LOW⚡addons/account/models/account_account.py1520 # Step 5: Put a log in the chatter of the newly-created accountsSTRING
LOWaddons/account/models/account_account.py1311 # Step 3: Update foreign keys in DB.STRING
LOW⚡addons/l10n_ro_edi/tests/test_ro_edi.py22 # Step 1: First send succeeds, index 'AA' receivedCOMMENT
9 more matches not shown…
AI Structural Patterns94 hits · 76 pts
SeverityFileLineSnippetContext
LOWodoo/tools/mail.py425CODE
LOWodoo/tools/image.py289CODE
LOWodoo/tools/_vendor/send_file.py36CODE
LOWodoo/addons/base/tests/common.py518CODE
LOWodoo/addons/base/wizard/base_module_update.py30CODE
LOWodoo/addons/base/models/ir_mail_server.py355CODE
LOWodoo/addons/base/models/ir_mail_server.py524CODE
LOWodoo/addons/base/models/ir_mail_server.py773CODE
LOWodoo/addons/base/models/res_users_settings.py39CODE
LOWodoo/addons/base/models/ir_binary.py174CODE
LOWodoo/addons/base/models/ir_qweb.py2920CODE
LOWodoo/addons/base/models/assetsbundle.py47CODE
LOWodoo/tests/common.py451CODE
LOWodoo/tests/common.py2733CODE
LOWodoo/tests/common.py2877CODE
LOWodoo/http/response.py103CODE
LOWodoo/http/response.py140CODE
LOWodoo/orm/models.py3075CODE
LOWaddons/website_event_track/models/event_track.py487CODE
LOWaddons/website_event_track/controllers/webmanifest.py40CODE
LOWaddons/website_event_track/controllers/webmanifest.py57CODE
LOWaddons/website_event_track/controllers/event_track.py425CODE
LOWaddons/l10n_sa_edi/tests/common.py249CODE
LOWaddons/l10n_sa_edi/tests/common.py289CODE
LOWaddons/l10n_sa_edi/tests/common.py327CODE
LOWaddons/calendar/models/calendar_alarm_manager.py91CODE
LOWaddons/pos_self_order/tests/self_order_common_test.py254CODE
LOW…oud_storage_google/utils/cloud_storage_google_utils.py112CODE
LOWaddons/website_hr_recruitment/controllers/main.py26CODE
LOW…/mrp_subcontracting/report/mrp_report_bom_structure.py41CODE
LOWaddons/mail/tools/discuss.py752CODE
LOWaddons/mail/tests/common.py217CODE
LOWaddons/mail/tests/common.py229CODE
LOWaddons/mail/tests/common.py251CODE
LOWaddons/mail/tests/common.py291CODE
LOWaddons/mail/tests/common.py629CODE
LOWaddons/mail/tests/common.py738CODE
LOWaddons/mail/tests/common.py1063CODE
LOWaddons/mail/models/mail_thread.py2256CODE
LOWaddons/mail/models/mail_thread.py2815CODE
LOWaddons/mail/models/mail_thread.py2993CODE
LOWaddons/mail/models/mail_thread.py3594CODE
LOWaddons/mail/models/discuss/discuss_channel.py2084CODE
LOWaddons/web/models/models.py567CODE
LOWaddons/web/controllers/binary.py65CODE
LOWaddons/web/controllers/binary.py186CODE
LOWaddons/web/controllers/webmanifest.py96CODE
LOWaddons/web/controllers/pivot.py98CODE
LOWaddons/website_slides/controllers/main.py535CODE
LOW…webauthn/registration/generate_registration_options.py42CODE
LOWaddons/account_peppol/tools/peppol_iap_connector.py72CODE
LOWaddons/website/models/ir_module_module.py417CODE
LOWaddons/website/models/assets.py342CODE
LOWaddons/website/models/website.py1398CODE
LOWaddons/website/controllers/main.py905CODE
LOWaddons/mrp/models/mrp_production.py1489CODE
LOWaddons/mrp/report/mrp_report_bom_structure.py179CODE
LOWaddons/populate/generators/generator.py114CODE
LOWaddons/crm/tests/common.py313CODE
LOWaddons/crm/wizard/crm_lead_lost.py30CODE
34 more matches not shown…
Modern Structural Boilerplate67 hits · 66 pts
SeverityFileLineSnippetContext
LOWodoo/logging.py8__all__ = [ # noqa: RUF022CODE
LOWodoo/tools/mail.py34__all__ = [CODE
LOWodoo/tools/version_tag_reset.py22__all__ = ["reset_classes_tp_versions_used"]CODE
LOWodoo/tools/misc.py52__all__ = [CODE
LOWodoo/tools/binary.py6__all__ = ['BinaryBytes', 'BinaryValue']CODE
LOWodoo/tools/translate.py54__all__ = [CODE
LOWodoo/tools/float_utils.py10__all__ = [CODE
LOWodoo/tools/template_inheritance.py13__all__ = []CODE
LOWodoo/tools/date_utils.py60__all__ = [CODE
LOWodoo/tools/convert.py3__all__ = [CODE
LOWodoo/tools/mimetypes.py13__all__ = [CODE
LOWodoo/tools/lru.py6__all__ = ['LRU']CODE
LOWodoo/tools/barcode.py6__all__ = ['check_barcode_encoding', 'createBarcodeDrawing', 'get_barcode_font']CODE
LOWodoo/tools/xml_utils.py15__all__ = [CODE
LOWodoo/tools/which.py42__all__ = ['F_OK', 'R_OK', 'W_OK', 'X_OK', 'defpath', 'defpathext', 'dirname', 'pathsep', 'which', 'which_files']CODE
LOWodoo/tools/urls.py4__all__ = ['urljoin']CODE
LOWodoo/tools/image.py24__all__ = ["image_process"]CODE
LOWodoo/tools/func.py10__all__ = [CODE
LOWodoo/tools/pdf/incremental_pdf_merge.py297 def update_cached_indirect_object(pdf_reader: PdfFileReader, obj_gen: int, obj_id: int, obj: Any) -> None:CODE
LOWodoo/tools/pdf/_pypdf2_2.py8__all__ = [CODE
LOWodoo/tools/pdf/_pypdf.py9__all__ = [CODE
LOWodoo/tools/arabic_reshaper/__init__.py21__all__ = ['reshape']CODE
LOWodoo/tools/safe_eval/evaluation.py40__all__ = [CODE
LOWodoo/tools/safe_eval/runtime.py46__all__ = [CODE
LOWodoo/addons/test_lint/tests/test_docstring.py14logger = logging.getLogger(__name__)CODE
LOWodoo/addons/base/models/ir_cron.py574 def _update_failure_count(self, job: dict, status: CompletionStatus) -> None:STRING
LOWodoo/tests/shell.py1__all__ = ['run_tests']CODE
LOWodoo/http/session.py394def update_session_token(session: Session, env: Environment) -> None:CODE
LOWodoo/http/response.py80 def set_default(self, template: str | None = None, qcontext: dict | None = None, uid: int | None = None) -> None:CODE
LOWodoo/http/router.py233 def set_csp(self, response: Response) -> None:CODE
LOWodoo/http/router.py496def _set_session_and_dbname(request: Request) -> None:CODE
LOW⚡odoo/http/requestlib.py142 def update_env(self, user: int | BaseModel | None = None, context: dict | None = None, su: bool | None = None) -> NoCODE
LOWodoo/http/requestlib.py155 def update_context(self, **overrides) -> None:CODE
LOWodoo/orm/models.py5536 def _update_cache(self, values: ValuesType, validate: bool = True) -> None:STRING
LOWodoo/orm/fields.py522 def _setup_attrs__(self, model_class: type[BaseModel], name: str) -> None:CODE
LOWodoo/orm/fields.py1234 def update_db(self, model: BaseModel, columns: dict[str, dict[str, typing.Any]]) -> None:CODE
LOWodoo/orm/fields.py1783 def _update_cache(self, records: BaseModel, cache_value: typing.Any, dirty: bool = False) -> None:CODE
LOWodoo/orm/query.py257 def set_result_ids(self, ids: Iterable[int], ordered: bool = True) -> None:CODE
LOWodoo/orm/registry.py456 def _setup_models__(self, cr: BaseCursor, model_names: Iterable[str] | None = None) -> None: # noqa: PLW3201CODE
LOWodoo/orm/environments.py1264 def update_raw(self, records: BaseModel, field: Field, values: Iterable, dirty: bool = False) -> None:CODE
LOWodoo/modules/module_graph.py257 def _update_depends(self, names: Iterable[str]) -> None:CODE
LOWodoo/modules/module_graph.py271 def _update_depth(self, names: Iterable[str]) -> None:CODE
LOWodoo/modules/module_graph.py280 def _update_from_database(self, names: Iterable[str]) -> None:CODE
LOWodoo/modules/module.py45__all__ = [CODE
LOWaddons/base_report_paper_muncher/paper_muncher.py28__all__ = ['PaperMuncherInfo', 'PaperMuncherServer', 'paper_muncher']CODE
LOWaddons/spreadsheet/controllers/main.py7logger = logging.getLogger(__name__)CODE
LOWaddons/mail/controllers/attachment.py22logger = logging.getLogger(__name__)CODE
LOWaddons/web/tooling/icons/generate_icons.py177def update_metrics(font: TTFont, spec, transform) -> None:CODE
LOWaddons/auth_passkey/_vendor/webauthn/__init__.py13__all__ = [CODE
LOW…dons/auth_passkey/_vendor/webauthn/helpers/__init__.py23__all__ = [CODE
LOW…/auth_passkey/_vendor/webauthn/helpers/tpm/__init__.py4__all__ = ["parse_cert_info", "parse_pub_area"]CODE
LOWaddons/google_recaptcha/models/ir_http.py10logger = logging.getLogger(__name__)CODE
LOWaddons/account_peppol/tests/common.py12__all__ = [CODE
LOWaddons/website/models/ir_http.py22logger = logging.getLogger(__name__)CODE
LOWaddons/website/models/website_page.py20logger = logging.getLogger(__name__)CODE
LOWaddons/website/models/website.py43logger = logging.getLogger(__name__)CODE
LOWaddons/website/controllers/main.py50logger = logging.getLogger(__name__)CODE
LOWaddons/product/controllers/product_document.py9logger = logging.getLogger(__name__)CODE
LOWaddons/html_editor/tools.py15logger = logging.getLogger(__name__)CODE
LOWaddons/html_editor/models/ir_qweb_fields.py32logger = logging.getLogger(__name__)CODE
7 more matches not shown…
Slop Phrases30 hits · 42 pts
SeverityFileLineSnippetContext
LOW…ns/test_base/tests/test_orm/test_registry_signaling.py410 # make sure to fetch the field from the databaseCOMMENT
LOW…oo/addons/test_base/tests/test_modules/test_loading.py33 # make sure to reset the transactionCOMMENT
LOWaddons/l10n_in_edi/models/account_move.py227 # make sure to clear the error before sending againCOMMENT
LOWaddons/l10n_in_edi/models/account_move.py361 # make sure to clear the error before cancelling againCOMMENT
LOWaddons/l10n_in_edi/models/account_move_line.py46 # Please make sure to change, if any change in error codesCOMMENT
LOWaddons/calendar/models/calendar_event.py1195 # don't forget to update recurrences if there are some base events in the set to unlink,STRING
LOWaddons/calendar/models/calendar_event.py1195 # don't forget to update recurrences if there are some base events in the set to unlink,STRING
LOWaddons/web/static/src/core/utils/patch.js62 * If the intent is to patch a class, don't forget to patch the prototype, unlessCOMMENT
LOW…rc/views/fields/iframe_wrapper/iframe_wrapper_field.js42 // If HTML, don't forget to adjust the sanitize options to avoid stripping most of the metadataCOMMENT
LOW…ns/hr_recruitment/views/hr_recruitment_stage_views.xml105 Don't forget to specify the department if your recruitment processCODE
LOW…dons/website_slides/static/src/js/tours/slides_tour.js172 content: markup(_t("Once you're done, don't forget to <b>Publish</b> your course.")),CODE
LOWaddons/google_recaptcha/static/src/scss/recaptcha.scss1// Hide google recaptcha V3 don't forget to add legalCOMMENT
LOWaddons/mass_mailing/data/mailing_data_templates.xml61 <t t-if="mailing.ab_testing_winner_selection == 'manual'">Don't forget to send your preferred version</t>CODE
LOWaddons/mass_mailing/data/mailing_data_templates.xml62 <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.xml146 - no need to answer the same question twice. Also, please <b>don't forget to vote</b>CODE
LOWaddons/pos_stripe/views/pos_payment_method_views.xml14 <button name="action_stripe_key" type="object" icon="east" string="Don't forget to complCODE
LOWaddons/microsoft_calendar/utils/microsoft_event.py136 # don't forget to also set the global event ID on the Odoo event to easeCOMMENT
LOWaddons/microsoft_calendar/utils/microsoft_event.py136 # don't forget to also set the global event ID on the Odoo event to easeCOMMENT
LOWaddons/website_event/static/src/js/tours/event_tour.js51 content: markup(_t("Don't forget to click <b>save</b> when you're done.")),CODE
MEDIUM⚡addons/account/tests/test_account_account.py94 # 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.py98 # Test that you can modify the code of an account in another company by passing a CREATE value to `code_mapping_COMMENT
MEDIUMaddons/account/tests/test_account_account.py46 # Test that you can add a company to an account if you add the code at the same timeCOMMENT
LOWaddons/account/wizard/account_payment_register.py1238 # Fix the balance but make sure to peek the liquidity and counterpart lines first.STRING
LOW⚡addons/account/models/account_tax.py2550 Don't forget to call '_add_tax_details_in_base_lines' and '_round_base_lines_tax_details' before calling this meSTRING
LOW⚡addons/account/models/account_tax.py2750 Don't forget to call '_add_tax_details_in_base_lines' and '_round_base_lines_tax_details' before calling this meSTRING
LOWaddons/account/models/account_tax.py3093 Don't forget to call '_add_tax_details_in_base_lines', '_round_base_lines_tax_details' andSTRING
LOWaddons/stock/models/stock_picking.py664 # make sure to write `schedule_date` *after* the `stock.move` creation inCOMMENT
LOW⚡addons/sale_purchase/models/product_template.py44 return self.env._("Each time you sell this product through a SO, a RfQ is automatically created to buy the pCODE
MEDIUMaddons/survey/models/survey_survey.py160 help="This code will be used by your attendees to reach your session. Feel free to customize it however you likeCODE
LOWaddons/website_sale/models/product_template.py923 # make sure to fetch the right product for the given combinationCOMMENT
Cross-Language Confusion (JS/TS)4 hits · 22 pts
SeverityFileLineSnippetContext
HIGH…/static/tests/unit/services/self_order_service.test.js990 print() {CODE
HIGH…/static/src/webclient/actions/reports/report_action.js73 print() {CODE
HIGHaddons/web/static/src/core/utils/nested_sortable.js22 * to verify if a drop location is allowed. return True by defaultCOMMENT
HIGHaddons/api_doc/static/src/utils/doc_code_gen.js92print(data)CODE
Docstring Block Structure4 hits · 20 pts
SeverityFileLineSnippetContext
HIGH…oud_storage_google/utils/cloud_storage_google_utils.py126Generate a V4 signed URL to provide query-string auth'n to a resource. This function is a simplified version of theSTRING
HIGH…/webauthn/registration/verify_registration_response.py77Verify an authenticator's response to navigator.credentials.create() Args: - `credential`: The value returnSTRING
HIGH…authn/authentication/verify_authentication_response.py56Verify a response from navigator.credentials.get() Args: - `credential`: The value returned from `navigatorSTRING
HIGHaddons/website/controllers/main.py1718 Fetch SEO metadata for a given record. This endpoint is used by the website editor to retrieve meta fiSTRING
Magic Placeholder Names4 hits · 20 pts
SeverityFileLineSnippetContext
HIGHaddons/api_doc/static/tests/api_doc.test.js140 constapiKey="YOUR_API_KEY";CODE
HIGHaddons/api_doc/static/src/utils/doc_code_gen.js38 const apiKey = "YOUR_API_KEY";CODE
HIGHaddons/api_doc/static/src/utils/doc_code_gen.js64 --oauth2-bearer YOUR_API_KEY \\CODE
HIGHaddons/api_doc/static/src/utils/doc_code_gen.js79api_key = "YOUR_API_KEY"CODE
Overly Generic Function Names4 hits · 3 pts
SeverityFileLineSnippetContext
LOWodoo/tools/misc.py691 def do_stuff():STRING
LOWodoo/addons/test_base/tests/test_tools/test_convert.py70 def test_function(self):CODE
LOWaddons/html_editor/static/lib/cropperjs/cropper.js478 function getData(element, name) {CODE
LOWaddons/html_editor/static/lib/cropperjs/cropper.js2732 getData: function getData() {CODE
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUM…s/l10n_es_edi_tbai/models/l10n_es_edi_tbai_document.py719 # Render digital signature scaffold from QWebCOMMENT
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOW⚡addons/l10n_fr_pdp/models/pdp_flow_xml_builder.py422 # TODO: implement ? Seller always has TT-34, so this not usefull ??COMMENT