Open Source Inventory Management System
This report summarizes scanner evidence for inventree/InvenTree, a Python project with 7,694 GitHub stars. SynthScan examined 313,077 lines of code across 1420 source files, recording 2177 pattern matches distributed across 21 syntactic categories. The legacy adjusted pattern signal is 12.6 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 1470 finding(s).
Are imports declared and package/API names verified? 201 finding(s).
Are wrappers, guards, and repeated structures necessary? 1419 finding(s).
Which changes need focused human review? 2177 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 2177 distinct pattern matches across 21 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | src/frontend/src/functions/auth.tsx | 179 | const mfa_flow = err.response.data.data.flows.find( | CODE |
| CRITICAL | src/frontend/src/functions/auth.tsx | 399 | const mfa_trust = err.response.data.data.flows.find( | CODE |
| CRITICAL | src/frontend/src/functions/auth.tsx | 810 | const mfa_trust = err.response.data.data.flows.find( | CODE |
| CRITICAL | src/backend/InvenTree/order/models.py | 8 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/order/test_sales_order.py | 9 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/order/serializers.py | 5 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | src/backend/InvenTree/order/test_api.py | 12 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/importer/models.py | 10 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | src/backend/InvenTree/importer/validators.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/importer/serializers.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/importer/operations.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/importer/tests.py | 198 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | src/backend/InvenTree/importer/tests.py | 237 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | src/backend/InvenTree/importer/tests.py | 337 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | src/backend/InvenTree/importer/tests.py | 384 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | src/backend/InvenTree/importer/tests.py | 414 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | src/backend/InvenTree/plugin/test_plugin.py | 15 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/plugin/serializers.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/plugin/installer.py | 11 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/plugin/api.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …nd/InvenTree/plugin/samples/integration/test_sample.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …end/InvenTree/plugin/samples/integration/transition.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …e/plugin/samples/integration/test_validation_sample.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …backend/InvenTree/plugin/samples/integration/sample.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …backend/InvenTree/plugin/builtin/labels/label_sheet.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …d/InvenTree/plugin/base/integration/ValidationMixin.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/plugin/base/label/mixins.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …ackend/InvenTree/plugin/base/label/test_label_mixin.py | 8 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/plugin/base/supplier/mixins.py | 7 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/plugin/base/barcodes/mixins.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …/backend/InvenTree/plugin/base/barcodes/serializers.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/common/models.py | 3221 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/common/icons.py | 8 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/common/test_api.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/common/test_api.py | 1610 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/common/test_api.py | 1631 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/common/tests.py | 16 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/common/currency.py | 7 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/common/test_emails.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/common/filters.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/common/setting/tests.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/users/api.py | 9 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/generic/states/validators.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/generic/states/transition.py | 7 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/generic/states/test_transition.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/generic/states/api_helpers.py | 8 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | src/backend/InvenTree/report/models.py | 11 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/report/test_tags.py | 13 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/report/validators.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/report/api.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/report/tests.py | 14 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/report/tests.py | 778 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/report/templatetags/barcode.py | 7 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/data_exporter/mixins.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/part/tasks.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/part/models.py | 17 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/part/serializers.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/part/test_category.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/part/test_api.py | 9 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | src/backend/InvenTree/part/test_part.py | 7 | from django.core.exceptions import ValidationError | CODE |
| 22 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tasks.py | 37 | def is_devcontainer_environment(): | CODE |
| LOW | tasks.py | 77 | def get_inventree_api_version(): | CODE |
| LOW | tasks.py | 2091 | def export_settings_definitions(c, filename='inventree_settings.json', overwrite=False): | CODE |
| LOW | docs/docs/hooks.py | 263 | def check_status_codes_documented(gen_base): | CODE |
| LOW | docs/docs/hooks.py | 290 | def check_status_code_values_documented(gen_base): | CODE |
| LOW | docs/docs/plugins/walkthrough.md | 122 | export function RenderAttachmentCarouselPanel(context: InvenTreePluginContext) { | CODE |
| LOW | docs/docs/plugins/machines/overview.md | 62 | def my_custom_required_method(self): | CODE |
| LOW | docs/docs/javascripts/fontawesome.js | 1060 | function makeLayersCounterAbstract(params) { | CODE |
| LOW | docs/docs/javascripts/fontawesome.js | 1837 | function generateSvgReplacementMutation(node, nodeMeta) { | CODE |
| LOW | docs/docs/javascripts/splide.esm.js | 7 | (function webpackUniversalModuleDefinition(root, factory) { | CODE |
| LOW | .github/scripts/version_check.py | 114 | def get_existing_release_tags(include_prerelease: bool = True): | CODE |
| LOW | src/frontend/tests/baseFixtures.ts | 55 | async function collectCoverageFromContext(context: BrowserContext) { | CODE |
| LOW | …c/frontend/src/tables/settings/SelectionListDrawer.tsx | 31 | function SelectionListEntriesTable({ | CODE |
| LOW | …rontend/src/tables/sales/SalesOrderParametricTable.tsx | 15 | export default function SalesOrderParametricTable({ | CODE |
| LOW | …rontend/src/tables/sales/SalesOrderAllocationTable.tsx | 43 | export default function SalesOrderAllocationTable({ | CODE |
| LOW | …ontend/src/tables/sales/ReturnOrderParametricTable.tsx | 15 | export default function ReturnOrderParametricTable({ | CODE |
| LOW | …src/tables/purchasing/PurchaseOrderParametricTable.tsx | 15 | export default function PurchaseOrderParametricTable({ | CODE |
| LOW | …/src/tables/purchasing/SupplierPartParametricTable.tsx | 12 | export default function SupplierPartParametricTable({ | CODE |
| LOW | …d/src/tables/purchasing/PurchaseOrderLineItemTable.tsx | 60 | export function PurchaseOrderLineItemTable({ | CODE |
| LOW | …/tables/purchasing/ManufacturerPartParametricTable.tsx | 13 | export default function ManufacturerPartParametricTable({ | CODE |
| LOW | …tend/src/tables/purchasing/SupplierPriceBreakTable.tsx | 29 | export function calculateSupplierPartUnitPrice(record: any) { | CODE |
| LOW | …tend/src/tables/purchasing/SupplierPriceBreakTable.tsx | 36 | export function SupplierPriceBreakColumns(): TableColumn[] { | CODE |
| LOW | …frontend/src/tables/part/PartCategoryTemplateTable.tsx | 28 | export default function PartCategoryTemplateTable({ | CODE |
| LOW | …frontend/src/tables/part/PartBuildAllocationsTable.tsx | 33 | export default function PartBuildAllocationsTable({ | CODE |
| LOW | …frontend/src/tables/part/PartSalesAllocationsTable.tsx | 30 | export default function PartSalesAllocationsTable({ | CODE |
| LOW | …ontend/src/tables/stock/TransferOrderLineItemTable.tsx | 60 | export default function TransferOrderLineItemTable({ | CODE |
| LOW | …tend/src/tables/stock/StockLocationParametricTable.tsx | 10 | export default function StockLocationParametricTable({ | CODE |
| LOW | …tend/src/tables/stock/TransferOrderAllocationTable.tsx | 34 | export default function TransferOrderAllocationTable({ | CODE |
| LOW | …tend/src/tables/stock/TransferOrderParametricTable.tsx | 20 | export default function TransferOrderParametricTable({ | CODE |
| LOW | src/frontend/src/contexts/colorSchema.tsx | 11 | export function localStorageColorSchemeManager({ | CODE |
| LOW | src/frontend/src/forms/CompanyForms.tsx | 124 | export function useManufacturerPartFields({ | CODE |
| LOW | src/frontend/src/forms/StockForms.tsx | 396 | export function useStockItemUninstallFields(): ApiFormFieldSet { | CODE |
| LOW | src/frontend/src/forms/StockForms.tsx | 412 | export function useStockItemInstallFields({ | CODE |
| LOW | src/frontend/src/forms/StockForms.tsx | 466 | export function useStockItemSerializeFields({ | CODE |
| LOW | src/frontend/src/forms/SalesOrderForms.tsx | 120 | export function useSalesOrderLineItemFields({ | CODE |
| LOW | src/frontend/src/forms/SalesOrderForms.tsx | 309 | function SalesOrderAllocateLineRow({ | CODE |
| LOW | src/frontend/src/forms/SalesOrderForms.tsx | 398 | export function useAllocateToSalesOrderForm({ | CODE |
| LOW | src/frontend/src/forms/SalesOrderForms.tsx | 488 | export function useSalesOrderAllocateSerialsFields({ | CODE |
| LOW | src/frontend/src/forms/SalesOrderForms.tsx | 514 | export function useSalesOrderShipmentFields({ | CODE |
| LOW | src/frontend/src/forms/SalesOrderForms.tsx | 548 | export function useSalesOrderShipmentCompleteFields({ | CODE |
| LOW | src/frontend/src/forms/SalesOrderForms.tsx | 563 | export function useSalesOrderAllocationFields({ | CODE |
| LOW | src/frontend/src/forms/SalesOrderForms.tsx | 591 | export function useSalesOrderAutoAllocateFields({ | CODE |
| LOW | src/frontend/src/forms/TransferOrderForms.tsx | 76 | export function useTransferOrderLineItemFields({ | CODE |
| LOW | src/frontend/src/forms/TransferOrderForms.tsx | 107 | function TransferOrderAllocateLineRow({ | CODE |
| LOW | src/frontend/src/forms/TransferOrderForms.tsx | 194 | export function useAllocateToTransferOrderForm({ | CODE |
| LOW | src/frontend/src/forms/TransferOrderForms.tsx | 283 | export function useTransferOrderAllocationFields({ | CODE |
| LOW | src/frontend/src/forms/TransferOrderForms.tsx | 299 | export function useTransferOrderAllocateSerialsFields({ | CODE |
| LOW | src/frontend/src/forms/PurchaseOrderForms.tsx | 64 | export function usePurchaseOrderLineItemFields({ | CODE |
| LOW | src/frontend/src/forms/BomForms.tsx | 107 | export function useEditBomSubstitutesForm(props: BomItemSubstituteFormProps) { | CODE |
| LOW | src/frontend/src/forms/BuildForms.tsx | 171 | export function useBuildOrderOutputFields({ | CODE |
| LOW | src/frontend/src/forms/BuildForms.tsx | 242 | export function useBuildAutoAllocateFields({ | CODE |
| LOW | src/frontend/src/forms/BuildForms.tsx | 336 | export function useCompleteBuildOutputsForm({ | CODE |
| LOW | src/frontend/src/forms/BuildForms.tsx | 505 | export function useCancelBuildOutputsForm({ | CODE |
| LOW | src/frontend/src/forms/BuildForms.tsx | 668 | export function useAllocateStockToBuildForm({ | CODE |
| LOW | src/frontend/src/forms/ImporterForms.tsx | 4 | export function dataImporterSessionFields({ | CODE |
| LOW | src/frontend/src/forms/ReturnOrderForms.tsx | 106 | export function useReturnOrderLineItemFields({ | CODE |
| LOW | src/frontend/src/forms/ReturnOrderForms.tsx | 152 | function ReturnOrderLineItemFormRow({ | CODE |
| LOW | src/frontend/src/forms/ReturnOrderForms.tsx | 214 | export function useReceiveReturnOrderLineItems( | CODE |
| LOW | src/frontend/src/forms/CommonForms.tsx | 102 | export function useParameterTemplateFields(): ApiFormFieldSet { | CODE |
| LOW | src/frontend/src/forms/CommonForms.tsx | 135 | export function useDynamicParameterValueField(resetDep?: any): { | CODE |
| 844 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/backend/InvenTree/order/api.py | 472 | except NotFound: | CODE |
| HIGH | src/backend/InvenTree/order/api.py | 1135 | except NotFound: | CODE |
| HIGH | src/backend/InvenTree/order/api.py | 1715 | except NotFound: | CODE |
| HIGH | src/backend/InvenTree/order/api.py | 2018 | except NotFound: | CODE |
| HIGH | src/backend/InvenTree/plugin/models.py | 237 | except Exception: | CODE |
| HIGH | src/backend/InvenTree/plugin/models.py | 254 | except Exception: | CODE |
| HIGH | src/backend/InvenTree/plugin/registry.py | 422 | except (OperationalError, ProgrammingError, IntegrityError): | CODE |
| HIGH | src/backend/InvenTree/plugin/registry.py | 425 | except IntegrationPluginError: | CODE |
| HIGH | src/backend/InvenTree/plugin/registry.py | 1091 | except (OperationalError, ProgrammingError): | CODE |
| HIGH | src/backend/InvenTree/plugin/registry.py | 1144 | except Exception: | CODE |
| HIGH | src/backend/InvenTree/plugin/registry.py | 827 | except Exception: | CODE |
| HIGH | src/backend/InvenTree/plugin/urls.py | 35 | except Resolver404: | CODE |
| HIGH | src/backend/InvenTree/plugin/helpers.py | 161 | except NotGitRepository: | CODE |
| HIGH | src/backend/InvenTree/plugin/helpers.py | 211 | except AppRegistryNotReady: # pragma: no cover | CODE |
| HIGH | …enTree/plugin/samples/integration/validation_sample.py | 143 | except ValueError: | CODE |
| HIGH | …enTree/plugin/samples/integration/validation_sample.py | 160 | except ValueError: | CODE |
| HIGH | …InvenTree/plugin/builtin/integration/core_wellknown.py | 42 | except Exception: # pragma: no cover | CODE |
| HIGH | …InvenTree/plugin/builtin/barcodes/inventree_barcode.py | 83 | except (ValueError, model.DoesNotExist): | CODE |
| HIGH | …InvenTree/plugin/builtin/barcodes/inventree_barcode.py | 96 | except json.JSONDecodeError: | CODE |
| HIGH | …InvenTree/plugin/builtin/barcodes/inventree_barcode.py | 119 | except (ValueError, model.DoesNotExist): | CODE |
| HIGH | …end/InvenTree/plugin/base/integration/ScheduleMixin.py | 238 | except Schedule.DoesNotExist: | CODE |
| HIGH | …/backend/InvenTree/plugin/base/integration/AppMixin.py | 109 | except Exception: # pragma: no cover | CODE |
| HIGH | src/backend/InvenTree/plugin/base/supplier/mixins.py | 176 | except ValidationError: | CODE |
| HIGH | src/backend/InvenTree/plugin/base/supplier/helpers.py | 80 | except common.models.ParameterTemplate.DoesNotExist: | CODE |
| HIGH | src/backend/InvenTree/plugin/base/barcodes/mixins.py | 67 | except Exception: | CODE |
| HIGH | src/backend/InvenTree/plugin/base/barcodes/api.py | 530 | except Exception: | CODE |
| HIGH | src/backend/InvenTree/plugin/base/event/test_events.py | 107 | except ValueError: | CODE |
| HIGH | src/backend/InvenTree/common/tasks.py | 104 | except (IntegrityError, OperationalError): | CODE |
| HIGH | src/backend/InvenTree/common/models.py | 315 | except Exception: # pragma: no cover | CODE |
| HIGH | src/backend/InvenTree/common/models.py | 942 | except self.DoesNotExist: | CODE |
| HIGH | src/backend/InvenTree/common/models.py | 2285 | except Exception: | CODE |
| HIGH | src/backend/InvenTree/common/models.py | 2739 | except ParameterTemplate.DoesNotExist: | CODE |
| HIGH | src/backend/InvenTree/common/models.py | 650 | except (IntegrityError, OperationalError, ProgrammingError): | CODE |
| HIGH | src/backend/InvenTree/common/models.py | 653 | except ValidationError: | CODE |
| HIGH | src/backend/InvenTree/common/models.py | 1094 | except Exception: | CODE |
| HIGH | src/backend/InvenTree/common/models.py | 1995 | except Exception: # pragma: no cover | CODE |
| HIGH | src/backend/InvenTree/common/models.py | 2002 | except Exception: # pragma: no cover | CODE |
| HIGH | src/backend/InvenTree/common/models.py | 2037 | except Exception: | CODE |
| HIGH | src/backend/InvenTree/common/serializers.py | 352 | except Exception: | CODE |
| HIGH | src/backend/InvenTree/common/apps.py | 44 | except Exception: # pragma: no cover | CODE |
| HIGH | src/backend/InvenTree/common/notifications.py | 113 | except Exception: | CODE |
| HIGH | src/backend/InvenTree/machine/registry.py | 435 | except Exception: | CODE |
| HIGH | src/backend/InvenTree/machine/registry.py | 485 | except (IntegrityError, OperationalError, ProgrammingError): | CODE |
| HIGH | src/backend/InvenTree/users/models.py | 515 | except Exception: # pragma: no cover | CODE |
| HIGH | src/backend/InvenTree/users/models.py | 522 | except Exception: # pragma: no cover | CODE |
| HIGH | src/backend/InvenTree/users/models.py | 603 | except Owner.DoesNotExist: | CODE |
| HIGH | src/backend/InvenTree/users/apps.py | 36 | except (OperationalError, ProgrammingError): # pragma: no cover | CODE |
| HIGH | src/backend/InvenTree/users/apps.py | 43 | except (OperationalError, ProgrammingError): # pragma: no cover | CODE |
| HIGH | src/backend/InvenTree/generic/states/api.py | 100 | except Exception: | CODE |
| HIGH | src/backend/InvenTree/generic/states/states.py | 181 | except Exception: | CODE |
| HIGH | src/backend/InvenTree/generic/states/states.py | 236 | except Exception: | CODE |
| HIGH | src/backend/InvenTree/report/apps.py | 81 | except Exception: | CODE |
| HIGH | src/backend/InvenTree/report/templatetags/report.py | 499 | except ValueError: | CODE |
| HIGH | src/backend/InvenTree/report/templatetags/report.py | 804 | except (ValueError, TypeError): | CODE |
| HIGH | src/backend/InvenTree/report/templatetags/report.py | 994 | except Exception: | CODE |
| HIGH | src/backend/InvenTree/data_exporter/apps.py | 24 | except Exception: | CODE |
| HIGH | src/backend/InvenTree/part/tasks.py | 390 | except ValidationError: | CODE |
| HIGH | src/backend/InvenTree/part/models.py | 2238 | except IntegrityError: | CODE |
| HIGH | src/backend/InvenTree/part/models.py | 2823 | except IntegrityError: | CODE |
| HIGH | src/backend/InvenTree/part/models.py | 4402 | except Part.DoesNotExist: | CODE |
| 56 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | src/backend/InvenTree/order/test_sales_order.py | 78 | # Create a SalesOrder to ship against | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/order/test_sales_order.py | 83 | # Create a Shipment against this SalesOrder | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/order/test_sales_order.py | 88 | # Create a line item | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/order/test_sales_order.py | 93 | # Create an extra line | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/order/test_sales_order.py | 102 | # Create an address for a different company | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_sales_order.py | 54 | # Create a Company to ship the goods to | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_sales_order.py | 59 | # Create a Part to ship | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_sales_order.py | 544 | # Create a new SalesOrder | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_sales_order.py | 554 | # Create a part | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_sales_order.py | 779 | # Create an order | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_sales_order.py | 793 | # Create a second order | COMMENT |
| MEDIUM | src/backend/InvenTree/order/serializers.py | 2002 | # Create a new SalesOrderAllocation | COMMENT |
| MEDIUM | src/backend/InvenTree/order/serializers.py | 2855 | # Create a new TransferOrderAllocation | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_api.py | 1734 | # Create a new order | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_api.py | 2258 | # Create a duplicate of this sales order | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_api.py | 2486 | # Create a line item | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_api.py | 2654 | # Create a bunch of SalesOrderLineItems for each order | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_api.py | 2861 | # Create a new shipment against this SalesOrder | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_api.py | 2996 | # Create a new line item | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_api.py | 3004 | # Create a new shipment against this SalesOrder | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_api.py | 3322 | # Create a required test | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_api.py | 3713 | # Create an order | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_api.py | 3810 | # Create a new ReturnOrder | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_api.py | 4654 | # Create a line item | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_api.py | 4722 | # Create a line item | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_api.py | 5005 | # Create a bunch of TransferOrderLineItems for each order | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_api.py | 5306 | # Create a new line item | COMMENT |
| MEDIUM | src/backend/InvenTree/order/test_api.py | 5314 | # Create a new shipment against this TransferOrder | COMMENT |
| MEDIUM | src/backend/InvenTree/order/tests.py | 92 | # Create a contact which does does not match the company | COMMENT |
| MEDIUM | src/backend/InvenTree/order/tests.py | 354 | # Create a new supplier part with larger pack size | COMMENT |
| MEDIUM | src/backend/InvenTree/order/tests.py | 359 | # Create a new supplier part with smaller pack size | COMMENT |
| MEDIUM | src/backend/InvenTree/order/tests.py | 370 | # Create a new PurchaseOrder | COMMENT |
| MEDIUM | src/backend/InvenTree/importer/models.py | 237 | # Create a default mapping for each available field in the database | COMMENT |
| MEDIUM | src/backend/InvenTree/importer/models.py | 287 | # Create the column mappings | COMMENT |
| MEDIUM | src/backend/InvenTree/plugin/test_plugin.py | 220 | # Create a sample plugin with a known static file | COMMENT |
| MEDIUM | src/backend/InvenTree/plugin/test_plugin.py | 503 | # Create an __init__.py file | COMMENT |
| MEDIUM | …backend/InvenTree/plugin/templatetags/plugin_extras.py | 1 | """This module provides template tags for handling plugins.""" | STRING |
| MEDIUM | …e/plugin/samples/integration/test_validation_sample.py | 48 | # Create a BomItem to run tests on | COMMENT |
| MEDIUM | …end/InvenTree/plugin/base/integration/ScheduleMixin.py | 220 | # Create a new scheduled task | COMMENT |
| MEDIUM | …ckend/InvenTree/plugin/base/integration/test_mixins.py | 172 | # Create a fake model | COMMENT |
| MEDIUM | …ckend/InvenTree/plugin/base/integration/test_mixins.py | 176 | # Create a mock app_config that returns our fake model | COMMENT |
| MEDIUM⚡ | …backend/InvenTree/plugin/base/barcodes/test_barcode.py | 417 | # Create a sales order | COMMENT |
| MEDIUM⚡ | …backend/InvenTree/plugin/base/barcodes/test_barcode.py | 420 | # Create a shipment | COMMENT |
| MEDIUM⚡ | …backend/InvenTree/plugin/base/barcodes/test_barcode.py | 425 | # Create a line item | COMMENT |
| MEDIUM | …backend/InvenTree/plugin/base/barcodes/test_barcode.py | 522 | # Create a shipment for a different order | COMMENT |
| MEDIUM | src/backend/InvenTree/common/models.py | 2103 | # Create a new file with the new name, and delete the old file | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 632 | # Create a simple part to test with | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 639 | # Create a ParameterTemplate for the Part model | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 648 | # Create a Parameter via the API | COMMENT |
| MEDIUM | src/backend/InvenTree/common/test_api.py | 225 | # Create a new ParameterTemplate - initially with invalid model_type field | COMMENT |
| MEDIUM | src/backend/InvenTree/common/test_api.py | 379 | # Create a Parameter against a specific Company instance | COMMENT |
| MEDIUM | src/backend/InvenTree/common/test_api.py | 1028 | # Create a parameter for every company against every template | COMMENT |
| MEDIUM | src/backend/InvenTree/common/test_api.py | 1083 | # Create a ParameterTemplate for the Part model | COMMENT |
| MEDIUM | src/backend/InvenTree/common/test_api.py | 1090 | # Create a Parameter for the Build | COMMENT |
| MEDIUM | src/backend/InvenTree/common/test_api.py | 1528 | # Create a note on the other part; it should be primary for *that* part | COMMENT |
| MEDIUM | src/backend/InvenTree/common/test_api.py | 2725 | # Create a note directly via ORM (bypasses API permission checks) | COMMENT |
| MEDIUM | src/backend/InvenTree/common/test_api.py | 3194 | # Create a parameter directly via ORM (bypasses API permission checks) | COMMENT |
| MEDIUM | src/backend/InvenTree/common/tests.py | 1428 | # Create a notification message | COMMENT |
| MEDIUM | src/backend/InvenTree/common/tests.py | 2099 | # Create a new project code | COMMENT |
| MEDIUM | src/backend/InvenTree/common/test_emails.py | 176 | # Create a test event | COMMENT |
| 138 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tasks.py | 634 | def check(cmd): | CODE |
| LOW | tasks.py | 1703 | except Exception as e: | CODE |
| LOW | tasks.py | 1755 | except Exception as e: | CODE |
| LOW | tasks.py | 1876 | except Exception: | CODE |
| LOW | tasks.py | 2295 | except Exception: | CODE |
| LOW | tasks.py | 2463 | except Exception: | CODE |
| LOW | tasks.py | 2486 | except Exception as e: | CODE |
| MEDIUM | docs/docs/hooks.py | 26 | print(f'Error fetching RTD versions: {response.status_code}') | CODE |
| MEDIUM | .github/scripts/seed_content_excludes_data.py | 46 | print('Error: no superuser found - run `invoke dev.setup-test` first') | CODE |
| MEDIUM | .github/scripts/seed_content_excludes_data.py | 56 | print('Error: no groups found - run `invoke dev.setup-test` first') | CODE |
| MEDIUM | .github/scripts/check_exported_data.py | 61 | print(f"Error: Expected '{label}' data ('{model}') was not found") | CODE |
| MEDIUM | .github/scripts/check_exported_data.py | 139 | print(f'Error: File not found: {args.datafile}') | CODE |
| MEDIUM | .github/scripts/check_exported_data.py | 148 | print(f'Error: Failed to parse JSON file: {e}') | CODE |
| MEDIUM | .github/scripts/check_exported_data.py | 188 | print('Error: No metadata entry found in exported data') | CODE |
| MEDIUM | .github/scripts/check_exported_data.py | 201 | print(f'Error: No plugin configuration found for plugin "{PLUGIN_KEY}"') | CODE |
| MEDIUM | .github/scripts/check_exported_data.py | 214 | print('Error: Plugin data was found, but should have been excluded') | CODE |
| MEDIUM | src/backend/InvenTree/order/test_sales_order.py | 1273 | def allocate(line_item): | CODE |
| LOW | src/backend/InvenTree/order/test_sales_order.py | 1292 | except Exception as exc: # pragma: no cover - surfaced via errors list | CODE |
| LOW | src/backend/InvenTree/order/serializers.py | 193 | except Exception: | CODE |
| MEDIUM | src/backend/InvenTree/order/test_api.py | 5536 | def allocate(line_item): | CODE |
| LOW | src/backend/InvenTree/order/test_api.py | 5551 | except Exception as exc: # pragma: no cover - surfaced via errors list | CODE |
| LOW | src/backend/InvenTree/importer/models.py | 992 | except Exception as e: | CODE |
| MEDIUM | src/backend/InvenTree/importer/tests.py | 495 | def update(field, value): | CODE |
| LOW | src/backend/InvenTree/importer/tests.py | 507 | except Exception as exc: # pragma: no cover - surfaced via errors list | CODE |
| LOW | src/backend/InvenTree/plugin/models.py | 237 | except Exception: | CODE |
| LOW | src/backend/InvenTree/plugin/models.py | 254 | except Exception: | CODE |
| LOW | src/backend/InvenTree/plugin/test_plugin.py | 1064 | except Exception as exc: | CODE |
| LOW | src/backend/InvenTree/plugin/registry.py | 304 | except Exception: | CODE |
| LOW | src/backend/InvenTree/plugin/registry.py | 493 | except Exception: | CODE |
| LOW | src/backend/InvenTree/plugin/registry.py | 537 | except Exception as e: | CODE |
| LOW | src/backend/InvenTree/plugin/registry.py | 577 | except Exception as e: # pragma: no cover | CODE |
| LOW | src/backend/InvenTree/plugin/registry.py | 590 | except Exception: # pragma: no cover | CODE |
| LOW | src/backend/InvenTree/plugin/registry.py | 664 | except Exception as error: # pragma: no cover | CODE |
| LOW | src/backend/InvenTree/plugin/registry.py | 827 | except Exception: | CODE |
| LOW | src/backend/InvenTree/plugin/registry.py | 829 | except Exception: | CODE |
| LOW | src/backend/InvenTree/plugin/registry.py | 848 | except Exception as error: | CODE |
| LOW | src/backend/InvenTree/plugin/registry.py | 910 | except Exception as error: | CODE |
| LOW | src/backend/InvenTree/plugin/registry.py | 997 | except Exception as error: # pragma: no cover | CODE |
| LOW | src/backend/InvenTree/plugin/registry.py | 1081 | except Exception: | CODE |
| LOW | src/backend/InvenTree/plugin/registry.py | 1094 | except Exception as exc: | CODE |
| LOW | src/backend/InvenTree/plugin/registry.py | 1144 | except Exception: | CODE |
| LOW | src/backend/InvenTree/plugin/registry.py | 1179 | except Exception as exc: | CODE |
| LOW | src/backend/InvenTree/plugin/installer.py | 109 | except Exception: | CODE |
| LOW | src/backend/InvenTree/plugin/installer.py | 127 | except Exception: | CODE |
| LOW⚡ | src/backend/InvenTree/plugin/installer.py | 165 | except Exception: | CODE |
| LOW⚡ | src/backend/InvenTree/plugin/installer.py | 178 | except Exception: | CODE |
| LOW | src/backend/InvenTree/plugin/installer.py | 212 | except Exception as exc: | CODE |
| LOW | src/backend/InvenTree/plugin/installer.py | 220 | except Exception: | CODE |
| LOW | src/backend/InvenTree/plugin/installer.py | 248 | except Exception as exc: | CODE |
| LOW | src/backend/InvenTree/plugin/installer.py | 285 | except Exception as exc: | CODE |
| LOW | src/backend/InvenTree/plugin/installer.py | 363 | except Exception: | CODE |
| LOW | src/backend/InvenTree/plugin/installer.py | 451 | except Exception: | CODE |
| LOW | src/backend/InvenTree/plugin/plugin.py | 554 | except Exception: | CODE |
| LOW | src/backend/InvenTree/plugin/urls.py | 45 | except Exception: | CODE |
| LOW | src/backend/InvenTree/plugin/urls.py | 72 | except Exception: # pragma: no cover | CODE |
| LOW | src/backend/InvenTree/plugin/urls.py | 104 | except Exception: # pragma: no cover | CODE |
| LOW | src/backend/InvenTree/plugin/helpers.py | 89 | except Exception: | CODE |
| LOW | src/backend/InvenTree/plugin/helpers.py | 196 | except Exception as error: | CODE |
| LOW | src/backend/InvenTree/plugin/helpers.py | 213 | except Exception as error: | CODE |
| LOW | src/backend/InvenTree/plugin/helpers.py | 226 | except Exception: | CODE |
| 243 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | contrib/container/docker-compose.yml | 8 | # --------------------- | COMMENT |
| MEDIUM⚡ | contrib/container/docker-compose.yml | 10 | # --------------------- | COMMENT |
| MEDIUM⚡ | contrib/container/docker-compose.yml | 12 | # ----------------------------- | COMMENT |
| MEDIUM⚡ | contrib/container/docker-compose.yml | 14 | # ----------------------------- | COMMENT |
| MEDIUM⚡ | contrib/container/docker-compose.yml | 22 | # ------------------------ | COMMENT |
| MEDIUM⚡ | contrib/container/docker-compose.yml | 24 | # ------------------------ | COMMENT |
| MEDIUM | contrib/container/docker-compose.yml | 35 | # ---------------------------- | COMMENT |
| MEDIUM | contrib/container/docker-compose.yml | 37 | # ---------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/order/test_api.py | 5617 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/order/test_api.py | 5619 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/order/test_api.py | 5645 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/order/test_api.py | 5647 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/order/test_api.py | 5691 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/order/test_api.py | 5693 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/order/test_api.py | 5907 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/order/test_api.py | 5909 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/order/test_api.py | 5920 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/order/test_api.py | 5922 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/plugin/test_api.py | 724 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/plugin/test_api.py | 726 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1703 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1705 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1757 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1759 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1780 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1782 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1813 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1815 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1838 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1840 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1887 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1889 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1905 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1907 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1924 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1926 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1938 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1940 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1956 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1958 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1972 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 1974 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 2316 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 2318 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 2344 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 2346 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 2397 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 2399 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 2739 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 2741 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 2799 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 2801 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 2890 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/backend/InvenTree/common/test_api.py | 2892 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/backend/InvenTree/common/test_api.py | 2258 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | src/backend/InvenTree/common/test_api.py | 2260 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | src/backend/InvenTree/common/test_api.py | 2849 | # ------------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/backend/InvenTree/common/test_api.py | 2851 | # ------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tasks.py | 657 | # Return the result | COMMENT |
| LOW | docs/main.py | 148 | # Check if we are in ReadTheDocs | COMMENT |
| LOW | docs/docs/hooks.py | 235 | # Check if there is a local file with release information | COMMENT |
| LOW | contrib/install.sh | 55 | # Check if os and version is supported | COMMENT |
| LOW | contrib/packager.io/before.sh | 56 | # Check if tag sha is the same as the commit sha | COMMENT |
| LOW | contrib/packager.io/postinstall.sh | 43 | # Check if we are updating and need to alert | COMMENT |
| LOW | contrib/packager.io/functions.sh | 389 | # Check if INVENTREE_SITE_URL in inventree config | COMMENT |
| LOW | contrib/packager.io/preinstall.sh | 12 | # Check if clear-generated is available | COMMENT |
| LOW | contrib/container/init.sh | 27 | # Check if "config.yaml" has been copied into the correct location | COMMENT |
| LOW | contrib/installer/src/root_command.sh | 45 | # Check if os and version is supported | COMMENT |
| LOW | src/backend/InvenTree/config_template.yaml | 34 | # Set debug to False to run in production mode, or use the environment variable INVENTREE_DEBUG | COMMENT |
| LOW | src/backend/InvenTree/config_template.yaml | 111 | # Set sentry_enabled to True to report errors back to the maintainers | COMMENT |
| LOW | src/backend/InvenTree/config_template.yaml | 116 | # Set sentry_send_pii to True to include PII (e.g. user id/email, IP address, request data) | COMMENT |
| LOW | src/backend/InvenTree/order/models.py | 162 | # Check if the order has been saved (otherwise we can't calculate the total price) | COMMENT |
| LOW | src/backend/InvenTree/order/models.py | 418 | # Check if a responsible owner is required for this order type | COMMENT |
| LOW | src/backend/InvenTree/order/models.py | 708 | # Add the part to the list of subscribed users | COMMENT |
| LOW | src/backend/InvenTree/order/models.py | 831 | # Check if there is already a matching line item (for this PurchaseOrder) | COMMENT |
| LOW | src/backend/InvenTree/order/models.py | 1446 | # Add the part to the list of subscribed users | COMMENT |
| LOW | src/backend/InvenTree/order/models.py | 3032 | # Check if the shipment can be completed (throw error if not) | COMMENT |
| LOW | src/backend/InvenTree/order/models.py | 3304 | # Add the part to the list of subscribed users | COMMENT |
| LOW | src/backend/InvenTree/order/models.py | 3740 | # Add the part to the list of subscribed users | COMMENT |
| LOW | src/backend/InvenTree/order/serializers.py | 1032 | # Check if the location is not specified for any particular item | COMMENT |
| LOW | src/backend/InvenTree/plugin/registry.py | 69 | # Check if the registry needs to be reloaded | COMMENT |
| LOW | src/backend/InvenTree/plugin/registry.py | 648 | # Check if not running in testing mode and apps should be loaded from hooks | COMMENT |
| LOW | src/backend/InvenTree/plugin/registry.py | 774 | # Check if this is a 'builtin' plugin | COMMENT |
| LOW | src/backend/InvenTree/plugin/registry.py | 795 | # Check if this plugin is considered 'mandatory' | COMMENT |
| LOW | src/backend/InvenTree/plugin/installer.py | 258 | # Check if plugin is already in file | COMMENT |
| LOW | src/backend/InvenTree/plugin/installer.py | 277 | # Write file back to disk | COMMENT |
| LOW | src/backend/InvenTree/plugin/staticfiles.py | 230 | # Check if the directory is a plugin directory | COMMENT |
| LOW | src/backend/InvenTree/plugin/test_api.py | 656 | # Check if the plugin is installed | COMMENT |
| LOW | src/backend/InvenTree/plugin/urls.py | 30 | # Check if the plugin has a custom URL pattern | COMMENT |
| LOW | …InvenTree/plugin/builtin/integration/core_wellknown.py | 35 | # Check if OIDC is enabled, and if so, add the relevant entries | COMMENT |
| LOW | src/backend/InvenTree/plugin/base/ui/api.py | 58 | # Add the feature to the list (serialize) | COMMENT |
| LOW | src/backend/InvenTree/plugin/base/label/mixins.py | 100 | # Check if pdf data is provided | COMMENT |
| LOW | src/backend/InvenTree/plugin/base/event/events.py | 201 | # Check if the plugin registry needs to be reloaded | COMMENT |
| LOW | src/backend/InvenTree/common/tasks.py | 86 | # Check if id already exists | COMMENT |
| LOW | src/backend/InvenTree/common/models.py | 936 | # Check if a duplicate setting already exists | COMMENT |
| LOW | src/backend/InvenTree/common/serializers.py | 144 | # Check if confirmation was provided if required | COMMENT |
| LOW | src/backend/InvenTree/common/serializers.py | 336 | # Check if object has an absolute_url function | COMMENT |
| LOW | src/backend/InvenTree/common/notifications.py | 130 | # Check if data is importing currently | COMMENT |
| LOW | src/backend/InvenTree/common/notifications.py | 163 | # Check if we have notified recently... | COMMENT |
| LOW | src/backend/InvenTree/common/currency.py | 195 | # Check if quantity is fraction and disable multiples | COMMENT |
| LOW | src/backend/InvenTree/machine/registry.py | 68 | # Check if the machine registry needs to be reloaded | COMMENT |
| LOW | src/backend/InvenTree/users/tasks.py | 187 | # Check if child permission not already in group | COMMENT |
| LOW | src/backend/InvenTree/users/permissions.py | 120 | # Check if the rule has the specified permission | COMMENT |
| LOW | src/backend/InvenTree/users/permissions.py | 181 | # Check if parent role has change permission | COMMENT |
| LOW | src/backend/InvenTree/users/tests.py | 34 | # Check if there are any rulesets which do not have models defined | COMMENT |
| LOW | src/backend/InvenTree/users/tests.py | 43 | # Check if models have been defined for a ruleset which is incorrect | COMMENT |
| LOW | src/backend/InvenTree/generic/states/transition.py | 218 | # Check if a sending fnc is defined | COMMENT |
| LOW | src/backend/InvenTree/report/tests.py | 1055 | # Set DEBUG_MODE to return the report as an HTML file | COMMENT |
| LOW | src/backend/InvenTree/report/tests.py | 757 | # Read the file contents back out, and validate | STRING |
| LOW | src/backend/InvenTree/report/templatetags/report.py | 439 | # Check if the image data is valid | COMMENT |
| LOW | src/backend/InvenTree/part/tasks.py | 174 | # Check if stock expiry functionality is enabled | COMMENT |
| LOW | src/backend/InvenTree/part/tasks.py | 179 | # Check if STOCK_STALE_DAYS is configured | COMMENT |
| LOW | src/backend/InvenTree/part/models.py | 3186 | # Check if internal pricing should override other pricing | COMMENT |
| LOW | src/backend/InvenTree/part/models.py | 3926 | # Check if the part was changed | COMMENT |
| LOW | src/backend/InvenTree/part/test_api.py | 470 | # Check if all parts deleted | COMMENT |
| LOW | src/backend/InvenTree/part/test_api.py | 486 | # Check if all categories are deleted | COMMENT |
| LOW | src/backend/InvenTree/part/test_api.py | 491 | # Check if all subcategories to parent moved to parent and all parts deleted | COMMENT |
| LOW | src/backend/InvenTree/stock/models.py | 518 | # Check if "interesting" fields have been changed | COMMENT |
| 37 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tasks.py | 1397 | CODE | |
| LOW | tasks.py | 1763 | CODE | |
| LOW | tasks.py | 1933 | CODE | |
| LOW | tasks.py | 2143 | CODE | |
| LOW | docs/extract_schema.py | 127 | CODE | |
| LOW | .github/scripts/check_source_strings.py | 32 | CODE | |
| LOW | src/backend/InvenTree/order/models.py | 1014 | CODE | |
| LOW | src/backend/InvenTree/order/serializers.py | 1005 | CODE | |
| LOW | src/backend/InvenTree/order/api.py | 2458 | CODE | |
| LOW | src/backend/InvenTree/order/api.py | 2518 | CODE | |
| LOW | src/backend/InvenTree/order/api.py | 2539 | CODE | |
| LOW | src/backend/InvenTree/order/test_api.py | 3093 | CODE | |
| LOW | src/backend/InvenTree/order/test_api.py | 5409 | CODE | |
| LOW | src/backend/InvenTree/importer/models.py | 723 | CODE | |
| LOW | src/backend/InvenTree/importer/models.py | 1029 | CODE | |
| LOW | src/backend/InvenTree/plugin/registry.py | 143 | CODE | |
| LOW | src/backend/InvenTree/plugin/registry.py | 457 | CODE | |
| LOW | src/backend/InvenTree/plugin/registry.py | 545 | CODE | |
| LOW | src/backend/InvenTree/plugin/registry.py | 611 | CODE | |
| LOW | src/backend/InvenTree/plugin/registry.py | 730 | CODE | |
| LOW | src/backend/InvenTree/plugin/registry.py | 882 | CODE | |
| LOW | src/backend/InvenTree/plugin/installer.py | 227 | CODE | |
| LOW | src/backend/InvenTree/plugin/installer.py | 290 | CODE | |
| LOW | src/backend/InvenTree/plugin/urls.py | 16 | CODE | |
| LOW | src/backend/InvenTree/plugin/urls.py | 61 | CODE | |
| LOW | src/backend/InvenTree/plugin/urls.py | 79 | CODE | |
| LOW | src/backend/InvenTree/plugin/helpers.py | 180 | CODE | |
| LOW | src/backend/InvenTree/plugin/builtin/suppliers/tme.py | 46 | CODE | |
| LOW | …backend/InvenTree/plugin/builtin/labels/label_sheet.py | 178 | CODE | |
| LOW | …InvenTree/plugin/builtin/barcodes/inventree_barcode.py | 55 | CODE | |
| LOW | src/backend/InvenTree/plugin/base/ui/api.py | 25 | CODE | |
| LOW | …end/InvenTree/plugin/base/integration/ScheduleMixin.py | 158 | CODE | |
| LOW | …/backend/InvenTree/plugin/base/integration/AppMixin.py | 33 | CODE | |
| LOW | …/backend/InvenTree/plugin/base/integration/AppMixin.py | 90 | CODE | |
| LOW | src/backend/InvenTree/plugin/base/supplier/api.py | 140 | CODE | |
| LOW | src/backend/InvenTree/plugin/base/barcodes/api.py | 506 | CODE | |
| LOW | src/backend/InvenTree/plugin/base/event/events.py | 191 | CODE | |
| LOW | src/backend/InvenTree/plugin/base/event/test_events.py | 56 | CODE | |
| LOW | src/backend/InvenTree/plugin/base/event/test_events.py | 77 | CODE | |
| LOW | src/backend/InvenTree/plugin/base/event/test_events.py | 97 | CODE | |
| LOW | src/backend/InvenTree/plugin/base/event/test_events.py | 122 | CODE | |
| LOW | src/backend/InvenTree/common/models.py | 3933 | CODE | |
| LOW | src/backend/InvenTree/common/models.py | 352 | CODE | |
| LOW | src/backend/InvenTree/common/models.py | 863 | CODE | |
| LOW | src/backend/InvenTree/common/models.py | 1526 | CODE | |
| LOW | src/backend/InvenTree/common/models.py | 2900 | CODE | |
| LOW | src/backend/InvenTree/common/models.py | 3160 | CODE | |
| LOW | src/backend/InvenTree/common/serializers.py | 50 | CODE | |
| LOW | src/backend/InvenTree/common/serializers.py | 329 | CODE | |
| LOW | src/backend/InvenTree/common/notifications.py | 120 | CODE | |
| LOW | src/backend/InvenTree/common/tests.py | 1745 | CODE | |
| LOW | src/backend/InvenTree/machine/models.py | 186 | CODE | |
| LOW | src/backend/InvenTree/machine/registry.py | 20 | CODE | |
| LOW | src/backend/InvenTree/machine/registry.py | 29 | CODE | |
| LOW | src/backend/InvenTree/machine/registry.py | 137 | CODE | |
| LOW | src/backend/InvenTree/machine/registry.py | 187 | CODE | |
| LOW | src/backend/InvenTree/machine/registry.py | 329 | CODE | |
| LOW | src/backend/InvenTree/machine/registry.py | 33 | CODE | |
| LOW | src/backend/InvenTree/machine/registry.py | 354 | CODE | |
| LOW | src/backend/InvenTree/machine/machine_type.py | 304 | CODE | |
| 75 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/requirements.txt | 281 | jinja2==3.1.6 \ | COMMENT |
| LOW | docs/requirements.txt | 401 | # via | COMMENT |
| LOW | docs/requirements.txt | 421 | --hash=sha256:db91759624d1647f3f34aa0c3f327dd2601beae39a366d6e064c03468d35c20e | COMMENT |
| LOW | docs/requirements.txt | 521 | pygments==2.21.0 \ | COMMENT |
| LOW | docs/requirements.txt | 621 | # properdocs | COMMENT |
| LOW | contrib/container/dev-docker-compose.yml | 1 | # Docker compose recipe for InvenTree development server | COMMENT |
| LOW | contrib/container/docker-compose.yml | 1 | # Docker compose recipe for a production-ready InvenTree setup, with the following containers: | COMMENT |
| LOW | contrib/container/docker-compose.yml | 21 | COMMENT | |
| LOW | contrib/installer/settings.yml | 1 | # All settings are optional (with their default values provided below), and | COMMENT |
| LOW | contrib/installer/settings.yml | 21 | # When true, the generated script will use tab indentation instead of spaces | COMMENT |
| LOW | contrib/installer/src/initialize.sh | 1 | ## Code here runs inside the initialize() function | COMMENT |
| LOW | .github/workflows/scorecard.yaml | 41 | with: | COMMENT |
| LOW | .github/workflows/docker.yaml | 1 | # Build, test and push InvenTree docker image | COMMENT |
| LOW | src/frontend/tests/pui_settings.spec.ts | 21 | // await page.getByLabel('Select language').first().click(); | COMMENT |
| LOW | src/frontend/src/pages/stock/TransferOrderDetail.tsx | 121 | // TODO: add back the accordion if we need extra lines | COMMENT |
| LOW | src/frontend/src/pages/stock/TransferOrderDetail.tsx | 141 | // {/* <Accordion.Item value='extra-items' key='extraitems'> | COMMENT |
| LOW | src/backend/requirements.txt | 1 | # This file was autogenerated by uv via the following command: | COMMENT |
| LOW | src/backend/requirements.txt | 561 | --hash=sha256:9d4d93be539a18ab80d058eb515900e10951e04c537c5a6b394fc49528d3251f \ | COMMENT |
| LOW | src/backend/requirements.txt | 581 | # django-picklefield | COMMENT |
| LOW | src/backend/requirements.txt | 1321 | # via -r src/backend/requirements.in | COMMENT |
| LOW | src/backend/requirements.txt | 1341 | # opentelemetry-instrumentation-dbapi | COMMENT |
| LOW | src/backend/requirements.txt | 1381 | --hash=sha256:0b32e2fcfec1e4bd48511a3b77ce32bfb1c16dcd5479396b21f9086a4b06c0c9 \ | COMMENT |
| LOW | src/backend/requirements.txt | 1441 | opentelemetry-sdk==1.45.0 \ | COMMENT |
| LOW | src/backend/requirements.txt | 2221 | # via | COMMENT |
| LOW | src/backend/requirements-dev-3.14.txt | 1 | # This file was autogenerated by uv via the following command: | COMMENT |
| LOW | src/backend/requirements-dev-3.14.txt | 21 | # -c src/backend/requirements-3.14.txt | COMMENT |
| LOW | src/backend/requirements-dev-3.14.txt | 501 | --hash=sha256:fc3ed7ebd2a8c96f5b166de0ab9b624996bef3b07bbeb19364dfb78222c22c80 \ | COMMENT |
| LOW | src/backend/requirements-dev-3.14.txt | 521 | --hash=sha256:0782484e8a1bd29498fa0195a67106e47cdcc98fafe80cebb1991964077cb694 | COMMENT |
| LOW | src/backend/requirements-dev-3.14.txt | 541 | # -r src/backend/requirements-dev.in | COMMENT |
| LOW | src/backend/requirements-dev-3.14.txt | 561 | # -r src/backend/requirements-dev.in | COMMENT |
| LOW | src/backend/requirements-dev-3.14.txt | 581 | # via | COMMENT |
| LOW | src/backend/requirements-dev-3.14.txt | 601 | # scim2-client | COMMENT |
| LOW | src/backend/requirements-dev-3.14.txt | 681 | # via | COMMENT |
| LOW | src/backend/requirements-dev-3.14.txt | 721 | --hash=sha256:a863379a2668c4ef079d820ffd5b14073145380dfbe0e70fef498dc73c568f86 | COMMENT |
| LOW | src/backend/requirements-dev-3.14.txt | 861 | --hash=sha256:ff218293c9c806138dca139765e3b067621be52bcd93cdc14c7711be7ddc90a9 | COMMENT |
| LOW | src/backend/requirements-dev-3.14.txt | 921 | pytest-django==4.14.0 \ | COMMENT |
| LOW | src/backend/requirements-dev-3.14.txt | 941 | rich==15.0.0 \ | COMMENT |
| LOW | src/backend/requirements-dev-3.14.txt | 961 | # scim2-tester | COMMENT |
| LOW | src/backend/requirements-dev-3.14.txt | 1021 | --hash=sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8 \ | COMMENT |
| LOW | src/backend/requirements-dev-3.14.txt | 1041 | urllib3==2.8.0 \ | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 1 | # This file was autogenerated by uv via the following command: | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 101 | # via | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 561 | --hash=sha256:fc3ed7ebd2a8c96f5b166de0ab9b624996bef3b07bbeb19364dfb78222c22c80 \ | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 581 | --hash=sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61 | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 601 | # django-js-asset | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 621 | # djangorestframework-simplejwt | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 681 | # -c src/backend/requirements.txt | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 721 | # via | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 761 | --hash=sha256:e48491c862f4350b0747ceb1016700686fb93c4f4e0fb9c490fe6c6658ffd933 | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 821 | # -c src/backend/requirements.txt | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 1101 | # via | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 1121 | # via | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 1141 | # boto3 | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 1481 | --hash=sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050 | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 1501 | # opentelemetry-instrumentation-sqlite3 | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 1521 | # via | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 1541 | # via | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 1561 | # via | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 1581 | # via | COMMENT |
| LOW | src/backend/requirements-3.14.txt | 1601 | # -r src/backend/requirements.in | COMMENT |
| 26 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/backend/InvenTree/plugin/events.py | 4 | CODE | |
| LOW | src/backend/InvenTree/plugin/events.py | 4 | CODE | |
| LOW | src/backend/InvenTree/plugin/events.py | 4 | CODE | |
| LOW | src/backend/InvenTree/plugin/events.py | 4 | CODE | |
| LOW | src/backend/InvenTree/plugin/events.py | 4 | CODE | |
| LOW | src/backend/InvenTree/plugin/__init__.py | 3 | CODE | |
| LOW | src/backend/InvenTree/plugin/__init__.py | 3 | CODE | |
| LOW | src/backend/InvenTree/plugin/__init__.py | 4 | CODE | |
| LOW | src/backend/InvenTree/plugin/__init__.py | 4 | CODE | |
| LOW | src/backend/InvenTree/plugin/__init__.py | 5 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 3 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 4 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 4 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 5 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 6 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 7 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 8 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 9 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 10 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 11 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 12 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 13 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 14 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 15 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 16 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 17 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 18 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 19 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 20 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 21 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 22 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 23 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 24 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 25 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 26 | CODE | |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 27 | CODE | |
| LOW | src/backend/InvenTree/plugin/machine/__init__.py | 1 | CODE | |
| LOW | src/backend/InvenTree/plugin/machine/__init__.py | 1 | CODE | |
| LOW | src/backend/InvenTree/plugin/machine/__init__.py | 1 | CODE | |
| LOW | src/backend/InvenTree/plugin/machine/__init__.py | 1 | CODE | |
| LOW | src/backend/InvenTree/plugin/machine/__init__.py | 1 | CODE | |
| LOW | src/backend/InvenTree/plugin/machine/__init__.py | 8 | CODE | |
| LOW | src/backend/InvenTree/plugin/machine/machine_types.py | 3 | CODE | |
| LOW | …InvenTree/plugin/builtin/integration/core_wellknown.py | 3 | CODE | |
| LOW | …InvenTree/plugin/base/integration/NotificationMixin.py | 15 | CODE | |
| LOW | src/backend/InvenTree/plugin/base/barcodes/mixins.py | 3 | CODE | |
| LOW | src/backend/InvenTree/machine/__init__.py | 1 | CODE | |
| LOW | src/backend/InvenTree/machine/__init__.py | 1 | CODE | |
| LOW | src/backend/InvenTree/machine/__init__.py | 1 | CODE | |
| LOW | src/backend/InvenTree/machine/__init__.py | 1 | CODE | |
| LOW | src/backend/InvenTree/machine/__init__.py | 7 | CODE | |
| LOW | src/backend/InvenTree/machine/machine_types/__init__.py | 1 | CODE | |
| LOW | src/backend/InvenTree/machine/machine_types/__init__.py | 1 | CODE | |
| LOW | src/backend/InvenTree/generic/templatetags/generic.py | 6 | CODE | |
| LOW | src/backend/InvenTree/generic/states/__init__.py | 9 | CODE | |
| LOW | src/backend/InvenTree/generic/states/__init__.py | 9 | CODE | |
| LOW | src/backend/InvenTree/generic/states/__init__.py | 11 | CODE | |
| LOW | src/backend/InvenTree/generic/states/__init__.py | 12 | CODE | |
| LOW | src/backend/InvenTree/generic/states/__init__.py | 12 | CODE | |
| LOW | src/backend/InvenTree/generic/states/__init__.py | 13 | CODE | |
| 17 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/backend/InvenTree/importer/operations.py | 70 | Extract column names from a data file. Uses the tablib library to extract column names from a data file. Args: | STRING |
| HIGH | src/backend/InvenTree/plugin/api.py | 321 | Check that a plugin for the provided slug exists and get the config. Args: plugin_slug (str): Slug for plug | STRING |
| HIGH | src/backend/InvenTree/common/settings.py | 91 | Set a global warning for a code. Args: key (str): The key for the warning. options (dict or bool): | STRING |
| HIGH | src/backend/InvenTree/generic/states/transition.py | 232 | Perform a state transition. When used with ``@inventree_transition``-decorated methods, plugin handlers | STRING |
| HIGH | src/backend/InvenTree/report/models.py | 504 | Print reports for a list of items against this template. Arguments: items: A list of items to print | STRING |
| HIGH | src/backend/InvenTree/report/templatetags/report.py | 307 | Return the fully qualified file path to an uploaded media file. Arguments: path: The path to the media file | STRING |
| HIGH | src/backend/InvenTree/stock/models.py | 738 | Create multiple stock items with the provided serial numbers. Arguments: serials: List of serial nu | STRING |
| HIGH | src/backend/InvenTree/stock/models.py | 2075 | Disassemble this stock item into its component parts. The provided BOM lines determine which component parts ar | STRING |
| HIGH | src/backend/InvenTree/stock/models.py | 2847 | Split this stock item into two items, in the same location. Stock tracking notes for this StockItem will be dup | STRING |
| HIGH | src/backend/InvenTree/InvenTree/tasks.py | 715 | Register the given task as a scheduled task. Example: ```python @scheduled_task(ScheduledTask.DAILY) de | STRING |
| HIGH | src/backend/InvenTree/InvenTree/format.py | 39 | Construct a regular expression based on a provided format string. This function turns a python format string into a | STRING |
| HIGH | src/backend/InvenTree/InvenTree/format.py | 121 | Validate that the provided string matches the specified format. Args: value: The string to be tested e.g. ' | STRING |
| HIGH | src/backend/InvenTree/InvenTree/format.py | 141 | Extract a named value from the provided string, given the provided format string. Args: name: Name of group | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/backend/InvenTree/order/models.py | 0 | return the associated barcode model type code for this model. | STRING |
| HIGH | src/backend/InvenTree/part/models.py | 0 | return the associated barcode model type code for this model. | STRING |
| HIGH | src/backend/InvenTree/stock/models.py | 0 | return the associated barcode model type code for this model. | STRING |
| HIGH | src/backend/InvenTree/company/models.py | 0 | return the associated barcode model type code for this model. | STRING |
| HIGH | src/backend/InvenTree/order/test_api.py | 0 | test that notes are copied when duplicating a company via the api. companyserializer declares its 'duplicate' options wi | STRING |
| HIGH | src/backend/InvenTree/stock/test_api.py | 0 | test that notes are copied when duplicating a company via the api. companyserializer declares its 'duplicate' options wi | STRING |
| HIGH | src/backend/InvenTree/company/test_api.py | 0 | test that notes are copied when duplicating a company via the api. companyserializer declares its 'duplicate' options wi | STRING |
| HIGH | …nvenTree/plugin/samples/event/filtered_event_sample.py | 0 | return whether given event should be processed or not. | STRING |
| HIGH | …nTree/plugin/builtin/integration/part_notifications.py | 0 | return whether given event should be processed or not. | STRING |
| HIGH | …/InvenTree/plugin/builtin/events/auto_create_builds.py | 0 | return whether given event should be processed or not. | STRING |
| HIGH | src/backend/InvenTree/report/apps.py | 0 | this function is called whenever the company app is loaded. | STRING |
| HIGH | src/backend/InvenTree/part/apps.py | 0 | this function is called whenever the company app is loaded. | STRING |
| HIGH | src/backend/InvenTree/company/apps.py | 0 | this function is called whenever the company app is loaded. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .github/scripts/seed_content_excludes_data.py | 15 | cd src/backend/InvenTree && python ../../../.github/scripts/seed_content_excludes_data.py | STRING |
| HIGH | src/backend/InvenTree/order/models.py | 2473 | part: Link to a Part object (may be null) | STRING |
| HIGH | src/backend/InvenTree/order/models.py | 2642 | shipment_date: Date this shipment was "shipped" (or null) | STRING |
| HIGH | src/backend/InvenTree/order/models.py | 4011 | part: Link to a Part object (may be null) | STRING |
| HIGH | src/backend/InvenTree/part/models.py | 494 | default_location: Where the item is normally stored (may be null) | STRING |
| HIGH | src/backend/InvenTree/part/test_pricing.py | 363 | # Cost is still null, as the order is not complete | COMMENT |
| HIGH | src/backend/InvenTree/part/test_pricing.py | 374 | # Cost is still null, as the lines have not been received | COMMENT |
| HIGH | src/backend/InvenTree/stock/models.py | 3064 | location: Destination location (cannot be null) | STRING |
| HIGH | src/backend/InvenTree/stock/models.py | 3729 | If the underlying stock item is deleted, the "item" field will be set to null, but the tracking information will | STRING |
| HIGH | …enTree/InvenTree/management/commands/clean_settings.py | 11 | """Cleanup old (undefined) settings in the database.""" | STRING |
| HIGH | …enTree/InvenTree/management/commands/clean_settings.py | 14 | """Cleanup old (undefined) settings in the database.""" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/frontend/playwright.config.ts | 120 | INVENTREE_EMAIL_SENDER: 'noreply@example.org', | CODE |
| LOW | src/frontend/tests/defaults.ts | 61 | email: 'ssotestuser@example.org', | CODE |
| LOW | src/frontend/tests/pui_sso.spec.ts | 345 | email: 'someoneelse@example.org' | CODE |
| LOW | src/frontend/tests/pui_sso.spec.ts | 378 | email: 'ssoconnecttest@example.org', | CODE |
| LOW | src/frontend/tests/pages/pui_purchasing.spec.ts | 410 | ).toHaveAttribute('placeholder', expectedPrice.toString(), { | CODE |
| LOW | src/frontend/tests/pages/pui_sales.spec.ts | 472 | ).toHaveAttribute('placeholder', expectedPrice.toString(), { | CODE |
| LOW | src/frontend/tests/pages/pui_build.spec.ts | 313 | .getAttribute('placeholder')) || ''; | CODE |
| LOW | src/frontend/tests/pages/pui_stock.spec.ts | 305 | ).toHaveAttribute('placeholder', '365+'); | CODE |
| LOW | …c/frontend/src/components/forms/AuthenticationForm.tsx | 175 | placeholder='email@example.org' | CODE |
| LOW | …c/frontend/src/components/forms/AuthenticationForm.tsx | 306 | placeholder='email@example.org' | CODE |
| LOW | src/frontend/src/pages/Auth/Reset.tsx | 19 | placeholder='email@example.org' | CODE |
| LOW | src/frontend/src/pages/Auth/ProviderSignup.tsx | 137 | placeholder='email@example.org' | CODE |
| LOW | src/backend/InvenTree/config_template.yaml | 93 | sender: '' # 'inventree@example.org' | CODE |
| LOW | src/backend/InvenTree/common/test_emails.py | 30 | 'from@example.org', | CODE |
| LOW | src/backend/InvenTree/common/test_emails.py | 31 | ['to@example.org'], | CODE |
| LOW | src/backend/InvenTree/common/test_emails.py | 46 | recipients='to@example.org', | CODE |
| LOW | src/backend/InvenTree/common/test_emails.py | 66 | to=['to@example.org'], | CODE |
| LOW | src/backend/InvenTree/common/test_emails.py | 85 | recipients=['to@example.org'], | CODE |
| LOW | src/backend/InvenTree/common/test_emails.py | 107 | reverse('api-email-test'), {'email': 'test@example.org'}, expected_code=200 | CODE |
| LOW | src/backend/InvenTree/common/test_emails.py | 139 | subject='test sub', body='test msg', to='abc@example.org', priority=3 | CODE |
| LOW | src/backend/InvenTree/common/test_emails.py | 146 | subject='test sub', body='test msg', to='abc@example.org', priority=3 | CODE |
| LOW | src/backend/InvenTree/common/test_emails.py | 241 | from_email='user@example.com', | CODE |
| LOW | src/backend/InvenTree/users/test_api.py | 96 | 'email': 'aa@example.org', | CODE |
| LOW | src/backend/InvenTree/users/test_api.py | 172 | 'email': 'grouped@example.org', | CODE |
| LOW | src/backend/InvenTree/InvenTree/auth_overrides.py | 62 | 'placeholder': _('Email address confirmation'), | CODE |
| LOW | src/backend/InvenTree/InvenTree/test_commands.py | 75 | username=uname, email=f'{uname}@example.org' | CODE |
| LOW | src/backend/InvenTree/InvenTree/test_commands.py | 92 | call_command('remove_mfa', mail='admin@example.org', verbosity=0) | CODE |
| LOW | src/backend/InvenTree/InvenTree/test_tasks.py | 810 | ['Test Email 1', 'This is a test email.', 'abc@example.org', threshold_low], | CODE |
| LOW | src/backend/InvenTree/InvenTree/test_tasks.py | 814 | 'def@example.org', | CODE |
| LOW | src/backend/InvenTree/InvenTree/test_api.py | 910 | username='metadata_victim', password='hunter2', email='victim@example.org' | CODE |
| LOW | …end/InvenTree/InvenTree/static/tabler-icons/icons.json | 1 | {"a-b-2":{"name":"a-b-2","category":"","tags":["test","visual","user"],"variants":{"outline":"f25f"}},"a-b-off":{"name": | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/backend/InvenTree/order/api.py | 2459 | """Overload call in order to check for authentication. | STRING |
| MEDIUM | src/backend/InvenTree/plugin/test_plugin.py | 250 | # A more comprehensive test - to find a hashed version of the file | COMMENT |
| LOW | src/backend/InvenTree/plugin/installer.py | 325 | # Ignore url and just use default index | COMMENT |
| LOW | src/backend/InvenTree/users/models.py | 64 | # we can just call .save() now | COMMENT |
| LOW | src/backend/InvenTree/report/templatetags/report.py | 766 | # If the base URL is not set, just return the text | COMMENT |
| LOW | src/backend/InvenTree/report/templatetags/report.py | 1171 | # If the number cannot be converted to a Decimal, just return the original value | COMMENT |
| LOW | src/backend/InvenTree/part/test_api.py | 3335 | # We should be able to filter the API list to just return this new part | COMMENT |
| LOW | src/backend/InvenTree/InvenTree/tasks.py | 812 | # otherwise they just create extra noise | COMMENT |
| LOW | src/backend/InvenTree/InvenTree/helpers.py | 419 | # If we cannot match the regex, then simply return the provided value | COMMENT |
| LOW | src/backend/InvenTree/InvenTree/helpers.py | 738 | # In the case of a different number of hyphens, simply add the entire group | COMMENT |
| MEDIUM | …enTree/InvenTree/management/commands/rebuild_models.py | 15 | """Rebuild all database models which leverage the MPTT structure.""" | STRING |
| MEDIUM | …enTree/InvenTree/management/commands/rebuild_models.py | 18 | """Rebuild all database models which leverage the MPTT structure.""" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/backend/InvenTree/order/models.py | 2428 | def update_pricing(self) -> None: | CODE |
| LOW | src/backend/InvenTree/scim/resources.py | 119 | def set_group_members(group: DjangoGroup, members: list[GroupMember] | None) -> None: | CODE |
| LOW | src/backend/InvenTree/plugin/events.py | 20 | __all__ = [ | CODE |
| LOW | src/backend/InvenTree/plugin/__init__.py | 7 | __all__ = [ | CODE |
| LOW⚡ | src/backend/InvenTree/plugin/installer.py | 170 | def set_env_plugin_hash(file_hash: str) -> None: | CODE |
| LOW | src/backend/InvenTree/plugin/mixins/__init__.py | 29 | __all__ = [ | CODE |
| LOW | src/backend/InvenTree/plugin/machine/__init__.py | 10 | __all__ = [ | CODE |
| LOW | …end/InvenTree/plugin/base/integration/SettingsMixin.py | 140 | def set_user_setting(self, key: str, value: Any, user: User) -> None: | CODE |
| LOW | src/backend/InvenTree/machine/__init__.py | 9 | __all__ = [ | CODE |
| LOW | src/backend/InvenTree/machine/machine_types/__init__.py | 6 | __all__ = [ | CODE |
| LOW | src/backend/InvenTree/users/tasks.py | 31 | def update_group_roles(group: Group, debug: bool = False) -> None: | CODE |
| LOW | src/backend/InvenTree/generic/templatetags/generic.py | 8 | __all__ = ['status_label'] | CODE |
| LOW | src/backend/InvenTree/generic/states/__init__.py | 23 | __all__ = [ | CODE |
| LOW | src/backend/InvenTree/generic/states/api_helpers.py | 407 | __all__ = [ | CODE |
| LOW | src/backend/InvenTree/part/models.py | 320 | def set_starred(self, user, status: bool, **kwargs) -> None: | CODE |
| LOW | src/backend/InvenTree/InvenTree/cache.py | 171 | def set_session_cache(key: str, value: Any) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …nTree/plugin/samples/integration/simpleactionplugin.py | 14 | def perform_action(self, user=None, data=None): | CODE |
| LOW | …Tree/plugin/samples/integration/test_scheduled_task.py | 19 | def test_function(self): | CODE |
| LOW | …/plugin/samples/integration/test_simpleactionplugin.py | 23 | def test_function(self): | CODE |
| LOW | …ckend/InvenTree/plugin/base/integration/test_mixins.py | 67 | def test_function(self): | CODE |
| LOW | …ckend/InvenTree/plugin/base/integration/test_mixins.py | 108 | def test_function(self): | CODE |
| LOW | …ckend/InvenTree/plugin/base/integration/test_mixins.py | 148 | def test_function(self): | CODE |
| LOW | …ckend/InvenTree/plugin/base/integration/test_mixins.py | 224 | def test_function(self): | CODE |
| LOW | …ckend/InvenTree/plugin/base/integration/test_mixins.py | 260 | def test_function(self): | CODE |
| LOW | src/backend/InvenTree/plugin/base/action/mixins.py | 31 | def perform_action(self, user=None, data=None): | CODE |
| LOW | src/backend/InvenTree/plugin/base/action/test_action.py | 31 | def perform_action(self, user=None, data=None): | CODE |
| LOW | src/backend/InvenTree/plugin/base/action/test_action.py | 53 | def test_function(self): | CODE |
| LOW | src/backend/InvenTree/InvenTree/unit_test.py | 861 | def helper(self, model: type[models.Model], model_kwargs=None): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tasks.py | 1004 | CODE | |
| LOW | tasks.py | 1122 | CODE | |
| LOW | tasks.py | 1214 | CODE | |
| LOW | tasks.py | 1397 | CODE | |
| LOW | tasks.py | 1845 | CODE | |
| LOW | tasks.py | 1933 | CODE | |
| LOW | src/backend/InvenTree/report/templatetags/report.py | 953 | CODE | |
| LOW | src/backend/InvenTree/report/templatetags/report.py | 1139 | CODE | |
| LOW | src/backend/InvenTree/InvenTree/middleware.py | 213 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/docs/plugins/walkthrough.md | 514 | The reference requires the host and the [plugin-name](./index.md##static-files). Rather than statically coding these ref | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | contrib/installer/settings.yml | 5 | # When setting environment variables, you can use: | COMMENT |
| LOW | src/backend/InvenTree/common/currency.py | 180 | - Don't forget to add in flat-fee cost (base_cost field) | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/backend/InvenTree/report/templatetags/report.py | 780 | The purpose of this function is to provide "seamless" math operations in templates, | STRING |