Repository Analysis

odoo/odoo

Odoo. Open Source Apps To Grow Your Business.

14.1 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of odoo/odoo, a Python project with 52,992 GitHub stars. SynthScan v2.0 examined 3,045,049 lines of code across 22299 source files, recording 32635 pattern matches distributed across 24 syntactic categories. The overall adjusted score of 14.1 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

14.1
Adjusted Score
14.1
Raw Score
100%
Time Factor
2026-07-14
Last Push
53.0K
Stars
Python
Language
3.0M
Lines of Code
22.3K
Files
32.6K
Pattern Hits
2026-07-14
Scan Date
0.03
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 215HIGH 452MEDIUM 3438LOW 28530

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 32635 distinct pattern matches across 24 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers18270 hits · 17348 pts
SeverityFileLineSnippetContext
LOWodoo/netsvc.py345def showwarning_with_traceback(message, category, filename, lineno, file=None, line=None):STRING
LOWodoo/http.py955def _check_and_complete_route_definition(controller_cls, submethod, merged_routing):CODE
LOWodoo/http.py1099 def get_missing_session_identifiers(self, identifiers):CODE
LOWodoo/http.py1469def make_request_wrap_methods(attr):CODE
LOWodoo/http.py2014 def _get_profiler_context_manager(self):CODE
LOWodoo/http.py452def get_session_max_inactivity(env):STRING
LOWodoo/tools/mail.py157 def kill_conditional_comments(self, doc):CODE
LOWodoo/tools/mail.py186 def _tag_matching_regex_in_text(regex, node, tag='span', attrs=None):CODE
LOWodoo/tools/mail.py728def generate_tracking_message_id(res_id):CODE
LOWodoo/tools/mail.py799def email_split_and_normalize(text):CODE
LOWodoo/tools/mail.py804def email_split_and_format_normalize(text):CODE
LOWodoo/tools/misc.py289def file_open_temporary_directory(env: Environment):CODE
LOWodoo/tools/misc.py1590def format_decimalized_number(number: float, decimal: int = 1) -> str:CODE
LOWodoo/tools/misc.py1615def format_decimalized_amount(amount: float, currency=None) -> str:CODE
LOWodoo/tools/misc.py1854def limited_field_access_token(record, field_name, timestamp=None, *, scope):STRING
LOWodoo/tools/misc.py1890def verify_limited_field_access_token(record, field_name, access_token, *, scope):STRING
LOWodoo/tools/misc.py1959def named_to_positional_printf(string: str, args: Mapping) -> tuple[str, tuple]:STRING
LOWodoo/tools/translate.py96def is_translatable_attrib_value(node):CODE
LOWodoo/tools/translate.py106def is_translatable_attrib_text(node):CODE
LOWodoo/tools/translate.py129def translate_format_string_expression(term, callback):CODE
LOWodoo/tools/translate.py1073def _extract_translatable_qweb_terms(element, callback):CODE
LOWodoo/tools/translate.py1142def extract_spreadsheet_terms(fileobj, keywords, comment_tags, options):CODE
LOWodoo/tools/translate.py1258 def _get_translatable_records(self, imd_records):CODE
LOWodoo/tools/translate.py1326 def _export_translatable_records(self, records, field_names):CODE
LOWodoo/tools/translate.py1388 def _export_translatable_records(self):CODE
LOWodoo/tools/translate.py1425 def _verified_module_filepaths(self, fname, path, root):CODE
LOWodoo/tools/translate.py1464 def _export_translatable_resources(self):CODE
LOWodoo/tools/translate.py1806def get_datafile_translation_path(module_name: str) -> Iterator[str]:STRING
LOWodoo/tools/translate.py1824 def _read_code_translations_file(fileobj, filter_func):STRING
LOWodoo/tools/translate.py1854 def _load_python_translations(self, module_name, lang):STRING
LOWodoo/tools/translate.py1884def _get_translation_upgrade_queries(cr, field):STRING
LOWodoo/tools/config.py542 def _flush_log_and_warn_entries(cls):CODE
LOWodoo/tools/template_inheritance.py23def add_stripped_items_before(node, spec, extract):CODE
LOWodoo/tools/mimetypes.py55def _check_open_container_format(data):STRING
LOWodoo/tools/js_transpiler.py187def convert_export_function_default(content):STRING
LOWodoo/tools/js_transpiler.py216def convert_export_class_default(content):STRING
LOWodoo/tools/js_transpiler.py305def convert_variable_export_default(content):STRING
LOWodoo/tools/js_transpiler.py476def convert_legacy_default_import(content):STRING
LOWodoo/tools/js_transpiler.py531def convert_default_and_named_import(content):STRING
LOWodoo/tools/js_transpiler.py627def convert_default_and_star_import(content):STRING
LOWodoo/tools/js_transpiler.py651def convert_unnamed_relative_import(content):STRING
LOWodoo/tools/js_transpiler.py687def relative_path_to_module_path(url, path_rel):STRING
LOWodoo/tools/js_transpiler.py731def 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/sql.py361def convert_column_translatable(cr, tablename, columnname, columntype):CODE
LOWodoo/tools/sql.py672def increment_fields_skiplock(records, *fields):CODE
LOWodoo/tools/sql.py708def value_to_translated_trigram_pattern(value):CODE
LOWodoo/tools/sql.py734def pattern_to_translated_trigram_pattern(pattern):CODE
LOWodoo/tools/profiler.py406 def _get_directive_profiling_name(self, directive, attrib):CODE
LOWodoo/tools/image.py540def image_guess_size_from_field_name(field_name: str) -> Tuple[int, int]:CODE
LOWodoo/tools/pdf/__init__.py668 def _create_attachment_object(self, attachment):CODE
LOWodoo/tools/pdf/signature.py75 def _load_key_and_certificate(self) -> tuple[Optional[PrivateKeyTypes], Optional[Certificate]]:CODE
LOWodoo/tools/pdf/signature.py445 def _compute_digest_from_byte_range(self, data: bytes, byte_range: list[int]) -> bytes:CODE
LOWodoo/tools/pdf/signature.py466 def _create_number_array_object(self, array: list[int]) -> ArrayObject:CODE
18210 more matches not shown…
Decorative Section Separators2656 hits · 9076 pts
SeverityFileLineSnippetContext
MEDIUModoo/http.py509# =========================================================COMMENT
MEDIUModoo/http.py511# =========================================================COMMENT
MEDIUModoo/http.py702# =========================================================COMMENT
MEDIUModoo/http.py704# =========================================================COMMENT
MEDIUModoo/http.py987# =========================================================COMMENT
MEDIUModoo/http.py989# =========================================================COMMENT
MEDIUModoo/http.py1343# =========================================================COMMENT
MEDIUModoo/http.py1345# =========================================================COMMENT
MEDIUModoo/http.py1451# =========================================================COMMENT
MEDIUModoo/http.py1453# =========================================================COMMENT
MEDIUModoo/http.py1853 # =====================================================COMMENT
MEDIUModoo/http.py1855 # =====================================================COMMENT
MEDIUModoo/http.py1931 # =====================================================COMMENT
MEDIUModoo/http.py1933 # =====================================================COMMENT
MEDIUModoo/http.py2216 # =====================================================COMMENT
MEDIUModoo/http.py2218 # =====================================================COMMENT
MEDIUModoo/http.py2389# =========================================================COMMENT
MEDIUModoo/http.py2391# =========================================================COMMENT
MEDIUModoo/http.py2696# =========================================================COMMENT
MEDIUModoo/http.py2698# =========================================================COMMENT
MEDIUModoo/http.py217# =========================================================STRING
MEDIUModoo/http.py219# =========================================================STRING
MEDIUModoo/http.py341# =========================================================STRING
MEDIUModoo/http.py343# =========================================================STRING
MEDIUModoo/http.py404 # -----------STRING
MEDIUModoo/init.py11# ----------------------------------------------------------COMMENT
MEDIUModoo/init.py15# ----------------------------------------------------------COMMENT
MEDIUModoo/init.py21# ----------------------------------------------------------COMMENT
MEDIUModoo/init.py24# ----------------------------------------------------------COMMENT
MEDIUModoo/init.py31# ----------------------------------------------------------COMMENT
MEDIUModoo/init.py34# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/mail.py470# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/mail.py472# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/mail.py64#----------------------------------------------------------COMMENT
MEDIUModoo/tools/mail.py66#----------------------------------------------------------COMMENT
MEDIUModoo/tools/mail.py714#----------------------------------------------------------COMMENT
MEDIUModoo/tools/mail.py716#----------------------------------------------------------COMMENT
MEDIUModoo/tools/misc.py138#----------------------------------------------------------COMMENT
MEDIUModoo/tools/misc.py140#----------------------------------------------------------COMMENT
MEDIUModoo/tools/misc.py148# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/misc.py150# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/misc.py191# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/misc.py193# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/misc.py316#----------------------------------------------------------COMMENT
MEDIUModoo/tools/misc.py318#----------------------------------------------------------COMMENT
MEDIUModoo/tools/misc.py707# ---------------------------------------------COMMENT
MEDIUModoo/tools/misc.py709# ---------------------------------------------COMMENT
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
MEDIUModoo/tools/image.py324# ----------------------------------------COMMENT
MEDIUModoo/tools/image.py326# ---------------------------------------COMMENT
MEDIUModoo/tools/pdf/__init__.py20# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/pdf/__init__.py25# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/pdf/__init__.py68# ----------------------------------------------------------COMMENT
MEDIUModoo/tools/pdf/__init__.py73# ----------------------------------------------------------COMMENT
MEDIUModoo/osv/expression.py164# --------------------------------------------------COMMENT
2596 more matches not shown…
Unused Imports7074 hits · 6810 pts
SeverityFileLineSnippetContext
LOWodoo/logging.py5CODE
LOWodoo/logging.py5CODE
LOWodoo/sql_db.py9CODE
LOWodoo/tools/misc.py5CODE
LOWodoo/tools/misc.py44CODE
LOWodoo/tools/misc.py44CODE
LOWodoo/tools/misc.py44CODE
LOWodoo/tools/translate.py8CODE
LOWodoo/tools/date_utils.py1CODE
LOWodoo/tools/cache.py3CODE
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__.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__.py16CODE
LOWodoo/tools/__init__.py17CODE
LOWodoo/tools/__init__.py17CODE
LOWodoo/tools/__init__.py17CODE
LOWodoo/tools/__init__.py17CODE
LOWodoo/tools/__init__.py18CODE
LOWodoo/tools/__init__.py18CODE
LOWodoo/tools/__init__.py18CODE
LOWodoo/tools/__init__.py19CODE
LOWodoo/tools/__init__.py19CODE
LOWodoo/tools/__init__.py19CODE
LOWodoo/tools/__init__.py19CODE
LOWodoo/tools/__init__.py20CODE
LOWodoo/tools/intervals.py2CODE
LOWodoo/tools/mimetypes.py8CODE
LOWodoo/tools/appdirs.py10CODE
LOWodoo/tools/appdirs.py459CODE
LOWodoo/tools/cloc.py11CODE
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/set_expression.py1CODE
LOWodoo/tools/pdf/_pypdf2_2.py1CODE
7014 more matches not shown…
Hallucination Indicators215 hits · 2398 pts
SeverityFileLineSnippetContext
CRITICALodoo/addons/test_http/tests/test_common.py36 odoo.http.root.session_store.store.clear()CODE
CRITICALodoo/addons/base/models/res_partner.py76 address_view_id = self.env.company.country_id.address_view_id.sudo()CODE
CRITICALaddons/sale/models/sale_order.py1709 self.env.cr.precommit.data.pop(f'mail.tracking.{self._name}', {})CODE
CRITICALaddons/sale/static/src/js/sale_product_field.js109 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…ons/im_livechat/static/src/core/common/thread_patch.js20 if (this.props.thread.livechatVisitorMember.im_status.includes("offline")) {CODE
CRITICAL…ivechat/static/src/embed/common/store_service_patch.js24 this.store.env.services.bus_service.addChannel(CODE
CRITICAL…ivechat/static/src/embed/common/store_service_patch.js30 this.store.env.services.bus_service.deleteChannel(`mail.guest_${this.guest_token}`);CODE
CRITICALaddons/google_calendar/tests/test_sync_common.py152 funcs = self.env.cr.postcommit._funcs.copy()CODE
CRITICALaddons/google_calendar/models/calendar.py385 self.env.cr.precommit.data.pop(f'mail.tracking.create.{event._name}.{event.id}', None)CODE
CRITICALaddons/pos_viva_com/static/src/app/payment_viva_com.js170 result = await this.env.services.orm.silent.call(CODE
CRITICAL…s/calendar/static/src/activity/activity_model_patch.js16 const action = await this.store.env.services.orm.call(CODE
CRITICAL…s/calendar/static/src/activity/activity_model_patch.js21 this.store.env.services.action.doAction(action);CODE
CRITICAL…tatic/src/views/calendar_form/calendar_quick_create.js69 const breadcrumb = this.actionService.currentController.config.breadcrumbs.at(-2);CODE
CRITICAL…ee_calendar/common/attendee_calendar_common_popover.js55 this.props.record.rawRecord.partner_ids.includes(user.partnerId) ||CODE
CRITICAL…ee_calendar/common/attendee_calendar_common_popover.js70 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.js1497 const scaleCallback = config.options.scales.x.ticks.callback.bind(fakeChart);CODE
CRITICALaddons/mail/models/mail_thread.py556 initial_values = self.env.cr.precommit.data.setdefault(f'mail.tracking.{self._name}', {})CODE
CRITICALaddons/mail/models/mail_thread.py570 initial_values = self.env.cr.precommit.data.pop(f'mail.tracking.{self._name}', {})CODE
CRITICALaddons/mail/models/mail_thread.py586 authors = self.env.cr.precommit.data.setdefault(f'mail.tracking.author.{self._name}', {})CODE
CRITICALaddons/mail/models/mail_thread.py592 self._message_track_post_template(self.env.cr.precommit.data.pop(f'mail.tracking.create.{self._name}.{self.id}',CODE
CRITICALaddons/mail/models/mail_thread.py600 body_values = self.env.cr.precommit.data.setdefault(f'mail.tracking.message.{self._name}', {})CODE
CRITICALaddons/mail/models/mail_thread.py535 initial_values = self.env.cr.precommit.data.setdefault(f'mail.tracking.{self._name}', {})CODE
CRITICALaddons/mail/models/mail_thread.py668 bodies = self.env.cr.precommit.data.pop(f'mail.tracking.message.{self._name}', {})CODE
CRITICALaddons/mail/models/mail_thread.py669 authors = self.env.cr.precommit.data.pop(f'mail.tracking.author.{self._name}', {})CODE
CRITICALaddons/mail/models/mail_thread.py380 self.env.cr.precommit.data.setdefault(f'mail.tracking.create.{self._name}.{thread.id}', changes)STRING
CRITICALaddons/mail/models/mail_tracking_duration_mixin.py105 if data := self.env.cr.precommit.data.get(f'mail.tracking.{self._name}', {}).get(self._origin.id):STRING
CRITICALaddons/mail/static/src/core/web/thread_model_patch.js39 const data = await this.store.env.services.orm.call(this.model, "message_get_followers", [CODE
CRITICALaddons/mail/static/src/core/web/thread_model_patch.js46 const data = await this.store.env.services.orm.call(CODE
CRITICALaddons/mail/static/src/core/web/activity_model_patch.js31 this.store.env.services.action.doAction(CODE
CRITICALaddons/mail/static/src/core/web/activity_model_patch.js54 await this.store.env.services.orm.call("mail.activity", "action_feedback", [[this.id]], {CODE
CRITICALaddons/mail/static/src/core/web/activity_model_patch.js65 const action = await this.store.env.services.orm.call(CODE
CRITICALaddons/mail/static/src/core/web/thread_actions.js9 open: ({ store }) => store.env.services.orm.silent.call("mail.message", "mark_all_as_read"),CODE
CRITICALaddons/mail/static/src/core/common/suggestion_hook.js123 const selection = this.comp.editor.shared.selection.getEditableSelection();CODE
CRITICALaddons/mail/static/src/core/common/suggestion_hook.js221 this.comp.editor.shared.selection.getEditableSelection();CODE
CRITICALaddons/mail/static/src/core/common/suggestion_hook.js222 this.comp.editor.shared.selection.setSelection({CODE
CRITICALaddons/mail/static/src/core/common/suggestion_hook.js240 this.comp.editor.shared.dom.insert(inlineElement);CODE
CRITICALaddons/mail/static/src/core/common/suggestion_hook.js242 this.comp.editor.shared.selection.setSelection({ anchorNode, anchorOffset });CODE
CRITICALaddons/mail/static/src/core/common/suggestion_hook.js243 this.comp.editor.shared.dom.insert("\u00A0");CODE
CRITICALaddons/mail/static/src/core/common/suggestion_hook.js244 this.comp.editor.shared.history.addStep();CODE
CRITICALaddons/mail/static/src/core/common/chat_window.js155 this.store.env.services.command.openMainPalette({ searchValue: "@" });CODE
CRITICALaddons/mail/static/src/core/common/store_service.js724 const [userData] = await this.env.services.orm.silent.read(CODE
CRITICALaddons/mail/static/src/core/common/store_service.js745 const [userId] = await this.env.services.orm.silent.search(CODE
CRITICALaddons/mail/static/src/core/common/message_model.js534 this.store.env.services.notification.add(notification, { type });CODE
CRITICALaddons/mail/static/src/core/common/message_model.js542 this.store.env.services.notification.add(CODE
CRITICALaddons/mail/static/src/core/common/message_model.js547 this.store.env.services.notification.add(_t("Message Copied!"), { type: "info" });CODE
CRITICALaddons/mail/static/src/core/common/message_model.js701 await this.store.env.services.orm.silent.call("mail.message", "set_message_done", [CODE
CRITICALaddons/mail/static/src/core/common/message_model.js708 await this.store.env.services.orm.silent.call(CODE
CRITICALaddons/mail/static/src/core/common/message_model.js722 this.store.env.services.notification.add(CODE
CRITICALaddons/mail/static/src/core/common/settings_model.js399 await this.store.env.services.orm.call(CODE
CRITICALaddons/mail/static/src/core/common/settings_model.js420 await this.store.env.services.orm.call(CODE
CRITICALaddons/mail/static/src/core/common/mail_guest_model.js48 this.store.env.services.bus_service.deleteChannel(this.previousPresencechannel);CODE
CRITICALaddons/mail/static/src/core/common/mail_guest_model.js51 this.store.env.services.bus_service.addChannel(this.presenceChannel);CODE
CRITICALaddons/mail/static/src/core/common/mail_guest_model.js66 this.store.env.services.im_status.updateBusPresence();CODE
CRITICALaddons/mail/static/src/core/common/thread_model.js468 return this.store.env.services.orm.call(CODE
CRITICALaddons/mail/static/src/core/common/thread_model.js705 await this.store.env.services.orm.silent.call("mail.message", "mark_all_as_read", [CODE
155 more matches not shown…
Cross-File Repetition406 hits · 2030 pts
SeverityFileLineSnippetContext
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/sale/models/sale_order.py0update account_move_line information for a given product or create a new one if none exists yet. :param int product_id: STRING
HIGHaddons/purchase/models/purchase_order.py0update account_move_line information for a given product or create a new one if none exists yet. :param int product_id: STRING
HIGHaddons/account/models/account_move.py0update account_move_line information for a given product or create a new one if none exists yet. :param int product_id: STRING
HIGHaddons/sale/models/sale_order_line.py0prepare specific key for moves or other components that will be created from a stock rule coming from a sale order line.STRING
HIGHaddons/sale_stock/models/sale_order_line.py0prepare specific key for moves or other components that will be created from a stock rule coming from a sale order line.STRING
HIGHaddons/point_of_sale/models/pos_order.py0prepare specific key for moves or other components that will be created from a stock rule coming from a sale order line.STRING
HIGHaddons/l10n_sa_edi/models/account_move.py0returns true if the customer is an individual, i.e: the invoice is b2cSTRING
HIGHaddons/l10n_sa/models/account_move.py0returns true if the customer is an individual, i.e: the invoice is b2cSTRING
HIGHaddons/l10n_ae/models/account_move.py0returns true if the customer is an individual, i.e: the invoice is b2cSTRING
HIGHaddons/google_calendar/tests/test_sync_common.py0used when synchronization date (using env.cr.now()) is important in addition to standard datetime mocks. used mainly to STRING
HIGHaddons/sms/tests/common.py0used when synchronization date (using env.cr.now()) is important in addition to standard datetime mocks. used mainly to STRING
HIGHaddons/mail/tests/common.py0used when synchronization date (using env.cr.now()) is important in addition to standard datetime mocks. used mainly to STRING
HIGHaddons/digest/tests/test_digest.py0used when synchronization date (using env.cr.now()) is important in addition to standard datetime mocks. used mainly to STRING
HIGHaddons/microsoft_calendar/tests/common.py0used when synchronization date (using env.cr.now()) is important in addition to standard datetime mocks. used mainly to STRING
HIGHaddons/event/tests/common.py0used when synchronization date (using env.cr.now()) is important in addition to standard datetime mocks. used mainly to 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
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/tests/test_processing_flows.py0test that receiving a redirect notification triggers a signature check.STRING
HIGHaddons/payment_aps/tests/test_processing_flows.py0test that receiving a redirect notification triggers a signature check.STRING
HIGHaddons/payment_payu/tests/test_processing_flows.py0test that receiving a redirect notification triggers a signature check.STRING
HIGHaddons/payment_nuvei/tests/test_processing_flows.py0test that receiving a redirect notification triggers a signature check.STRING
HIGHaddons/payment_redsys/tests/test_processing_flows.py0test that receiving a webhook notification triggers a signature check.STRING
HIGHaddons/payment_xendit/tests/test_processing_flows.py0test that receiving a webhook notification triggers a signature check.STRING
HIGH…s/payment_toss_payments/tests/test_processing_flows.py0test that receiving a webhook notification triggers a signature check.STRING
HIGHaddons/payment_aps/tests/test_processing_flows.py0test that receiving a webhook notification triggers a signature check.STRING
346 more matches not shown…
Self-Referential Comments663 hits · 1939 pts
SeverityFileLineSnippetContext
MEDIUModoo/loglevels.py48 """This method is similar to the builtin `unicode`, exceptSTRING
MEDIUModoo/tools/image.py329 """This function is used to calculate the dominant colors when given a list of colorsSTRING
MEDIUModoo/tools/pdf/__init__.py488 # Create a new object containing an array referencing embedded fileCOMMENT
MEDIUModoo/tools/pdf/signature.py147 # Creating the appearance (visible elements of the signature)COMMENT
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_orm/tests/test_web_save.py10 # Create a new record, without unity specification (it should return only the id)COMMENT
MEDIUModoo/addons/test_orm/tests/test_web_save.py19 # Create a new record, with unity specificationCOMMENT
MEDIUModoo/addons/test_orm/tests/test_fields.py592 # Create an ir.rule, which forces to flush field 'active'COMMENT
MEDIUModoo/addons/test_orm/tests/test_fields.py4377 # Create a manual selection field with two initial optionsSTRING
MEDIUModoo/addons/test_orm/tests/test_fields.py4389 # Create a manual related field on MODEL_RELATED pointing to the new fieldSTRING
MEDIUModoo/addons/test_orm/tests/test_one2many.py460 # Create a parent recordCOMMENT
MEDIUModoo/addons/base/tests/test_res_config.py20 # Define the test valuesCOMMENT
MEDIUModoo/addons/base/tests/test_ir_attachment.py332 # Create an attachment as user without res_model/res_idCOMMENT
MEDIUModoo/addons/base/tests/test_ir_attachment.py336 # Create an attachment as superuser without res_model/res_idCOMMENT
MEDIUModoo/addons/base/tests/test_res_users.py643 # Create a first session that will be used to revoke other sessionsCOMMENT
MEDIUModoo/addons/base/tests/test_res_users.py646 # Create a second session that will be used to check it has been revokedCOMMENT
MEDIUModoo/addons/base/tests/test_res_users.py715 # Creating an unscoped key from a scoped key raises an errorCOMMENT
MEDIUModoo/addons/base/tests/test_res_users.py721 # Creating a key with a different scope raises an errorCOMMENT
MEDIUModoo/addons/base/tests/test_res_users.py727 # Creating a key with the same scope doesn't raiseCOMMENT
MEDIUModoo/addons/base/tests/test_res_users.py732 # Creating a key with a scope from an unscoped key doesn't raiseCOMMENT
MEDIUModoo/addons/base/tests/test_res_users.py737 # Creating an unscoped key from another unscoped key doesn't raiseCOMMENT
MEDIUModoo/addons/base/tests/test_user_has_group.py152 #Create a user with two groups of user types kind (Internal and Portal)COMMENT
MEDIUModoo/addons/base/tests/test_ir_mail_server.py481 # Create a sample .eml file contentCOMMENT
MEDIUModoo/addons/base/models/ir_actions_report.py557 # Create a temporary session which will not create device logsCOMMENT
MEDIUModoo/addons/base/models/ir_ui_view.py718 """This method is meant to be overridden by other modules.STRING
MEDIUModoo/addons/base/models/ir_ui_view.py387 # This function is only interested in locating invalid locators.STRING
MEDIUModoo/addons/base/models/ir_qweb.py819 # Create the iterator from the templateCOMMENT
MEDIUModoo/_monkeypatches/num2words.py11# The following section of the code is used to monkey patchCOMMENT
MEDIUModoo/_monkeypatches/site.py39 # This function is borrowed from psycogreen module which is licensedCOMMENT
MEDIUModoo/orm/models.py1799 # Create a mapping from each unique SQL GROUP BY term to its bitmask value.STRING
MEDIUModoo/orm/models_transient.py63 # 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.py201 # Create a gift card to be usedCOMMENT
MEDIUM…e_sale_loyalty/tests/test_website_sale_auto_invoice.py18 # Create a discount codeCOMMENT
MEDIUM…le_loyalty/tests/test_website_sale_loyalty_delivery.py72 # Create a gift card to be usedCOMMENT
MEDIUM…le_loyalty/tests/test_website_sale_loyalty_delivery.py79 # Create a 50% discount on order codeCOMMENT
MEDIUM…le_loyalty/tests/test_website_sale_loyalty_delivery.py189 # Create a discount codeCOMMENT
MEDIUMaddons/l10n_pl_edi/tests/test_l10n_pl_edi.py373 # Create a Bank Account for the CompanyCOMMENT
MEDIUMaddons/website_event_track/tests/test_website_event.py61 # Create a website recordSTRING
MEDIUMaddons/website_event_track/controllers/event_track.py239 # Create the dict that contains the tracks at the correct time_slots / locations coordinatesCOMMENT
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.py31 # Create the SO with a specific salespersonCOMMENT
MEDIUMaddons/sale/tests/test_payment_flow.py283 # Create the paymentCOMMENT
MEDIUMaddons/sale/tests/test_payment_flow.py300 # Create the paymentCOMMENT
MEDIUMaddons/sale/tests/test_payment_flow.py140 # Create the paymentCOMMENT
MEDIUMaddons/sale/tests/test_payment_flow.py170 # Create the paymentCOMMENT
MEDIUMaddons/sale/tests/test_payment_flow.py206 # Create the paymentCOMMENT
MEDIUMaddons/sale/tests/test_payment_flow.py245 # Create the paymentCOMMENT
MEDIUMaddons/sale/tests/test_payment_flow.py267 # Create the paymentCOMMENT
MEDIUMaddons/sale/tests/test_payment_flow.py313 # Create the paymentCOMMENT
MEDIUMaddons/sale/tests/test_taxes_downpayment.py201 # Create a down payment invoice of 30%.COMMENT
MEDIUMaddons/sale/tests/test_taxes_downpayment.py246 # Create the final invoice.COMMENT
MEDIUMaddons/sale/tests/test_taxes_downpayment.py342 # Create the final invoice.COMMENT
MEDIUMaddons/sale/tests/test_taxes_downpayment.py427 # Create the final invoice.COMMENT
MEDIUMaddons/sale/tests/test_taxes_downpayment.py562 # Create the final invoice.COMMENT
MEDIUMaddons/sale/tests/test_taxes_downpayment.py588 # Create a new final invoice.COMMENT
MEDIUMaddons/sale/tests/test_taxes_downpayment.py644 # Create a down payment invoice of 100%.COMMENT
MEDIUMaddons/sale/tests/test_taxes_downpayment.py693 # Create the final invoice.COMMENT
603 more matches not shown…
Deep Nesting1524 hits · 1256 pts
SeverityFileLineSnippetContext
LOWodoo/logging.py34CODE
LOWodoo/netsvc.py181CODE
LOWodoo/netsvc.py62CODE
LOWodoo/http.py849CODE
LOWodoo/http.py1725CODE
LOWodoo/http.py2014CODE
LOWodoo/http.py2812CODE
LOWodoo/sql_db.py641CODE
LOWodoo/tools/mail.py176CODE
LOWodoo/tools/mail.py282CODE
LOWodoo/tools/mail.py539CODE
LOWodoo/tools/facade.py41CODE
LOWodoo/tools/misc.py616CODE
LOWodoo/tools/speedscope.py223CODE
LOWodoo/tools/translate.py140CODE
LOWodoo/tools/translate.py1073CODE
LOWodoo/tools/translate.py1142CODE
LOWodoo/tools/translate.py1884CODE
LOWodoo/tools/translate.py205CODE
LOWodoo/tools/translate.py850CODE
LOWodoo/tools/translate.py1258CODE
LOWodoo/tools/translate.py1388CODE
LOWodoo/tools/translate.py1464CODE
LOWodoo/tools/translate.py1605CODE
LOWodoo/tools/config.py727CODE
LOWodoo/tools/config.py901CODE
LOWodoo/tools/config.py936CODE
LOWodoo/tools/template_inheritance.py71CODE
LOWodoo/tools/template_inheritance.py109CODE
LOWodoo/tools/parse_version.py25CODE
LOWodoo/tools/date_utils.py108CODE
LOWodoo/tools/date_utils.py273CODE
LOWodoo/tools/date_utils.py312CODE
LOWodoo/tools/convert.py75CODE
LOWodoo/tools/convert.py667CODE
LOWodoo/tools/convert.py336CODE
LOWodoo/tools/cache.py184CODE
LOWodoo/tools/cache.py210CODE
LOWodoo/tools/intervals.py33CODE
LOWodoo/tools/intervals.py82CODE
LOWodoo/tools/mimetypes.py156CODE
LOWodoo/tools/appdirs.py76CODE
LOWodoo/tools/cloc.py90CODE
LOWodoo/tools/cloc.py120CODE
LOWodoo/tools/test_reports.py23CODE
LOWodoo/tools/test_reports.py69CODE
LOWodoo/tools/test_reports.py127CODE
LOWodoo/tools/lru.py70CODE
LOWodoo/tools/osutil.py54CODE
LOWodoo/tools/barcode.py16CODE
LOWodoo/tools/view_validation.py51CODE
LOWodoo/tools/view_validation.py82CODE
LOWodoo/tools/sql.py89CODE
LOWodoo/tools/profiler.py347CODE
LOWodoo/tools/profiler.py406CODE
LOWodoo/tools/profiler.py604CODE
LOWodoo/tools/profiler.py658CODE
LOWodoo/tools/image.py296CODE
LOWodoo/tools/image.py62CODE
LOWodoo/tools/set_expression.py471CODE
1464 more matches not shown…
Fake / Example Data485 hits · 494 pts
SeverityFileLineSnippetContext
LOWodoo/tools/mail.py899 >>> email_anonymize('admin@example.com')STRING
LOWodoo/tools/mail.py973 >>> formataddr(('John Doe', 'johndoe@example.com'))STRING
LOWodoo/tools/mail.py974 '"John Doe" <johndoe@example.com>'STRING
LOWodoo/tools/translate.py75 'string', 'add-label', 'help', 'sum', 'avg', 'confirm', 'placeholder', 'alt', 'title', 'aria-label',CODE
LOWodoo/tools/translate.py119 "placeholder",CODE
LOWodoo/addons/base/tests/test_res_users.py495 me.email = "foo@bar.com"CODE
LOWodoo/addons/base/tests/test_res_users.py496 self.assertEqual(me.email, "foo@bar.com")CODE
LOWodoo/addons/base/tests/test_res_users.py503 other.email = "foo@bar.com"CODE
LOWodoo/addons/base/tests/test_mail.py852 ('"Admin" <admin@example.com>', ['admin@example.com']),CODE
LOWodoo/addons/base/tests/test_mail.py853 ('"Admin" <admin@example.com>, Demo <demo@test.com>', ['admin@example.com', 'demo@test.com']),CODE
LOWodoo/addons/base/tests/test_mail.py854 ('admin@example.com', ['admin@example.com']),CODE
LOWodoo/addons/base/tests/test_mail.py855 ('"Admin" <admin@example.com>, Demo <malformed email>', ['admin@example.com']),CODE
LOWodoo/addons/base/tests/test_mail.py905 ('admin@example.com', 'a****@example.com', 'a****@e******.com'), # shortCODE
LOWodoo/addons/base/tests/test_format_address_mixin.py68 'name': 'John Doe',CODE
LOWodoo/addons/base/tests/test_format_address_mixin.py69 'street': '123 Main Street',CODE
LOWodoo/addons/base/tests/test_format_address_mixin.py76 self.assertIn('John Doe', partner.display_name)CODE
LOWodoo/addons/base/tests/test_format_address_mixin.py80 self.assertIn('123 Main Street', display_name)CODE
LOWodoo/addons/base/tests/test_res_lang.py70 dummy_data = ResLang._get_data(id=0)CODE
LOWodoo/addons/base/tests/test_res_lang.py75 self.assertEqual(ResLang._get_data(id=0), dummy_data)CODE
LOWodoo/addons/base/tests/test_views.py795 E.field(name="placeholder"),CODE
LOWodoo/addons/base/tests/test_configmanager.py243 'email_from': 'admin@example.com',CODE
LOWodoo/addons/base/tests/test_configmanager.py549 'email_from': 'admin@example.com',CODE
LOWodoo/addons/base/tests/test_configmanager.py676 'email_from': 'admin@example.com',CODE
LOWodoo/addons/base/tests/test_translate.py1631 'arch': '<button><t t-out="placeholder"/></button>',CODE
LOWodoo/addons/base/models/res_groups.py348 'placeholder': privilege.placeholder,CODE
LOWodoo/addons/base/views/res_groups_views.xml26 <field name="placeholder"/>CODE
LOWodoo/upgrade_code/18.2-00-l10n-translate.py33 'hr.contract.salary.personal.info': ['name', 'helper', 'value', 'placeholder'],CODE
LOW…dons/auth_signup/views/auth_signup_login_templates.xml43 <input type="text" name="name" t-att-value="name" id="name" class="form-control" placeholder="JoCODE
LOW…/website_sale_loyalty/views/website_sale_templates.xml5 <attribute name="placeholder">Gift card or discount code...</attribute>CODE
LOWaddons/l10n_rs_edi/data/neutralize.sql2 SET l10n_rs_edi_api_key = 'dummy_key',CODE
LOW…bsite_event_track/views/event_track_templates_list.xml62 <t t-set="placeholder">Search a talk ...</t>CODE
LOW…ent_exhibitor/views/event_exhibitor_templates_list.xml47 <t t-set="placeholder">Search an exhibitor ...</t>CODE
LOWaddons/sale/tests/test_sale_to_invoice.py1064 'email': 'test@test.com',CODE
LOWaddons/im_livechat/tests/test_message.py51 'email': 'user@example.com',CODE
LOW…m_livechat/static/tests/embed/livechat_service.test.js71 const userId = pyEnv["res.users"].create({ name: "John Doe", im_status: "online" });CODE
LOW…m_livechat/static/tests/embed/livechat_service.test.js73 name: "John Doe",CODE
LOW…m_livechat/static/tests/embed/livechat_service.test.js80 await contains(".o-mail-Message-author", { text: "John Doe" });CODE
LOW…at/static/src/core/web/expertise_tags_autocomplete.xml12 placeholder="placeholder"CODE
LOWaddons/google_calendar/tests/test_sync_common.py26@patch.object(ResUsers, '_get_google_calendar_token', lambda user: 'dummy-token')CODE
LOWaddons/google_calendar/tests/test_sync_google2odoo.py16@patch.object(ResUsers, '_get_google_calendar_token', lambda user: 'dummy-token')CODE
LOWaddons/google_calendar/tests/test_sync_odoo2google.py17@patch.object(ResUsers, '_get_google_calendar_token', lambda user: 'dummy-token')CODE
LOWaddons/google_calendar/tests/test_sync_odoo2google.py1097 self.organizer_user.google_calendar_token = 'dummy-token'CODE
LOWaddons/sale_gelato/tests/test_delivery_carrier.py17 'email': 'test@test.com',CODE
LOW…hr_recruitment_survey/tests/test_recruitment_survey.py49 'partner_name': 'Jane Doe',CODE
LOWaddons/portal/tests/test_portal.py31 'street': '123 Main St',CODE
LOW…/portal/static/src/interactions/portal_search_panel.js27 ?.setAttribute("placeholder", labelEl.textContent.trim());CODE
LOW…tic/tests/tours/website_event_booth_sale_pricelists.js36 this.anchor.value = 'John Doe';CODE
LOW…t_booth_sale/static/tests/tours/website_event_booth.js34 this.anchor.value = 'John Doe';CODE
LOWaddons/rating/tests/test_security.py18 cls.env, name='Jean Admin', login='user_mana', email='admin@example.com',CODE
LOW…alendar/static/src/views/fields/many2many_attendee.xml8 <attribute name="placeholder">props.placeholder</attribute>CODE
LOW…ck/tests/test_website_sale_stock_stock_notification.py57 website.company_id.partner_id.email = "test@test.com"CODE
LOW…/website_hr_recruitment/views/hr_recruitment_views.xml37 <attribute name="placeholder">e.g. Summarize the position in one or two lines that will be displayed on CODE
LOWaddons/test_mass_mailing/tests/test_mailing_test.py41 'email_to': 'test@test.com',CODE
LOWaddons/test_mass_mailing/tests/test_mailing_test.py89 'email_to': 'test@test.com',CODE
LOWaddons/test_mass_mailing/tests/test_mailing_test.py127 'email_to': 'test@test.com',CODE
LOWaddons/test_mass_mailing/tests/test_mailing_test.py143 self.assertSentEmail(self.env.user.partner_id, ['test@test.com'],CODE
LOWaddons/test_mass_mailing/tests/test_mailing_test.py163 'test@test.com',CODE
LOW…spreadsheet/static/src/o_spreadsheet/o_spreadsheet.xml1750 t-att-placeholder="placeholder"CODE
LOW…mass_mailing_sms/views/snippets/snippets_templates.xml19 <attribute name="placeholder">+1 555-555-1234</attribute>CODE
LOWaddons/mail/tests/test_mail_template.py159 'email_to': 'foo@bar.com',CODE
425 more matches not shown…
Excessive Try-Catch Wrapping399 hits · 413 pts
SeverityFileLineSnippetContext
LOWodoo/netsvc.py273 except Exception:STRING
LOWodoo/loglevels.py102 except Exception as e:CODE
LOWodoo/loglevels.py111 except Exception:CODE
LOWodoo/http.py2041 except Exception:CODE
LOWodoo/http.py2310 except Exception as exc: # noqa: BLE001CODE
LOWodoo/http.py2330 except Exception as exc: # noqa: BLE001CODE
LOWodoo/http.py2874 except Exception as exc:CODE
LOWodoo/sql_db.py147 except Exception:CODE
LOWodoo/sql_db.py441 except Exception as e:CODE
MEDIUModoo/sql_db.py240def __exit__(self, exc_type, exc_value, traceback):CODE
LOWodoo/tools/mail.py462 except Exception:CODE
LOWodoo/tools/misc.py470 except Exception:CODE
LOWodoo/tools/misc.py943 except Exception:CODE
LOWodoo/tools/misc.py1334 except Exception: # noqa: BLE001CODE
LOWodoo/tools/misc.py1338 except Exception: # noqa: BLE001CODE
LOWodoo/tools/misc.py1505 except Exception:CODE
LOWodoo/tools/misc.py1560 except Exception:CODE
LOWodoo/tools/translate.py1251 except Exception:CODE
LOWodoo/tools/translate.py1459 except Exception:CODE
LOWodoo/tools/convert.py100 except Exception:CODE
LOWodoo/tools/convert.py617 except Exception as e:CODE
LOWodoo/tools/convert.py776 except Exception:CODE
LOWodoo/tools/cache.py308 except Exception: # noqa: BLE001CODE
LOWodoo/tools/mimetypes.py172 except Exception:CODE
LOWodoo/tools/mimetypes.py207 except Exception: # noqa: BLE001CODE
LOWodoo/tools/mimetypes.py223 except Exception: # noqa: BLE001CODE
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/test_reports.py52 except Exception:CODE
LOWodoo/tools/test_reports.py222 except Exception as e: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/safe_eval.py269 except Exception as e:CODE
LOWodoo/tools/safe_eval.py413 except Exception as e:CODE
LOWodoo/tools/profiler.py564 except Exception:CODE
LOWodoo/tools/func.py111 except Exception:CODE
LOWodoo/tools/_vendor/sessions.py226 except Exception:CODE
LOWodoo/tools/pdf/__init__.py397 except Exception: # noqa: BLE001CODE
LOWodoo/addons/test_http/tests/test_session.py179 except Exception: # noqa: BLE001CODE
LOWodoo/addons/test_http/tests/test_session.py187 except Exception: # noqa: BLE001CODE
LOWodoo/addons/base/tests/test_test_suite.py83 except Exception as e:CODE
LOWodoo/addons/base/tests/test_test_suite.py368 except Exception:STRING
LOWodoo/addons/base/tests/test_test_suite.py403 except Exception:STRING
MEDIUModoo/addons/base/tests/test_test_suite.py400def alpha():CODE
LOWodoo/addons/base/wizard/base_import_language.py42 except Exception as e:CODE
LOWodoo/addons/base/models/ir_default.py40 except Exception: # noqa: BLE001CODE
LOWodoo/addons/base/models/ir_default.py113 except Exception:CODE
LOWodoo/addons/base/models/ir_mail_server.py356 except Exception as e:CODE
LOWodoo/addons/base/models/ir_mail_server.py363 except Exception:CODE
LOWodoo/addons/base/models/ir_mail_server.py859 except Exception as e:CODE
LOWodoo/addons/base/models/ir_rule.py73 except Exception as e:CODE
MEDIUModoo/addons/base/models/ir_model.py721def _onchange_relation(self):CODE
LOWodoo/addons/base/models/ir_model.py960 except Exception:CODE
LOWodoo/addons/base/models/ir_model.py1757 except Exception:CODE
LOWodoo/addons/base/models/ir_model.py2268 except Exception: # pylint: disable=broad-exceptCODE
LOWodoo/addons/base/models/ir_model.py2404 except Exception:STRING
LOWodoo/addons/base/models/ir_model.py2564 except Exception:STRING
LOWodoo/addons/base/models/ir_autovacuum.py60 except Exception:CODE
339 more matches not shown…
Over-Commented Block315 hits · 282 pts
SeverityFileLineSnippetContext
LOWodoo/http.py1081 # of 42 (stored part in the database), the entropy for the base64 generated keyCOMMENT
LOWodoo/tools/lru.py21COMMENT
LOWodoo/tools/pdf/__init__.py541 Transform the opened PDF file into a PDF/A compliant fileCOMMENT
LOWodoo/tools/pdf/signature.py121 # Assigning the newly created field to a pageCOMMENT
LOWodoo/tools/pdf/signature.py181 })COMMENT
LOWodoo/tools/pdf/signature.py221 # Setting up the actual signature contents with placeholders for /Contents and /ByteRangeCOMMENT
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/osv/expression.py301 # commited, i.e. its terms added to the ``commits`` list along withCOMMENT
LOWodoo/addons/test_main_flows/__init__.py1# -*- coding: utf-8 -*-COMMENT
LOW…/addons/test_lint/tests/_odoo_checker_sql_injection.py281 return TrueCOMMENT
LOWodoo/addons/test_lint/tests/test_override_signatures.py221 raise TypeError(msg) from NoneCOMMENT
LOWodoo/addons/test_orm/tests/test_fields.py881 self.env.flush_all()COMMENT
LOWodoo/addons/test_orm/tests/test_fields.py1961 deleted.unlink()COMMENT
LOWodoo/addons/test_orm/tests/test_fields.py3901 # other user that bypassed the sanitize)COMMENT
LOWodoo/addons/test_orm/tests/test_fields.py3981 # | | | |COMMENT
LOWodoo/addons/base/tests/test_orm.py381 # | (ondelete='restrict') have db ON DELETE actionCOMMENT
LOWodoo/addons/base/tests/test_expression.py401 non_partner_id = max(all_partners.ids) + 1COMMENT
LOWodoo/addons/base/tests/test_reports.py421 # leaving this as reference but this is to fragile to make a strict assertionCOMMENT
LOWodoo/addons/base/tests/test_translate.py701 # Country = self.env['res.country']COMMENT
LOWodoo/addons/base/tests/test_translate.py1881 # view1_en_copy.update_field_translations('arch_db', {COMMENT
LOWodoo/addons/base/tests/test_db_cursor.py241 # which is set as an integer in our DSN/connection_infoCOMMENT
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/ir_ui_view.py921 if node.get('position') in ('after', 'before', 'inside'):COMMENT
LOWodoo/addons/base/models/ir_ui_view.py981 # We achieve a pre-order depth-first hierarchy traversal whereCOMMENT
LOWodoo/addons/base/models/ir_ui_view.py1001 # 5 [7, 8, 3, 4]COMMENT
LOWodoo/addons/base/models/ir_ui_view.py1341 parent = node.getparent()COMMENT
LOWodoo/addons/base/models/ir_qweb.py1421COMMENT
LOWodoo/addons/base/models/ir_cron.py321 other jobs.COMMENT
LOWodoo/tests/common.py2401 # setting a cookie on domain='' path='/'.COMMENT
LOWodoo/orm/models.py4241 # is a record created by xml/csv file, as these are not connectedCOMMENT
LOWodoo/orm/models.py4421 # Protect the field from being recomputed while beingCOMMENT
LOWodoo/orm/models.py4441 with env.protecting(protected, self):COMMENT
LOWodoo/orm/models.py4461COMMENT
LOWodoo/orm/models.py6761 :param fnames: iterable of field names modified on records ``self``COMMENT
LOWodoo/orm/models.py6781 # This tree provides perfect support for the trigger mechanism:COMMENT
LOWodoo/orm/fields.py341 elif attr.startswith('_description_'):COMMENT
LOWodoo/orm/fields.py361 # of fields in override order (or reverse MRO).COMMENT
LOWodoo/orm/fields.py681 # where 'foo' is already present in cache for a1, a2. Initially, both a1COMMENT
LOWodoo/orm/fields.py1681 # not stored and computed -> computeCOMMENT
LOWodoo/orm/model_classes.py41#COMMENT
LOWodoo/orm/model_classes.py61# A3 A2 A1 <- model definitionsCOMMENT
LOWodoo/orm/model_classes.py81# \ | /COMMENT
LOWodoo/orm/model_classes.py101# definition. There are a number of cases where the field cannot be usedCOMMENT
LOWodoo/orm/model_classes.py121# class A1(Model): ModelCOMMENT
LOWodoo/orm/fields_properties.py181 # value, where relational field values have a display name.COMMENT
LOWodoo/orm/environments.py561 self.registry = registryCOMMENT
LOWodoo/service/server.py1621 if odoo.evented:COMMENT
LOWodoo/modules/module_graph.py41# |COMMENT
LOWodoo/modules/module_graph.py61# +- | module6 |COMMENT
LOWodoo/modules/module_graph.py81# 'to upgrade': module4, module6COMMENT
LOWodoo/modules/module_graph.py101# Sometimes the dependency may be changed for sake of upgradeCOMMENT
LOWodoo/modules/module_graph.py121# | | |COMMENT
LOWodoo/upgrade_code/17.5-00-example.py21 returnCOMMENT
LOWaddons/sale/models/sale_order.py1641 'ref': ', '.join(refs)[:2000],COMMENT
LOWaddons/website_sale_comparison_wishlist/__init__.py1# -*- coding: utf-8 -*-COMMENT
255 more matches not shown…
Redundant / Tautological Comments147 hits · 204 pts
SeverityFileLineSnippetContext
LOWodoo/addons/base/tests/test_views.py1453 # Check if the replacement inside the child view did not mess up theSTRING
LOWodoo/addons/base/tests/test_views.py1461 # Check if the replacement of the first worlds did not mess up theSTRING
LOWodoo/addons/base/tests/test_views.py1511 # Check if the replacement inside the child view did not mess up theSTRING
LOWodoo/addons/base/tests/test_views.py1520 # Check if the child view replacement of added nodes did not mess upSTRING
LOWodoo/addons/base/tests/test_views.py1394 # Check if the replacement inside the child view did not mess up theSTRING
LOWodoo/addons/base/tests/test_views.py1402 # Check if the replacement of the first worlds did not mess up theSTRING
LOWodoo/addons/base/models/ir_mail_server.py716 # Check if it's still possible to put the bounce address as smtp_fromCOMMENT
LOWodoo/addons/base/models/ir_ui_view.py473 # Check if we know how to apply inheritancesCOMMENT
LOWodoo/orm/registry.py1084 # Check if the model registry must be reloadedCOMMENT
LOWodoo/orm/registry.py1091 # Check if the model caches must be invalidated.COMMENT
LOWaddons/auth_signup/tests/test_auth_signup.py63 # Check if an email is sent to the new userwCOMMENT
LOWaddons/auth_signup/controllers/main.py50 # Set user to public if they were not signed in by do_signupCOMMENT
LOWaddons/website_event_track/tests/test_website_event.py71 # Check if app_icon is setSTRING
LOWaddons/website_event_track/tests/test_website_event.py74 # Check if app_icon is a valid imageSTRING
LOWaddons/website_event_track/controllers/event_track.py152 # Check if there are any ongoing or upcoming tracksCOMMENT
LOWaddons/stock_picking_batch/models/stock_picking.py199 # Check if auto_batch is enabled for this picking.COMMENT
LOWaddons/google_calendar/utils/google_event.py194 # Check if ids are the sameCOMMENT
LOWaddons/google_calendar/models/google_sync.py180 # Check if it is a recurring event that has been rescheduled.COMMENT
LOWaddons/l10n_ar/controllers/portal.py61 # Check if the ARCA responsibility is different from Final Consumer or Foreign Customer,COMMENT
LOW…quisition_sale/tests/test_purchase_requisition_sale.py58 # Check if newly created PO is correctly linked to the base Sale OrderCOMMENT
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.py133 # Set country to one where state is requiredCOMMENT
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.py123 # 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.py1358 # Check if user has access to the record before displaying a notification about it.COMMENT
LOWaddons/sale_stock/models/stock.py69 # Check if there is already a SO line for this product to getCOMMENT
LOWaddons/sale_stock/models/stock.py265 # Check if there is already a SO line for this product to getCOMMENT
LOWaddons/web/tests/test_reports.py130 # Check if the temporary session has been deletedSTRING
LOWaddons/web/tests/test_reports.py134 # 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/l10n_tw_edi_ecpay/models/account_move.py538 # Check if the credit note has exchange difference, we need to add it to the sale amountSTRING
LOWaddons/website/tests/test_performance.py337 # Check if website.cookies_bar is activeCOMMENT
LOWaddons/website/tests/test_performance.py339 # Check if `view.track` to track visitor or notCOMMENT
LOWaddons/website/tests/test_performance.py372 # Check if `view.track` to track visitor or notCOMMENT
LOWaddons/website/models/website_menu.py309 # Check if the url match a website.page (to set the m2o relation),COMMENT
LOWaddons/website/models/ir_ui_view.py139 # Set key to avoid copy() to generate an unique key as we want theCOMMENT
LOWaddons/website/models/assets.py61 # Check if the file to save had already been modifiedCOMMENT
LOWaddons/website/models/html_text_processor.py130 # Check if terms are translated.COMMENT
LOWaddons/website/controllers/main.py272 # Check if stored version is still validCOMMENT
LOWaddons/website/controllers/main.py1312 # Check if the file is customized and get bundle/path infoCOMMENT
LOWaddons/mrp/tests/test_bom.py2740 # Assign operation to each bom/byproduct lineCOMMENT
LOWaddons/mrp/models/mrp_workorder.py614 # Check if this workcenter is better than the previous onesCOMMENT
LOWaddons/mrp/report/mrp_report_bom_structure.py697 # Check if product is already in stock with enough quantityCOMMENT
LOWaddons/mrp/report/mrp_report_bom_structure.py843 # Check if this workcenter is better than the previous onesCOMMENT
LOWaddons/crm/models/crm_lead.py1025 # Set date_open to today if it is an oppCOMMENT
LOWaddons/crm/models/crm_lead.py2747 # Check if tag_ids is in the pls_fields and removed it from the list. The tags will be managed separately.COMMENT
LOWaddons/payment_stripe/controllers/main.py214 # Check if the timestamp is not too oldCOMMENT
LOWaddons/sale_loyalty/tests/test_program_numbers.py52 # Check if we have enough paid product to receive free product in case of a free product that is different from COMMENT
LOWaddons/base_import/models/base_import.py1276 # Check if the field is in import_field and is a relational (followed by /)COMMENT
LOWaddons/product/tests/test_pricelist.py153 # Set country to BE -> property defaults to EU pricelistCOMMENT
LOWaddons/product/tests/test_pricelist.py159 # Set country to KI -> property defaults to highest sequence pricelistCOMMENT
LOWaddons/product/tests/test_product_pricelist.py187 # Check if the pricelist is applied at precise datetimeCOMMENT
LOWaddons/product/tests/test_product_pricelist.py201 # Check if the price is different when we change the pricelistCOMMENT
LOWaddons/product/models/product_product.py716 # Check if products still exists, in case they've been unlinked by unlinking their templateCOMMENT
87 more matches not shown…
Cross-Language Confusion37 hits · 182 pts
SeverityFileLineSnippetContext
HIGHodoo/http.py1466 _request_stack.push(req)CODE
HIGHodoo/http.py2845 _request_stack.push(request)CODE
HIGHodoo/http.py2575 --> {"jsonrpc": "2.0", "method": "call", "params": {"arg1": "val1" }, "id": null}STRING
HIGHodoo/http.py2577 <-- {"jsonrpc": "2.0", "result": { "res1": "val1" }, "id": null}STRING
HIGHodoo/http.py2581 --> {"jsonrpc": "2.0", "method": "call", "params": {"arg1": "val1" }, "id": null}STRING
HIGHodoo/http.py2583 <-- {"jsonrpc": "2.0", "error": {"code": 1, "message": "End user error message.", "data": {"code": "codestringSTRING
HIGHodoo/tools/translate.py1706 ELSE t.value || m."{field_name}"END"""STRING
HIGHodoo/tools/translate.py1909 WHEN t.noupdate IS FALSE THEN t.value || m."{field.name}"STRING
HIGHodoo/addons/base/tests/test_res_users.py654 _request_stack.push(SimpleNamespace(session=session, env=self.env))CODE
HIGHodoo/addons/base/wizard/base_partner_merge.py308 SET %(field)s = source_agg.value || COALESCE(%(table)s.%(field)s, '{}'::jsonb)STRING
HIGHodoo/addons/base/models/res_users.py1536 name varchar not null,CODE
HIGHodoo/addons/base/models/res_users.py1541 key varchar not null,CODE
HIGHodoo/tests/common.py1945 # the undefined remoteobject is literally just {type: undefined}...COMMENT
HIGHodoo/tests/common.py492 odoo.http._request_stack.push(request)CODE
HIGHodoo/tests/common.py520 inner.push(init.pop_all())CODE
HIGHodoo/orm/models.py3602 jsonb_strip_nulls(%(fallback)s || COALESCE(%(field)s, '{}'::jsonb) || %(value)s),STRING
HIGHodoo/orm/fields.py1233 # here the specified value for a company might be NULL e.g. '{"1": null}'::jsonbCOMMENT
HIGHaddons/im_livechat/models/discuss_channel.py179 "CHECK((channel_type = 'livechat' and livechat_operator_id is not null) or (channel_type != 'livechat'))",CODE
HIGHaddons/l10n_sa_edi/models/account_journal.py681 'l10n_sa_compliance_csid_json': """{"requestID": 1234567890123, "dispositionMessage": "ISSUED", "binarySecurCODE
HIGHaddons/web/tests/test_click_everywhere.py86 self.browser_js("/odoo", "odoo.loader.modules.get('@web/webclient/clickbot/clickbot_loader').startClickEverywherCODE
HIGHaddons/web/tests/test_click_everywhere.py111 self.browser_js("/odoo", "odoo.loader.modules.get('@web/webclient/clickbot/clickbot_loader').startClickEverywherCODE
HIGHaddons/website_slides/models/slide_channel.py485 SET access_token = md5(md5(random()::varchar || id::varchar) || clock_timestamp()::varchar)::uuid::varchCODE
HIGHaddons/website/models/ir_module_module.py551 o_menu_name = SQL('menu.name || %s' if overwrite else '%s || menu.name', update_jsonb)STRING
HIGHaddons/crm/models/crm_lead.py2315 # if stage_id is null, return 0 and bypass computationCOMMENT
HIGHaddons/crm/models/crm_lead.py2315 # if stage_id is null, return 0 and bypass computationCOMMENT
HIGHaddons/crm/models/crm_lead.py2460 probability = CASE WHEN (probability = automated_probability OR probability is null)CODE
HIGHaddons/iot_drivers/tools/upgrade.py212 background_cmd = 'chroot /root_bypass_ramdisks /bin/bash -c "apt-get upgrade -y && apt-get -y autoremove"'CODE
HIGHaddons/bus/websocket.py900 _wsrequest_stack.push(self)CODE
HIGHaddons/http_routing/tests/common.py105 odoo.http._request_stack.push(request)CODE
HIGHaddons/account/models/account_account_tag.py129 SET name = tag.name || jsonb_build_object(%(lang)s, substring(tag.name->>'en_US' FOR 1) || (report_liSTRING
HIGHaddons/stock/models/stock_move_line.py602 # adjustment, enforce some rules on the `lot_id` field. If `quantity` is null, we unlinkCOMMENT
HIGHaddons/web_tour/tests/test_tours.py122 errors.push(module)CODE
HIGHaddons/web_tour/tests/test_tours.py165 errors.push(module)CODE
HIGHaddons/survey/models/survey_question.py213 "CHECK (is_scored_question != True OR question_type != 'datetime' OR answer_datetime is not null)",CODE
HIGHaddons/survey/models/survey_question.py217 "CHECK (is_scored_question != True OR question_type != 'date' OR answer_date is not null)",CODE
HIGHaddons/rpc/tests/test_xmlrpc.py205 _request_stack.push(fake_req)CODE
HIGHaddons/l10n_it_edi/tools/remove_signature.py73 if verify(loaded_data._pkcs7, null, null, null, out_buffer, flags) != 1:CODE
AI Slop Vocabulary109 hits · 171 pts
SeverityFileLineSnippetContext
LOWodoo/http.py1047 # the _save_session is going to simply use session.sid to set a new cookie.COMMENT
MEDIUModoo/tools/mail.py1032 """ Parse contact name and email (given by text) in order to find contactSTRING
LOWodoo/tools/misc.py438 deps[item] # just set the defaultCODE
MEDIUModoo/tools/pdf/__init__.py549 # " The aforementioned EOL marker shall be immediately followed by a % (25h) character followed by at least fourCOMMENT
LOW…/addons/test_lint/tests/_odoo_checker_sql_injection.py327 # otherwise just return the original node for checkingCOMMENT
MEDIUM…oo/addons/test_assetsbundle/tests/test_assetsbundle.py677 """ Checks that a bundle don't try hard to parse broken xml, and returns a comprehensiveSTRING
MEDIUM…oo/addons/test_assetsbundle/tests/test_assetsbundle.py689 """ Checks that a bundle with multiple broken xml returns a comprehensive error message.STRING
MEDIUM…oo/addons/test_assetsbundle/tests/test_assetsbundle.py700 """ Checks that a bundle with template without name returns a comprehensive error message.STRING
MEDIUM…oo/addons/test_assetsbundle/tests/test_assetsbundle.py711 """ Checks that a bundle with a file in error (file not found, encoding error, or other) returns a comprehensiveSTRING
LOWodoo/addons/test_inherits/models.py6# We just create a new modelCOMMENT
MEDIUModoo/addons/base/tests/test_tz.py28 # the first one is more robustCOMMENT
MEDIUModoo/addons/base/tests/test_test_suite.py85 # will make it more robust to future changes and eventual mistakesCOMMENT
MEDIUModoo/addons/base/tests/test_http_case.py128 # but this makes the test more clear and robustCOMMENT
MEDIUModoo/addons/base/models/ir_actions_report.py232 """Used in the ir.actions.report form view in order to search naively after the view(s)STRING
LOWodoo/addons/base/models/ir_attachment.py174 # simply add fname to checklist, it will be garbage-collected laterCOMMENT
MEDIUModoo/addons/base/models/res_bank.py135 """ To be overridden by subclasses in order to support other account_types.STRING
MEDIUModoo/addons/base/models/ir_qweb.py2653 """ 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.py84 #(e.g fields not present on the model). In that case we just return archCOMMENT
MEDIUModoo/addons/base/models/ir_actions.py31 """ 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
MEDIUModoo/orm/models.py3755 """ Read from the database in order to fetch ``field`` (:class:`Field`STRING
LOWodoo/orm/fields_properties.py377 # when we create the new record. But if we just set the value without changingCOMMENT
LOWodoo/orm/fields_misc.py123 # do not flush, just return the identifierCOMMENT
MEDIUMaddons/sale/models/sale_order_line.py825 """ Convert the current record to a dictionary in order to use the generic taxes computation methodSTRING
LOWaddons/l10n_sa_edi/models/account_edi_format.py190 # 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
MEDIUMaddons/l10n_ar/tests/test_manual.py80 """ RI partner with many lines in order to prove rounding error, with 4 decimals of precision for theSTRING
MEDIUMaddons/l10n_ar/tests/test_manual.py85 """ RI partner with many lines in order to test rounding error, it is required to use a 4 decimal precisionSTRING
MEDIUMaddons/l10n_ar/tests/test_manual.py90 """ 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.py32 """ 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.py719 """ 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.py769 """ 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/tests/legacy/qunit.js414 // Essentially prevents default error logging when the rejection wasCOMMENT
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/static/lib/jquery/jquery.js10942// understands anonymous AMD modules. A named AMD is safest and most robustCOMMENT
LOWaddons/web/controllers/export.py472 # * if we have a normal field (length 1), just add it to the infoCOMMENT
MEDIUMaddons/web/controllers/report.py95 """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.js302 // 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.js38 // robust enough.COMMENT
MEDIUMaddons/mrp/tests/test_order.py1555 """ Checks that, the production is robust against deletion of finished move."""STRING
MEDIUMaddons/mrp/models/stock_rule.py42 """ If 'run' is called on a kit, this override is made in order to callSTRING
MEDIUMaddons/mrp/models/mrp_production.py1469 """ returns 'assigned' if enough components are reserved in order to completeSTRING
MEDIUMaddons/crm/tests/test_crm_lead_assignment.py315 """ 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
MEDIUMaddons/bus/static/tests/mock_websocket.js90 // Disable the interval until those tests are rewritten to be more robust.COMMENT
LOW…s/product/tests/test_product_attribute_value_config.py368 # CASE: no combination, no variant, just return the only variantCOMMENT
MEDIUMaddons/project_account/models/project_project.py123 """ this method is used in order to overwrite the domain in sale_timesheet module. Since the field 'project_id' STRING
49 more matches not shown…
Verbosity Indicators73 hits · 126 pts
SeverityFileLineSnippetContext
LOWodoo/addons/base/models/res_users_deletion.py65 # Step 1: Delete UserCOMMENT
LOWodoo/addons/base/models/res_users_deletion.py85 # Step 2: Delete Linked PartnerCOMMENT
LOWodoo/addons/base/models/res_partner.py1198 The purpose of this function is to build and return an address formatted accordingly to theSTRING
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
LOWaddons/calendar/tests/test_event_recurrence.py752 # Step 1: Use the popover delete wizard to delete the next occurrence of the event.COMMENT
LOWaddons/calendar/tests/test_event_recurrence.py760 # Step 2: Use another delete wizard to handle the deletion of the next occurrence.COMMENT
LOWaddons/calendar/tests/test_event_recurrence.py768 # Step 3: Send cancellation notifications and delete the next occurrence.COMMENT
LOWaddons/calendar/tests/test_event_recurrence.py776 # Step 0: Retrieve the recurring event to be deleted.COMMENT
LOWaddons/calendar/tests/test_event_recurrence.py779 # Step 1: Use the popover delete wizard to delete all occurrences of the event.COMMENT
LOWaddons/calendar/tests/test_event_recurrence.py787 # Step 2: Use another delete wizard to handle the deletion of the event recurrence.COMMENT
LOWaddons/calendar/tests/test_event_recurrence.py795 # Step 3: Send cancellation notifications and delete all recurrences.COMMENT
LOW…/web/static/tests/webclient/actions/load_state.test.js1684 // Step 1: Navigate to Sale->Customers with explicit menu_idCOMMENT
LOW…/web/static/tests/webclient/actions/load_state.test.js1691 // Step 2: Emulate F5 reloadCOMMENT
LOWaddons/web/static/tests/legacy/qunit.js329 * The purpose of this function is to reset the timer nesting level of the execution contextCOMMENT
LOWaddons/web/static/lib/owl/owl.js1811 // Step 1: calling all willPatch lifecycle hooksCOMMENT
LOWaddons/web/static/lib/owl/owl.js1825 // Step 2: patching the domCOMMENT
LOWaddons/web/static/lib/owl/owl.js1828 // Step 4: calling all mounted lifecycle hooksCOMMENT
LOWaddons/web/static/lib/owl/owl.js1837 // Step 5: calling all patched hooksCOMMENT
LOWaddons/web/static/lib/hoot/hoot_utils.js1419 // Step 1: remove "exact" parts of the string query and add them as exact stringCOMMENT
LOWaddons/web/static/lib/hoot/hoot_utils.js1431 // Step 2: split remaining string query on white spaces and:COMMENT
LOWaddons/web/static/src/core/bottom_sheet/bottom_sheet.js110 // Step 1: Take measurementsCOMMENT
LOWaddons/web/static/src/core/bottom_sheet/bottom_sheet.js113 // Step 2: Apply DimensionsCOMMENT
LOWaddons/web/static/src/core/bottom_sheet/bottom_sheet.js116 // Step 3: Set initial positionCOMMENT
LOWaddons/web/static/src/core/bottom_sheet/bottom_sheet.js119 // Step 4: Setup event handlers after everything has been properly resized and positionedCOMMENT
LOWaddons/web/static/src/core/bottom_sheet/bottom_sheet.js122 // Step 5: Mark as readyCOMMENT
LOW…/static/src/model/relational_model/relational_model.js783 * occurrences to be updated. The purpose of this function is to find andCOMMENT
LOWaddons/web/controllers/pivot.py32 # Step 1: writing col group headersCOMMENT
LOWaddons/web/controllers/pivot.py64 # Step 2: writing measure headersCOMMENT
LOWaddons/web/controllers/pivot.py77 # Step 4: writing dataCOMMENT
LOW…ides_survey/tests/test_course_certification_failure.py9 # Step 1: create a simple certificationCOMMENT
LOW…ides_survey/tests/test_course_certification_failure.py50 # Step 2: link the certification to a slide of category 'certification'COMMENT
LOW…ides_survey/tests/test_course_certification_failure.py58 # Step 3: add portal user as member of the channelCOMMENT
LOW…ides_survey/tests/test_course_certification_failure.py68 # Step 4: fill in the created user_input with wrong answersCOMMENT
LOW…ides_survey/tests/test_course_certification_failure.py79 # Step 5: simulate a 'retry'COMMENT
LOW…ides_survey/tests/test_course_certification_failure.py89 # Step 6: fill in the new user_input with wrong answers againCOMMENT
LOW…ides_survey/tests/test_course_certification_failure.py99 # Step 7: add portal user as member of the channel once againCOMMENT
LOW…ides_survey/tests/test_course_certification_failure.py108 # Step 8: fill in the created user_input with correct answers this timeCOMMENT
LOWaddons/privacy_lookup/wizard/privacy_lookup_wizard.py53 # Step 1: Retrieve users/partners liked to email address or nameCOMMENT
LOWaddons/privacy_lookup/wizard/privacy_lookup_wizard.py98 # Step 3: Retrieve info on other modelsSTRING
LOWaddons/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
LOWaddons/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.js964 // Step 1: Search and add first variantCOMMENT
LOW…_of_sale/static/tests/pos/tours/product_screen_tour.js974 // Step 2: Search and add product without attributes (used to delay UI update)COMMENT
LOW…_of_sale/static/tests/pos/tours/product_screen_tour.js983 // Step 3: Search and add second variant of the original productCOMMENT
LOW…ons/point_of_sale/static/src/app/services/pos_store.js2035 // We need to check if a preparation display is configured to avoid unnecessary syncCOMMENT
LOWaddons/l10n_hu_edi/models/res_company.py140 # Step 1: Request a list of all transactions made during the specified time interval.STRING
LOWaddons/l10n_hu_edi/models/res_company.py162 # Step 2: Query unknown transactions in reverse order (latest first) and update invoice states accordingly.STRING
LOWaddons/account/tests/test_account_account.py821 # 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
LOWaddons/account/wizard/account_merge_wizard.py157 # Step 2: Check that we have write access to all the accounts and access to all the companiesCOMMENT
LOWaddons/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
LOWaddons/account/models/account_account.py1255 # Step 1: Check access rights.STRING
LOWaddons/account/models/account_account.py1258 # Step 2: Create new accounts.STRING
LOWaddons/account/models/account_account.py1476 # Step 4: Change check_company fields to only keep values compatible with the account's company, and update compSTRING
LOWaddons/account/models/account_account.py1486 # Step 5: Put a log in the chatter of the newly-created accountsSTRING
LOWaddons/account/models/account_account.py1275 # Step 3: Update foreign keys in DB.STRING
13 more matches not shown…
Structural Annotation Overuse64 hits · 115 pts
SeverityFileLineSnippetContext
LOWodoo/addons/base/models/res_users_deletion.py65 # Step 1: Delete UserCOMMENT
LOWodoo/addons/base/models/res_users_deletion.py85 # Step 2: Delete Linked PartnerCOMMENT
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
LOWaddons/calendar/tests/test_event_recurrence.py752 # Step 1: Use the popover delete wizard to delete the next occurrence of the event.COMMENT
LOWaddons/calendar/tests/test_event_recurrence.py760 # Step 2: Use another delete wizard to handle the deletion of the next occurrence.COMMENT
LOWaddons/calendar/tests/test_event_recurrence.py768 # Step 3: Send cancellation notifications and delete the next occurrence.COMMENT
LOWaddons/calendar/tests/test_event_recurrence.py776 # Step 0: Retrieve the recurring event to be deleted.COMMENT
LOWaddons/calendar/tests/test_event_recurrence.py779 # Step 1: Use the popover delete wizard to delete all occurrences of the event.COMMENT
LOWaddons/calendar/tests/test_event_recurrence.py787 # Step 2: Use another delete wizard to handle the deletion of the event recurrence.COMMENT
LOWaddons/calendar/tests/test_event_recurrence.py795 # Step 3: Send cancellation notifications and delete all recurrences.COMMENT
LOW…/web/static/tests/webclient/actions/load_state.test.js1684 // Step 1: Navigate to Sale->Customers with explicit menu_idCOMMENT
LOW…/web/static/tests/webclient/actions/load_state.test.js1691 // Step 2: Emulate F5 reloadCOMMENT
LOWaddons/web/static/lib/owl/owl.js1811 // Step 1: calling all willPatch lifecycle hooksCOMMENT
LOWaddons/web/static/lib/owl/owl.js1825 // Step 2: patching the domCOMMENT
LOWaddons/web/static/lib/owl/owl.js1828 // Step 4: calling all mounted lifecycle hooksCOMMENT
LOWaddons/web/static/lib/owl/owl.js1837 // Step 5: calling all patched hooksCOMMENT
LOWaddons/web/static/lib/hoot/hoot_utils.js1419 // Step 1: remove "exact" parts of the string query and add them as exact stringCOMMENT
LOWaddons/web/static/lib/hoot/hoot_utils.js1431 // Step 2: split remaining string query on white spaces and:COMMENT
LOWaddons/web/static/src/core/bottom_sheet/bottom_sheet.js110 // Step 1: Take measurementsCOMMENT
LOWaddons/web/static/src/core/bottom_sheet/bottom_sheet.js113 // Step 2: Apply DimensionsCOMMENT
LOWaddons/web/static/src/core/bottom_sheet/bottom_sheet.js116 // Step 3: Set initial positionCOMMENT
LOWaddons/web/static/src/core/bottom_sheet/bottom_sheet.js119 // Step 4: Setup event handlers after everything has been properly resized and positionedCOMMENT
LOWaddons/web/static/src/core/bottom_sheet/bottom_sheet.js122 // Step 5: Mark as readyCOMMENT
LOWaddons/web/controllers/pivot.py32 # Step 1: writing col group headersCOMMENT
LOWaddons/web/controllers/pivot.py64 # Step 2: writing measure headersCOMMENT
LOWaddons/web/controllers/pivot.py77 # Step 4: writing dataCOMMENT
LOW…ides_survey/tests/test_course_certification_failure.py9 # Step 1: create a simple certificationCOMMENT
LOW…ides_survey/tests/test_course_certification_failure.py50 # Step 2: link the certification to a slide of category 'certification'COMMENT
LOW…ides_survey/tests/test_course_certification_failure.py58 # Step 3: add portal user as member of the channelCOMMENT
LOW…ides_survey/tests/test_course_certification_failure.py68 # Step 4: fill in the created user_input with wrong answersCOMMENT
LOW…ides_survey/tests/test_course_certification_failure.py79 # Step 5: simulate a 'retry'COMMENT
LOW…ides_survey/tests/test_course_certification_failure.py89 # Step 6: fill in the new user_input with wrong answers againCOMMENT
LOW…ides_survey/tests/test_course_certification_failure.py99 # Step 7: add portal user as member of the channel once againCOMMENT
LOW…ides_survey/tests/test_course_certification_failure.py108 # Step 8: fill in the created user_input with correct answers this timeCOMMENT
LOWaddons/privacy_lookup/wizard/privacy_lookup_wizard.py53 # Step 1: Retrieve users/partners liked to email address or nameCOMMENT
LOWaddons/privacy_lookup/wizard/privacy_lookup_wizard.py98 # Step 3: Retrieve info on other modelsSTRING
LOW…_of_sale/static/tests/pos/tours/product_screen_tour.js964 // Step 1: Search and add first variantCOMMENT
LOW…_of_sale/static/tests/pos/tours/product_screen_tour.js974 // Step 2: Search and add product without attributes (used to delay UI update)COMMENT
LOW…_of_sale/static/tests/pos/tours/product_screen_tour.js983 // Step 3: Search and add second variant of the original productCOMMENT
LOWaddons/l10n_hu_edi/models/res_company.py140 # Step 1: Request a list of all transactions made during the specified time interval.STRING
LOWaddons/l10n_hu_edi/models/res_company.py162 # Step 2: Query unknown transactions in reverse order (latest first) and update invoice states accordingly.STRING
LOWaddons/account/tests/test_account_account.py821 # 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
LOWaddons/account/wizard/account_merge_wizard.py157 # Step 2: Check that we have write access to all the accounts and access to all the companiesCOMMENT
LOWaddons/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
LOWaddons/account/models/account_account.py1255 # Step 1: Check access rights.STRING
LOWaddons/account/models/account_account.py1258 # Step 2: Create new accounts.STRING
LOWaddons/account/models/account_account.py1476 # Step 4: Change check_company fields to only keep values compatible with the account's company, and update compSTRING
LOWaddons/account/models/account_account.py1486 # Step 5: Put a log in the chatter of the newly-created accountsSTRING
LOWaddons/account/models/account_account.py1275 # Step 3: Update foreign keys in DB.STRING
LOWaddons/l10n_ro_edi/tests/test_ro_edi.py21 # Step 1: First send succeeds, index 'AA' receivedCOMMENT
LOWaddons/l10n_ro_edi/tests/test_ro_edi.py26 # Step 2: SPV refuses via fetch → sent doc deleted, refused doc createdCOMMENT
LOWaddons/l10n_ro_edi/tests/test_ro_edi.py47 # Step 3: Resend succeeds → refused doc preserved, new sent doc addedCOMMENT
LOWaddons/l10n_ro_edi/tests/test_ro_edi.py59 # Step 4: SPV validates → all old docs deleted, only invoice_validated remainsCOMMENT
LOWaddons/l10n_ro_edi/tests/test_ro_edi.py93 # Step 1: First send succeeds, index 'AA' receivedCOMMENT
LOWaddons/l10n_ro_edi/tests/test_ro_edi.py99 # Step 2: SPV refuses via fetch (status 'nok') → invoice_sent deleted, invoice_refused createdCOMMENT
4 more matches not shown…
AI Structural Patterns94 hits · 80 pts
SeverityFileLineSnippetContext
LOWodoo/http.py1597CODE
LOWodoo/http.py1784CODE
LOWodoo/tools/mail.py416CODE
LOWodoo/tools/image.py296CODE
LOWodoo/tools/_vendor/send_file.py32CODE
LOWodoo/addons/test_access_rights/tests/test_feedback.py185CODE
LOWodoo/addons/base/tests/common.py471CODE
LOWodoo/addons/base/wizard/base_module_update.py29CODE
LOWodoo/addons/base/models/ir_mail_server.py394CODE
LOWodoo/addons/base/models/ir_mail_server.py562CODE
LOWodoo/addons/base/models/ir_mail_server.py799CODE
LOWodoo/addons/base/models/res_users_settings.py39CODE
LOWodoo/addons/base/models/ir_binary.py154CODE
LOWodoo/addons/base/models/assetsbundle.py48CODE
LOWodoo/tests/common.py2322CODE
LOWodoo/tests/common.py2450CODE
LOWodoo/orm/models.py3752CODE
LOWaddons/website_event_track/models/event_track.py483CODE
LOWaddons/website_event_track/controllers/webmanifest.py41CODE
LOWaddons/website_event_track/controllers/webmanifest.py58CODE
LOWaddons/website_event_track/controllers/event_track.py430CODE
LOWaddons/l10n_sa_edi/tests/common.py251CODE
LOWaddons/l10n_sa_edi/tests/common.py291CODE
LOWaddons/l10n_sa_edi/tests/common.py329CODE
LOWaddons/hr_holidays_attendance/models/hr_leave.py59CODE
LOW…s/hr_holidays_attendance/models/hr_leave_allocation.py56CODE
LOWaddons/mail_plugin/controllers/mail_plugin.py248CODE
LOW…_tax_tags/tests/test_account_update_tax_tags_wizard.py40CODE
LOWaddons/calendar/models/calendar_alarm_manager.py101CODE
LOWaddons/calendar/models/res_users.py64CODE
LOWaddons/pos_self_order/controllers/self_entry.py42CODE
LOW…oud_storage_google/utils/cloud_storage_google_utils.py112CODE
LOWaddons/website_hr_recruitment/controllers/main.py32CODE
LOW…/mrp_subcontracting/report/mrp_report_bom_structure.py22CODE
LOWaddons/mail/tools/discuss.py497CODE
LOWaddons/mail/tests/common.py212CODE
LOWaddons/mail/tests/common.py224CODE
LOWaddons/mail/tests/common.py245CODE
LOWaddons/mail/tests/common.py285CODE
LOWaddons/mail/tests/common.py1007CODE
LOWaddons/mail/models/mail_thread.py2182CODE
LOWaddons/mail/models/mail_thread.py2706CODE
LOWaddons/mail/models/mail_thread.py2878CODE
LOWaddons/mail/models/mail_thread.py3377CODE
LOWaddons/web/models/models.py349CODE
LOWaddons/web/controllers/binary.py72CODE
LOWaddons/web/controllers/binary.py185CODE
LOWaddons/web/controllers/webmanifest.py82CODE
LOWaddons/web/controllers/pivot.py97CODE
LOWaddons/website_slides/controllers/main.py535CODE
LOW…webauthn/registration/generate_registration_options.py42CODE
LOWaddons/account_peppol/tools/peppol_iap_connector.py64CODE
LOWaddons/website/models/ir_module_module.py420CODE
LOWaddons/website/models/website.py1164CODE
LOWaddons/mrp/tests/common.py12CODE
LOWaddons/mrp/tests/test_order.py4672CODE
LOWaddons/mrp/models/stock_scrap.py41CODE
LOWaddons/mrp/models/mrp_production.py1386CODE
LOWaddons/mrp/report/mrp_report_bom_structure.py170CODE
LOWaddons/crm/tests/common.py317CODE
34 more matches not shown…
Modern Structural Boilerplate57 hits · 55 pts
SeverityFileLineSnippetContext
LOWodoo/logging.py7__all__ = [ # noqa: RUF022CODE
LOWodoo/tools/mail.py34__all__ = [CODE
LOWodoo/tools/misc.py59__all__ = [CODE
LOWodoo/tools/translate.py45__all__ = [CODE
LOWodoo/tools/float_utils.py10__all__ = [CODE
LOWodoo/tools/template_inheritance.py13__all__ = []CODE
LOWodoo/tools/query.py230 def set_result_ids(self, ids: Iterable[int], ordered: bool = True) -> None:CODE
LOWodoo/tools/date_utils.py47__all__ = [CODE
LOWodoo/tools/convert.py4__all__ = [CODE
LOWodoo/tools/mimetypes.py15__all__ = ['guess_mimetype']CODE
LOWodoo/tools/lru.py7__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/safe_eval.py33__all__ = ['const_eval', 'safe_eval']CODE
LOWodoo/tools/sql.py22__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.py23__all__ = ["image_process"]CODE
LOWodoo/tools/func.py10__all__ = [CODE
LOWodoo/tools/pdf/_pypdf2_2.py5__all__ = [CODE
LOWodoo/tools/pdf/_pypdf2_1.py5__all__ = [CODE
LOWodoo/tools/pdf/_pypdf.py8__all__ = [CODE
LOWodoo/tools/arabic_reshaper/__init__.py21__all__ = ['reshape']CODE
LOWodoo/addons/test_lint/tests/test_docstring.py14logger = logging.getLogger(__name__)CODE
LOWodoo/addons/base/models/ir_cron.py571 def _update_failure_count(self, job: dict, status: CompletionStatus) -> None:STRING
LOWodoo/tests/shell.py1__all__ = ['run_tests']CODE
LOWodoo/orm/models.py6066 def _update_cache(self, values: ValuesType, validate: bool = True) -> None:STRING
LOWodoo/orm/fields.py491 def _setup_attrs__(self, model_class: type[BaseModel], name: str) -> None:CODE
LOWodoo/orm/fields.py1188 def update_db_related(self, model: BaseModel) -> None:CODE
LOWodoo/orm/fields.py1609 def _update_cache(self, records: BaseModel, cache_value: typing.Any, dirty: bool = False) -> None:CODE
LOWodoo/orm/registry.py383 def _setup_models__(self, cr: BaseCursor, model_names: Iterable[str] | None = None) -> None: # noqa: PLW3201CODE
LOWodoo/orm/environments.py738 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.py40__all__ = [CODE
LOWaddons/spreadsheet/controllers/main.py7logger = logging.getLogger(__name__)CODE
LOWaddons/mail/controllers/attachment.py18logger = logging.getLogger(__name__)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.py11logger = logging.getLogger(__name__)CODE
LOWaddons/website/models/mixins.py16logger = logging.getLogger(__name__)CODE
LOWaddons/website/models/ir_http.py22logger = logging.getLogger(__name__)CODE
LOWaddons/website/models/website_page.py16logger = logging.getLogger(__name__)CODE
LOWaddons/website/models/website.py36logger = logging.getLogger(__name__)CODE
LOWaddons/website/controllers/main.py41logger = logging.getLogger(__name__)CODE
LOWaddons/product/controllers/product_document.py9logger = logging.getLogger(__name__)CODE
LOWaddons/html_editor/tools.py17logger = logging.getLogger(__name__)CODE
LOWaddons/html_editor/models/ir_qweb_fields.py34logger = logging.getLogger(__name__)CODE
LOWaddons/web_unsplash/controllers/main.py16logger = logging.getLogger(__name__)CODE
LOWaddons/website_cf_turnstile/models/ir_http.py10logger = logging.getLogger(__name__)CODE
LOW…le_pdf_quote_builder/controllers/quotation_document.py12logger = logging.getLogger(__name__)CODE
LOWaddons/rpc/controllers/xmlrpc.py18logger = logging.getLogger(__name__)CODE
LOWaddons/rpc/controllers/jsonrpc.py7logger = logging.getLogger(__name__)CODE
LOWaddons/website_sale/models/website.py20logger = logging.getLogger(__name__)CODE
LOWaddons/api_doc/controllers/api_doc.py28logger = logging.getLogger(__name__)CODE
Slop Phrases31 hits · 45 pts
SeverityFileLineSnippetContext
LOWodoo/tools/safe_eval.py486# make sure to patch pytz before exposingSTRING
LOWodoo/addons/base/tests/test_db_cursor.py145 # make sure to fetch the field from the databaseCOMMENT
LOWodoo/addons/base/tests/test_install.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.py939 # don't forget to update recurrences if there are some base events in the set to unlink,COMMENT
LOWaddons/calendar/models/calendar_event.py939 # don't forget to update recurrences if there are some base events in the set to unlink,COMMENT
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.js40 // 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.xml110 Don't forget to specify the department if your recruitment processCODE
LOW…dons/website_slides/static/src/js/tours/slides_tour.js115 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.xml148 - 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.xml12 <button name="action_stripe_key" type="object" icon="oi-arrow-right" string="Don't forget to completCODE
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.js30 content: markup(_t("Don't forget to click <b>save</b> when you're done.")),CODE
MEDIUMaddons/account/tests/test_account_account.py93 # Test that you can modify the code of an account in another company by writing on `code_mapping_ids`.COMMENT
MEDIUMaddons/account/tests/test_account_account.py97 # 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.py45 # 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.py1161 # Fix the balance but make sure to peek the liquidity and counterpart lines first.STRING
LOWaddons/account/models/account_tax.py2529 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.py2718 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.py3052 Don't forget to call '_add_tax_details_in_base_lines', '_round_base_lines_tax_details' andSTRING
LOWaddons/stock/models/stock_picking.py1126 # make sure to write `schedule_date` *after* the `stock.move` creation inCOMMENT
LOWaddons/sale_purchase/models/product_template.py13 help="If ticked, each time you sell this product through a SO, a RfQ is automatically created to buy the productCODE
MEDIUMaddons/survey/models/survey_survey.py154 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.py530 # make sure to fetch the right product for the given combinationCOMMENT
Cross-Language Confusion (JS/TS)3 hits · 18 pts
SeverityFileLineSnippetContext
HIGH…/static/src/webclient/actions/reports/report_action.js46 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 Structure3 hits · 15 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
Magic Placeholder Names3 hits · 15 pts
SeverityFileLineSnippetContext
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 Names5 hits · 4 pts
SeverityFileLineSnippetContext
LOWodoo/tools/misc.py752 def do_stuff():STRING
LOWodoo/addons/test_convert/tests/test_convert.py80 def test_function(self):CODE
LOWaddons/web/static/lib/jquery/jquery.js4469function getData( data ) {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.py705 # Render digital signature scaffold from QWebCOMMENT
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWaddons/l10n_fr_pdp/models/pdp_flow_xml_builder.py408 # TODO: implement ? Seller always has TT-34, so this not usefull ??COMMENT