The easy-to-use and developer-friendly enterprise CMS powered by Django
This report presents the forensic synthetic code analysis of django-cms/django-cms, a Python project with 10,650 GitHub stars. SynthScan v2.0 examined 143,840 lines of code across 817 source files, recording 1730 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 15.3 places this repository in the Moderate 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).
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.
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.
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.
The scanner identified 1730 distinct pattern matches across 17 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cms/plugin_pool.py | 43 | def global_template_restrictions(self) -> bool: | CODE |
| LOW | cms/plugin_pool.py | 202 | def get_all_plugins_for_model(self, model: type[models.Model]) -> list[type[CMSPluginBase]]: | CODE |
| LOW | cms/plugin_pool.py | 335 | def plugins_with_extra_placeholder_menu(self) -> list[type[CMSPluginBase]]: | CODE |
| LOW | cms/app_registration.py | 177 | def backwards_compatibility_config(): | CODE |
| LOW | cms/cms_config.py | 61 | def configure_toolbar_enabled_models(self, cms_config): | CODE |
| LOW | cms/plugin_base.py | 117 | def get_child_class_overrides(cls, slot: str, page: Optional[Page] = None, instance: Optional[CMSPlugin] = None) | STRING |
| LOW | cms/plugin_base.py | 759 | def get_empty_change_form_text(cls, obj=None): | CODE |
| LOW | cms/plugin_base.py | 768 | def get_child_class_overrides(cls, slot: str, page: Page | None = None, instance: CMSPlugin | None = None): | CODE |
| LOW | cms/plugin_base.py | 785 | def get_child_plugin_candidates(cls, slot: str, page: Page | None = None) -> list: | CODE |
| LOW | cms/plugin_base.py | 880 | def get_extra_placeholder_menu_items(cls, request: HttpRequest, placeholder: Placeholder) -> list["PluginMenuItem"] | CODE |
| LOW | cms/plugin_base.py | 890 | def get_extra_plugin_menu_items(cls, request: HttpRequest, plugin: CMSPlugin) -> list["PluginMenuItem"] | None: | CODE |
| LOW | cms/templates.py | 26 | def placeholder_plugin_menu_template(self): | CODE |
| LOW | cms/plugin_rendering.py | 139 | def get_placeholder_plugin_menu(self, placeholder: Placeholder, page: Page | None = None): | CODE |
| LOW | cms/plugin_rendering.py | 148 | def get_placeholder_toolbar_js(self, placeholder, page: models.Model | None = None): | CODE |
| LOW⚡ | cms/plugin_rendering.py | 201 | def get_rendered_plugins_cache(self, placeholder: Placeholder): | CODE |
| LOW⚡ | cms/plugin_rendering.py | 209 | def get_rendered_placeholders(self) -> list[Placeholder]: | CODE |
| LOW⚡ | cms/plugin_rendering.py | 213 | def get_rendered_editable_placeholders(self) -> list[Placeholder]: | CODE |
| LOW | cms/plugin_rendering.py | 232 | def placeholder_cache_is_enabled(self): | CODE |
| LOW | cms/plugin_rendering.py | 355 | def get_editable_placeholder_context(self, placeholder: Placeholder, page: Page | None = None) -> dict: | CODE |
| LOW | cms/plugin_rendering.py | 583 | def _get_cached_placeholder_content(self, placeholder, language): | CODE |
| LOW | cms/plugin_rendering.py | 633 | def _preload_placeholders_for_page(self, page, language=None, slots=None, inherit=False): | CODE |
| LOW | cms/plugin_rendering.py | 773 | def get_editable_placeholder_context(self, placeholder, page=None): | STRING |
| LOW | cms/cms_toolbars.py | 116 | def render_object_editable_buttons(self): | CODE |
| LOW | cms/cms_toolbars.py | 157 | def _has_placeholder_change_perm(self): | CODE |
| LOW | cms/cms_toolbars.py | 167 | def _has_placeholder_view_perm(self): | CODE |
| LOW | cms/cms_toolbars.py | 454 | def has_page_change_permission(self): | CODE |
| LOW | cms/cms_toolbars.py | 481 | def get_on_delete_redirect_url(self): | CODE |
| LOW | cms/appresolver.py | 181 | def get_patterns_for_page_url(page_url): | CODE |
| LOW | cms/cms_menus.py | 27 | def get_visible_page_contents(request, page_contents: Iterable[PageContent], site) -> Iterable[PageContent]: | CODE |
| LOW | cms/cms_menus.py | 163 | def get_menu_node_for_page_content( | CODE |
| LOW | cms/cms_menus.py | 505 | def find_ancestors_and_remove_children(self, node, nodes): | CODE |
| LOW | cms/plugin_processors.py | 4 | def plugin_meta_context_processor(instance, placeholder, context): | CODE |
| LOW | cms/plugin_processors.py | 20 | def mark_safe_plugin_processor(instance, placeholder, rendered_content, original_context): | CODE |
| LOW | cms/views.py | 340 | def render_placeholder_content(request, obj, context): | CODE |
| LOW | cms/templatetags/cms_tags.py | 145 | def _show_uncached_placeholder_by_id(context, *args, **kwargs): | CODE |
| LOW | cms/templatetags/cms_admin.py | 136 | def show_admin_menu_for_pages(context, descendants, depth=1): | CODE |
| LOW | cms/forms/utils.py | 28 | def get_page_choices_for_site(site, language): | CODE |
| LOW | cms/forms/utils.py | 62 | def update_site_and_page_choices(language=None): | CODE |
| LOW | cms/cache/placeholder.py | 28 | def _get_placeholder_cache_version_key(placeholder, lang, site_id): | CODE |
| LOW | cms/cache/placeholder.py | 53 | def _get_placeholder_cache_version(placeholder, lang, site_id): | CODE |
| LOW | cms/cache/placeholder.py | 71 | def _set_placeholder_cache_version(placeholder, lang, site_id, version, vary_on_list=None, duration=None): | CODE |
| LOW | cms/cache/placeholder.py | 88 | def _get_placeholder_cache_key(placeholder, lang, site_id, request, soft=False): | CODE |
| LOW | cms/cache/__init__.py | 37 | def invalidate_cms_page_cache(): | CODE |
| LOW | cms/cache/page.py | 75 | def _page_vary_headers_cache_key(request: HttpRequest) -> str: | CODE |
| LOW⚡ | cms/cache/permissions.py | 15 | def get_cache_permission_version_key(): | CODE |
| LOW⚡ | cms/cache/permissions.py | 19 | def get_cache_permission_version(): | CODE |
| LOW | cms/cache/permissions.py | 50 | def clear_user_permission_cache(user): | CODE |
| LOW | cms/test_utils/runners.py | 32 | def teardown_test_environment(self, **kwargs): | CODE |
| LOW | cms/test_utils/testcases.py | 221 | def get_staff_user_with_no_permissions(self): | CODE |
| LOW | cms/test_utils/testcases.py | 228 | def get_staff_user_with_std_permissions(self): | CODE |
| LOW | cms/test_utils/testcases.py | 268 | def get_new_page_data_dbfields(self, parent=None, site=None, | CODE |
| LOW | cms/test_utils/testcases.py | 282 | def get_pagedata_from_dbfields(self, page_data): | CODE |
| LOW | cms/test_utils/testcases.py | 479 | def load_template_from_string(self, template): | CODE |
| LOW | cms/test_utils/testcases.py | 501 | def get_permissions_test_page(self): | CODE |
| LOW | cms/test_utils/testcases.py | 546 | def get_page_delete_translation_uri(self, language, page): | CODE |
| LOW | cms/test_utils/testcases.py | 552 | def get_page_change_template_uri(self, language, page): | CODE |
| LOW | cms/test_utils/testcases.py | 640 | def get_clear_placeholder_url(self, placeholder, language=None): | CODE |
| LOW | cms/test_utils/testcases.py | 658 | def _add_plugin_to_placeholder(self, placeholder, plugin_type='LinkPlugin', language='en'): | CODE |
| LOW | cms/test_utils/util/context_managers.py | 180 | def override_placeholder_conf(CMS_PLACEHOLDER_CONF): | CODE |
| LOW | cms/test_utils/util/static_analysis.py | 9 | def _pyflakes_report_with_nopyflakes(self, messageClass, node, *args, **kwargs): | CODE |
| 1278 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | cms/plugin_pool.py | 20 | from cms.utils.helpers import normalize_name | CODE |
| CRITICAL | cms/api.py | 44 | from django.core.exceptions import FieldError, ValidationError | CODE |
| CRITICAL | cms/menu_bases.py | 1 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | cms/views.py | 47 | from cms.utils.helpers import is_editable_model | CODE |
| CRITICAL | cms/middleware/toolbar.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | cms/forms/wizards.py | 2 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | cms/forms/validators.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | cms/cache/placeholder.py | 25 | from cms.utils.helpers import get_header_name, get_timezone_name | CODE |
| CRITICAL | cms/cache/page.py | 24 | from cms.utils.helpers import get_timezone_name | CODE |
| CRITICAL | cms/test_utils/project/objectpermissionsapp/models.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | cms/tests/test_forms.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | cms/tests/test_page.py | 10 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | cms/tests/test_helpers.py | 8 | from cms.utils.helpers import is_editable_model | CODE |
| CRITICAL | cms/tests/test_api.py | 8 | from django.core.exceptions import FieldError | CODE |
| CRITICAL | cms/tests/test_cache.py | 48 | from cms.utils.helpers import get_timezone_name | CODE |
| CRITICAL | cms/tests/frontend/unit/cms.pagetree.test.js | 112 | CMS.API.Helpers._getWindow.and.returnValue({ | CODE |
| CRITICAL | cms/tests/frontend/unit/cms.structureboard.test.js | 303 | CMS.API.Helpers.setSettings.and.callFake(function(input) { | CODE |
| CRITICAL | cms/tests/frontend/unit/cms.structureboard.test.js | 473 | CMS.API.Helpers.setSettings.and.callFake(function(input) { | CODE |
| CRITICAL | cms/tests/frontend/unit/cms.structureboard.test.js | 476 | CMS.API.Helpers.setSettings.calls.reset(); | CODE |
| CRITICAL | cms/tests/frontend/unit/cms.structureboard.test.js | 2044 | CMS.API.Clipboard._isClipboardModalOpen.and.returnValue(true); | CODE |
| CRITICAL | cms/tests/frontend/unit/cms.changetracker.test.js | 198 | CMS.ChangeTracker.prototype._trackChange.and.callThrough(); | CODE |
| CRITICAL | …/tests/frontend/unit/cms.pagetree.stickyheader.test.js | 95 | CMS.API.Helpers._getWindow.and.returnValue({ | CODE |
| CRITICAL | …/tests/frontend/unit/cms.pagetree.stickyheader.test.js | 109 | CMS.API.Helpers._getWindow.and.returnValue({ | CODE |
| CRITICAL⚡ | cms/tests/frontend/unit/cms.plugins.test.js | 305 | expect(CMS.Plugin.prototype._checkIfPasteAllowed.calls.count()).toEqual(1); | CODE |
| CRITICAL⚡ | cms/tests/frontend/unit/cms.plugins.test.js | 312 | expect(CMS.Plugin.prototype._checkIfPasteAllowed.calls.count()).toEqual(2); | CODE |
| CRITICAL⚡ | cms/tests/frontend/unit/cms.plugins.test.js | 315 | expect(CMS.Plugin.prototype._checkIfPasteAllowed.calls.count()).toEqual(2); | CODE |
| CRITICAL | cms/tests/frontend/unit/cms.plugins.test.js | 609 | CMS.API.Helpers.addEventListener.calls.argsFor(0)[1]({}, { instance: plugin.modal }); | CODE |
| CRITICAL | cms/tests/frontend/unit/cms.plugins.test.js | 690 | CMS.API.Helpers.addEventListener.calls.argsFor(0)[1]({}, { instance: plugin.modal }); | CODE |
| CRITICAL | cms/tests/frontend/unit/cms.plugins.test.js | 1469 | CMS.API.Helpers.addEventListener.calls.argsFor(0)[1]({}, { instance: plugin.modal }); | CODE |
| CRITICAL | cms/tests/frontend/unit/cms.clipboard.test.js | 257 | CMS.API.Toolbar.openAjax.calls.mostRecent().args[0].callback(); | CODE |
| CRITICAL | cms/tests/frontend/unit/cms.toolbar.test.js | 99 | CMS.Toolbar.prototype._initialStates.and.callThrough(); | CODE |
| CRITICAL | cms/tests/frontend/unit/cms.toolbar.test.js | 100 | CMS.Toolbar.prototype._initialStates.calls.reset(); | CODE |
| CRITICAL | cms/tests/frontend/integration/dragndrop.js | 71 | CMS.API.StructureBoard.ui.sortables.nestedSortable('option', 'delay', 0); | CODE |
| CRITICAL | cms/tests/frontend/integration/dragndrop.js | 159 | CMS.API.StructureBoard.ui.sortables.nestedSortable('option', 'delay', 0); | CODE |
| CRITICAL | cms/tests/frontend/integration/dragndrop.js | 258 | CMS.API.StructureBoard.ui.sortables.nestedSortable('option', 'delay', 0); | CODE |
| CRITICAL | cms/tests/frontend/integration/clipboard.js | 87 | CMS.API.StructureBoard.ui.sortables.nestedSortable('option', 'delay', 0); | CODE |
| CRITICAL | cms/tests/frontend/integration/clipboard.js | 546 | CMS.API.StructureBoard.ui.sortables.nestedSortable('option', 'delay', 0); | CODE |
| CRITICAL | cms/tests/frontend/integration/clipboard.js | 567 | CMS.API.StructureBoard.ui.sortables.nestedSortable('option', 'delay', 0); | CODE |
| CRITICAL | cms/tests/frontend/integration/clipboard.js | 860 | CMS.API.StructureBoard.ui.sortables.nestedSortable('option', 'delay', 0); | CODE |
| CRITICAL | cms/tests/frontend/integration/clipboard.js | 880 | CMS.API.StructureBoard.ui.sortables.nestedSortable('option', 'delay', 0); | CODE |
| CRITICAL | cms/tests/frontend/integration/copy-from-language.js | 81 | CMS.API.StructureBoard.ui.sortables.nestedSortable('option', 'delay', 0); | CODE |
| CRITICAL | cms/admin/utils.py | 34 | from cms.utils.helpers import is_editable_model | CODE |
| CRITICAL | cms/admin/permissionadmin.py | 20 | from cms.utils.helpers import classproperty | CODE |
| CRITICAL | cms/utils/helpers.py | 17 | >>> from cms.utils.helpers import classproperty | STRING |
| CRITICAL | cms/static/cms/js/admin/actions.js | 9 | window.top.CMS.API.Sideframe.close(); | CODE |
| CRITICAL | cms/static/cms/js/admin/actions.js | 49 | window.top.CMS.API.Sideframe.close(); | CODE |
| CRITICAL | cms/static/cms/js/libs/jquery.min.js | 5 | return new Za.prototype.init(a,b,c,d,e)}m.Tween=Za,Za.prototype={constructor:Za,init:function(a,b,c,d,e,f){this.elem=a,t | CODE |
| CRITICAL | cms/static/cms/js/modules/cms.plugins.js | 336 | if (!CMS.API.StructureBoard.ui.container.hasClass('cms-structure-condensed')) { | CODE |
| CRITICAL | cms/static/cms/js/modules/cms.plugins.js | 346 | if (!CMS.API.StructureBoard.ui.container.hasClass('cms-structure-condensed')) { | CODE |
| CRITICAL | cms/static/cms/js/modules/cms.pagetree.js | 910 | window.top.CMS.API.Toolbar.showLoader(); | CODE |
| CRITICAL | cms/static/cms/js/modules/cms.pagetree.js | 919 | window.top.CMS.API.Toolbar.hideLoader(); | CODE |
| CRITICAL | cms/static/cms/js/modules/cms.pagetree.js | 931 | window.top.CMS.API.Toolbar.hideLoader(); | CODE |
| CRITICAL | menus/menu_pool.py | 6 | from django.core.exceptions import ValidationError | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/conf.py | 5 | # This file is execfile()d with the current directory set to its containing | COMMENT |
| MEDIUM⚡ | cms/tests/test_forms.py | 318 | # Create a child under parent1 with slug "test" | COMMENT |
| MEDIUM⚡ | cms/tests/test_forms.py | 321 | # Create a child under parent2 with the same slug "test" (this is allowed because they have different parents) | COMMENT |
| MEDIUM | cms/tests/test_forms.py | 241 | # Create a basic page structure | COMMENT |
| MEDIUM | cms/tests/test_forms.py | 349 | # Create a child under parent with the same slug | COMMENT |
| MEDIUM | cms/tests/test_admin.py | 229 | # Create a page in default language ("fr") | COMMENT |
| MEDIUM | cms/tests/test_plugin_renderers.py | 353 | # Create a CMS page placeholder as source model cms.pagecontent | COMMENT |
| MEDIUM | cms/tests/test_plugin_renderers.py | 401 | # Create an Example1 instance | COMMENT |
| MEDIUM⚡ | cms/tests/test_log_entries.py | 63 | # Create a page | COMMENT |
| MEDIUM⚡ | cms/tests/test_plugins.py | 1085 | # Create a plugin that allows children | COMMENT |
| MEDIUM⚡ | cms/tests/test_plugins.py | 1264 | # Create a single plugin with no parent | COMMENT |
| MEDIUM | cms/tests/test_plugins.py | 1625 | # Create a page | COMMENT |
| MEDIUM | cms/tests/test_placeholder.py | 1641 | # Create a single plugin as the first plugin of the target placeholder | COMMENT |
| MEDIUM | cms/tests/test_page_admin.py | 1756 | # Create a page with redirect | COMMENT |
| MEDIUM | cms/tests/test_page_admin.py | 1785 | # Create a page without redirect | COMMENT |
| MEDIUM | cms/tests/test_page_admin.py | 3873 | # Create a page permission row for the page which staff_user should NOT | COMMENT |
| MEDIUM | cms/tests/test_views.py | 377 | # Create a homepage with English and German versions | STRING |
| MEDIUM | cms/tests/test_multilingual.py | 45 | # Create a new page | COMMENT |
| MEDIUM | cms/tests/test_multilingual.py | 74 | # Create a different language using the edit admin page | COMMENT |
| MEDIUM | cms/tests/test_nested_plugins.py | 1223 | # Create an empty placeholder for language "en" | COMMENT |
| MEDIUM⚡ | cms/tests/test_toolbar.py | 2727 | # Create a QueryDict with test parameters | COMMENT |
| MEDIUM | cms/tests/test_apphook_reload_language_variants.py | 49 | # Create a page with an apphook in English | COMMENT |
| MEDIUM | cms/tests/test_apphook_reload_language_variants.py | 61 | # Create a new language variant via admin (simulating user action) | COMMENT |
| MEDIUM | cms/tests/test_apphook_reload_language_variants.py | 93 | # Create a page with an apphook in English | COMMENT |
| MEDIUM | cms/tests/test_apphook_reload_language_variants.py | 105 | # Create a new language variant (German) | COMMENT |
| MEDIUM⚡ | cms/tests/test_apphook_reload_language_variants.py | 122 | # Create a page without an apphook in English | COMMENT |
| MEDIUM⚡ | cms/tests/test_apphook_reload_language_variants.py | 132 | # Create a new language variant (German) | COMMENT |
| MEDIUM | cms/tests/test_apphook_reload_language_variants.py | 151 | # Create a page with an apphook | COMMENT |
| MEDIUM | cms/tests/test_apphook_reload_language_variants.py | 163 | # Create a new language variant | COMMENT |
| MEDIUM⚡ | cms/tests/test_apphook_reload_language_variants.py | 180 | # Create a page without an apphook | COMMENT |
| MEDIUM⚡ | cms/tests/test_apphook_reload_language_variants.py | 190 | # Create a new language variant | COMMENT |
| MEDIUM | cms/tests/test_apphook_reload_language_variants.py | 208 | # Create a page with an apphook | COMMENT |
| MEDIUM⚡ | cms/tests/test_app_registration.py | 504 | # Create a mock app with a contract | COMMENT |
| MEDIUM⚡ | cms/tests/test_app_registration.py | 526 | # Create a mock app without a contract attribute | COMMENT |
| MEDIUM | cms/tests/test_cache.py | 423 | # Create a test page | COMMENT |
| MEDIUM | cms/tests/test_cache.py | 432 | # Create a request object | COMMENT |
| MEDIUM | cms/tests/test_cache.py | 514 | # Create a test page | COMMENT |
| MEDIUM | cms/tests/test_cache.py | 557 | # Create a test page | COMMENT |
| MEDIUM | cms/tests/test_cache.py | 566 | # Create a request object | COMMENT |
| MEDIUM | cms/tests/test_apphooks.py | 1066 | # Create a page with an apphook attached | COMMENT |
| MEDIUM | cms/admin/placeholderadmin.py | 589 | # Create a PlaceholderReference plugin which in turn | COMMENT |
| MEDIUM | cms/management/commands/startcmsproject.py | 1259 | # Create a random SECRET_KEY to put it in the main settings. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cms/plugin_base.py | 55 | "exclude": ("position", "placeholder", "language", "plugin_type", "path", "depth"), | CODE |
| LOW | cms/plugin_base.py | 383 | context["placeholder"] = placeholder | CODE |
| LOW | cms/plugin_base.py | 637 | "placeholder": pl, | CODE |
| LOW | cms/constants.py | 71 | PLACEHOLDER_TOOLBAR_JS = _get_toolbar_js("placeholder") | CODE |
| LOW | cms/plugin_rendering.py | 57 | "placeholder", | CODE |
| LOW | cms/cms_menus.py | 422 | * Department of Lorem Ipsum | STRING |
| LOW | cms/templatetags/cms_tags.py | 304 | name = "placeholder" | CODE |
| LOW | cms/templatetags/cms_tags.py | 877 | Argument("placeholder"), | CODE |
| LOW | cms/templatetags/cms_tags.py | 956 | register.tag("placeholder", Placeholder) | CODE |
| LOW | cms/forms/wizards.py | 163 | 'placeholder': placeholder, | CODE |
| LOW | cms/test_utils/project/placeholderapp/models.py | 40 | return get_placeholder_from_slot(self.placeholders, "placeholder") | CODE |
| LOW | cms/test_utils/project/templates/simple.html | 9 | {% placeholder "placeholder" %} | CODE |
| LOW | …s/test_utils/project/templates/integration/simple.html | 9 | {% placeholder "placeholder" %} | CODE |
| LOW | …t_utils/project/pluginapp/plugins/multicolumn/forms.py | 29 | exclude = ('page', 'position', 'placeholder', 'language', 'plugin_type') | CODE |
| LOW | …roject/pluginapp/plugins/manytomany_rel/cms_plugins.py | 25 | 'placeholder': placeholder}) | CODE |
| LOW | …roject/pluginapp/plugins/manytomany_rel/cms_plugins.py | 48 | 'placeholder': placeholder}) | CODE |
| LOW | …est_utils/project/pluginapp/plugins/multiwrap/forms.py | 29 | exclude = ('page', 'position', 'placeholder', 'language', 'plugin_type') | CODE |
| LOW⚡ | cms/signals/log_entries.py | 41 | 'placeholder_kwarg': 'placeholder' | CODE |
| LOW⚡ | cms/signals/log_entries.py | 46 | 'placeholder_kwarg': 'placeholder' | CODE |
| LOW⚡ | cms/signals/log_entries.py | 56 | 'placeholder_kwarg': 'placeholder' | CODE |
| LOW | cms/signals/log_entries.py | 81 | 'placeholder_kwarg': 'placeholder' | CODE |
| LOW | cms/toolbar/toolbar.py | 292 | plugin = self.clipboard.get_plugins().select_related('placeholder')[0] | CODE |
| LOW | cms/toolbar/utils.py | 37 | 'type': 'placeholder', | CODE |
| LOW | cms/tests/test_admin.py | 57 | normal_guy = get_user_model().objects.create_user(USERNAME, "test@test.com", "test@test.com") | CODE |
| LOW | cms/tests/test_admin.py | 59 | normal_guy = get_user_model().objects.create_user(USERNAME, "test@test.com", USERNAME) | CODE |
| LOW | cms/tests/test_admin.py | 677 | self.client.login(username="test@test.com", password="test@test.com") | CODE |
| LOW⚡ | cms/tests/test_plugins.py | 1583 | self.assertEqual(out_context["placeholder"], 2) | CODE |
| LOW⚡ | cms/tests/test_placeholder.py | 612 | output = self.render_template_obj(template, {"placeholder": placeholder}, request) | CODE |
| LOW⚡ | cms/tests/test_placeholder.py | 619 | output = self.render_template_obj(template, {"placeholder": placeholder}, request) | CODE |
| LOW⚡ | cms/tests/test_placeholder.py | 629 | output = self.render_template_obj(template, {"placeholder": placeholder, "language": "en"}, request) | CODE |
| LOW⚡ | cms/tests/test_placeholder.py | 634 | output = self.render_template_obj(template, {"placeholder": placeholder, "language": "de"}, request) | CODE |
| LOW | cms/tests/test_placeholder.py | 1775 | placeholder = Placeholder.objects.create(slot="placeholder") | CODE |
| LOW | cms/tests/test_placeholder_admin.py | 397 | ph_en = page.get_placeholders(lang).get(slot="placeholder") | CODE |
| LOW | cms/tests/test_page_admin.py | 1829 | "placeholder": source_placeholder, | CODE |
| LOW | cms/tests/test_page_admin.py | 1858 | "placeholder": source_placeholder, | CODE |
| LOW | cms/tests/test_placeholder_operation_signals.py | 83 | self.assertEqual(call_kwargs['placeholder'], self._placeholder_1) | CODE |
| LOW | cms/tests/test_placeholder_operation_signals.py | 119 | self.assertEqual(post_call_kwargs['placeholder'], self._placeholder_1) | CODE |
| LOW | cms/tests/test_placeholder_operation_signals.py | 148 | self.assertEqual(call_kwargs['placeholder'], self._placeholder_1) | CODE |
| LOW | cms/tests/test_placeholder_operation_signals.py | 176 | self.assertEqual(post_call_kwargs['placeholder'], self._placeholder_1) | CODE |
| LOW | cms/tests/test_placeholder_operation_signals.py | 201 | self.assertEqual(call_kwargs['placeholder'], self._placeholder_1) | CODE |
| LOW | cms/tests/test_placeholder_operation_signals.py | 228 | self.assertEqual(post_call_kwargs['placeholder'], self._placeholder_1) | CODE |
| LOW | cms/tests/test_placeholder_operation_signals.py | 666 | self.assertEqual(call_kwargs['placeholder'], self._placeholder_1) | CODE |
| LOW | cms/tests/test_placeholder_operation_signals.py | 691 | self.assertEqual(post_call_kwargs['placeholder'], self._placeholder_1) | CODE |
| LOW | cms/tests/test_menu.py | 1994 | Department of Lorem Ipsum | STRING |
| LOW | cms/tests/test_permmod.py | 154 | 'body': 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa, repellendus, ' | CODE |
| LOW | cms/tests/test_permmod.py | 154 | 'body': 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Culpa, repellendus, ' | CODE |
| LOW⚡ | cms/tests/test_templatetags.py | 150 | template, {"placeholder": placeholder, "user": self.get_superuser()}, request=request | STRING |
| LOW⚡ | cms/tests/test_templatetags.py | 160 | {"placeholder": placeholder, "user": self.get_staff_user_with_no_permissions()}, | STRING |
| LOW | cms/tests/test_placeholder_app_admin.py | 72 | placeholderconf = {'placeholder': { | CODE |
| LOW | cms/tests/frontend/unit/cms.structureboard.test.js | 2247 | new FakePlugin('cms-placeholder-1', { placeholder_id: 1, type: 'placeholder' }), | CODE |
| LOW | cms/tests/frontend/unit/cms.structureboard.test.js | 2253 | ['cms-placeholder-1', { placeholder_id: 1, type: 'placeholder' }], | CODE |
| LOW | cms/tests/frontend/unit/cms.structureboard.test.js | 2357 | new FakePlugin('cms-placeholder-1', { placeholder_id: 1, type: 'placeholder' }), | CODE |
| LOW | cms/tests/frontend/unit/cms.structureboard.test.js | 2569 | new FakePlugin('cms-placeholder-1', { placeholder_id: 1, type: 'placeholder' }) | CODE |
| LOW | cms/tests/frontend/unit/cms.plugins.test.js | 122 | type: 'placeholder', | CODE |
| LOW | cms/tests/frontend/unit/cms.plugins.test.js | 210 | type: 'placeholder', | CODE |
| LOW | cms/tests/frontend/unit/cms.plugins.test.js | 284 | type: 'placeholder', | CODE |
| LOW⚡ | cms/tests/frontend/unit/cms.plugins.test.js | 308 | type: 'placeholder', | CODE |
| LOW | cms/tests/frontend/unit/cms.plugins.test.js | 1122 | type: 'placeholder', | CODE |
| LOW⚡ | cms/admin/placeholderadmin.py | 319 | real_queryset = plugin_class.get_render_queryset().select_related('parent', 'placeholder') | CODE |
| LOW | cms/admin/placeholderadmin.py | 412 | 'placeholder': plugin_data['placeholder_id'], | CODE |
| 17 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cms/plugin_pool.py | 114 | CODE | |
| LOW | cms/app_registration.py | 177 | CODE | |
| LOW | cms/plugin_base.py | 33 | CODE | |
| LOW | cms/api.py | 77 | CODE | |
| LOW | cms/api.py | 416 | CODE | |
| LOW | cms/cms_toolbars.py | 406 | CODE | |
| LOW | cms/cms_toolbars.py | 508 | CODE | |
| LOW | cms/cms_toolbars.py | 599 | CODE | |
| LOW | cms/appresolver.py | 75 | CODE | |
| LOW | cms/cms_menus.py | 348 | CODE | |
| LOW | cms/views.py | 71 | CODE | |
| LOW | cms/views.py | 352 | CODE | |
| LOW | cms/templatetags/cms_tags.py | 151 | CODE | |
| LOW | cms/templatetags/cms_tags.py | 246 | CODE | |
| LOW | cms/templatetags/cms_tags.py | 520 | CODE | |
| LOW | cms/templatetags/cms_tags.py | 620 | CODE | |
| LOW | cms/toolbar/toolbar.py | 153 | CODE | |
| LOW | cms/toolbar/toolbar.py | 225 | CODE | |
| LOW | cms/toolbar/toolbar.py | 489 | CODE | |
| LOW | cms/tests/test_plugins.py | 1280 | CODE | |
| LOW | cms/tests/test_page.py | 721 | CODE | |
| LOW | cms/tests/test_page_admin.py | 1654 | CODE | |
| LOW | cms/tests/test_po.py | 17 | CODE | |
| LOW | cms/tests/test_nested_plugins.py | 493 | CODE | |
| LOW | cms/tests/test_nested_plugins.py | 692 | CODE | |
| LOW | cms/tests/test_menu.py | 147 | CODE | |
| LOW | cms/admin/forms.py | 128 | CODE | |
| LOW | cms/admin/forms.py | 804 | CODE | |
| LOW | cms/admin/forms.py | 853 | CODE | |
| LOW | cms/admin/pageadmin.py | 102 | CODE | |
| LOW | cms/admin/pageadmin.py | 107 | CODE | |
| LOW | cms/admin/utils.py | 818 | CODE | |
| LOW | cms/admin/utils.py | 1082 | CODE | |
| LOW | cms/management/commands/startcmsproject.py | 120 | CODE | |
| LOW | cms/management/commands/startcmsproject.py | 214 | CODE | |
| LOW | cms/management/commands/startcmsproject.py | 250 | CODE | |
| LOW | cms/management/commands/startcmsproject.py | 452 | CODE | |
| LOW | cms/management/commands/startcmsproject.py | 694 | CODE | |
| LOW | cms/management/commands/startcmsproject.py | 958 | CODE | |
| LOW | cms/management/commands/subcommands/list.py | 104 | CODE | |
| LOW | …gement/commands/subcommands/delete_orphaned_plugins.py | 56 | CODE | |
| LOW | cms/management/commands/subcommands/copy.py | 54 | CODE | |
| LOW | cms/utils/placeholder.py | 203 | CODE | |
| LOW | cms/utils/plugins.py | 408 | CODE | |
| LOW | cms/utils/check.py | 197 | CODE | |
| LOW | cms/utils/check.py | 309 | CODE | |
| LOW | cms/utils/check.py | 380 | CODE | |
| LOW | cms/utils/check.py | 433 | CODE | |
| LOW | cms/utils/conf.py | 204 | CODE | |
| LOW | cms/models/permissionmodels.py | 244 | CODE | |
| LOW | cms/models/permissionmodels.py | 267 | CODE | |
| LOW | cms/models/placeholdermodel.py | 276 | CODE | |
| LOW | cms/models/placeholdermodel.py | 390 | CODE | |
| LOW | cms/models/pagemodel.py | 750 | CODE | |
| LOW | cms/models/managers.py | 84 | CODE | |
| LOW | menus/menu_pool.py | 27 | CODE | |
| LOW | menus/utils.py | 49 | CODE | |
| LOW | menus/utils.py | 264 | CODE | |
| LOW | menus/templatetags/menu_tags.py | 53 | CODE | |
| LOW | menus/templatetags/menu_tags.py | 134 | CODE | |
| 1 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/django_settings.py | 1 | CODE | |
| LOW | docs/conf.py | 160 | CODE | |
| LOW | docs/conf.py | 296 | CODE | |
| LOW | cms/plugin_base.py | 23 | CODE | |
| LOW | cms/forms/validators.py | 14 | CODE | |
| LOW | cms/cache/page.py | 1 | CODE | |
| LOW | cms/test_utils/project/brokenpluginapp/cms_plugins.py | 1 | CODE | |
| LOW | cms/signals/__init__.py | 17 | CODE | |
| LOW | cms/toolbar/utils.py | 1 | CODE | |
| LOW | cms/tests/test_plugins.py | 5 | CODE | |
| LOW | cms/tests/test_plugins.py | 1284 | CODE | |
| LOW | cms/tests/test_page_admin.py | 24 | CODE | |
| LOW | cms/admin/__init__.py | 1 | CODE | |
| LOW | cms/admin/__init__.py | 2 | CODE | |
| LOW | cms/admin/__init__.py | 3 | CODE | |
| LOW | cms/admin/__init__.py | 4 | CODE | |
| LOW | cms/admin/__init__.py | 5 | CODE | |
| LOW | cms/admin/pageadmin.py | 1 | CODE | |
| LOW | cms/models/__init__.py | 3 | CODE | |
| LOW | cms/models/__init__.py | 4 | CODE | |
| LOW | cms/models/__init__.py | 5 | CODE | |
| LOW | cms/models/__init__.py | 6 | CODE | |
| LOW | cms/models/__init__.py | 7 | CODE | |
| LOW | cms/models/__init__.py | 8 | CODE | |
| LOW | cms/models/__init__.py | 9 | CODE | |
| LOW | cms/models/__init__.py | 10 | CODE | |
| LOW | cms/models/__init__.py | 11 | CODE | |
| LOW | cms/models/__init__.py | 13 | CODE | |
| LOW | cms/models/pluginmodel.py | 1 | CODE | |
| LOW | cms/models/pluginmodel.py | 3 | CODE | |
| LOW | cms/models/pluginmodel.py | 6 | CODE | |
| LOW | cms/models/pluginmodel.py | 20 | CODE | |
| LOW | cms/extensions/__init__.py | 1 | CODE | |
| LOW | cms/extensions/__init__.py | 1 | CODE | |
| LOW | cms/extensions/__init__.py | 2 | CODE | |
| LOW | cms/extensions/__init__.py | 3 | CODE | |
| LOW | cms/extensions/__init__.py | 3 | CODE | |
| LOW | cms/sitemaps/__init__.py | 1 | CODE | |
| LOW | cms/wizards/helpers.py | 5 | CODE | |
| LOW | cms/wizards/helpers.py | 5 | CODE | |
| LOW | cms/wizards/wizard_pool.py | 5 | CODE | |
| LOW | cms/wizards/wizard_pool.py | 5 | CODE | |
| LOW | menus/base.py | 1 | CODE | |
| LOW | menus/templatetags/menu_tags.py | 7 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | cms/plugin_base.py | 534 | Renders the close frame for a CMS plugin in the Django admin interface. This method is used to send in | STRING |
| HIGH | cms/utils/plugins.py | 36 | Get a list of plugins for a placeholder in a specified template. Respects the placeholder's cache. :param requ | STRING |
| HIGH | cms/utils/plugins.py | 488 | Checks if the global maximum limit for plugins in a placeholder has been reached. If not then it checks if it h | STRING |
| HIGH | menus/utils.py | 16 | Mark the descendants of each node in a list. Args: nodes (list): A list of nodes. Returns: | STRING |
| HIGH | menus/utils.py | 94 | Decorator function that sets the language changer before calling the wrapped function. Args: | STRING |
| HIGH | menus/utils.py | 140 | Initializer for the class. Args: request: The request object. Attributes: | STRING |
| HIGH | menus/utils.py | 208 | Get the path of a page for a specific language. Args: self (object): The object containing | STRING |
| HIGH | menus/utils.py | 265 | Call the function with the given language parameter. Args: lang (str): The language parame | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | playwright.config.js | 41 | COMMENT | |
| LOW | playwright.config.js | 61 | /* Run your local dev server before starting the tests */ | COMMENT |
| LOW | docs/requirements.txt | 1 | # | COMMENT |
| LOW | docs/requirements.txt | 21 | black==26.5.1 | COMMENT |
| LOW | docs/requirements.txt | 41 | # -r requirements.in | COMMENT |
| LOW | docs/requirements.txt | 61 | django-sekizai==4.1.0 | COMMENT |
| LOW | docs/requirements.txt | 81 | # via | COMMENT |
| LOW | docs/requirements.txt | 101 | # wheel | COMMENT |
| LOW | docs/requirements.txt | 121 | # via | COMMENT |
| LOW | docs/requirements.txt | 141 | # via beautifulsoup4 | COMMENT |
| LOW | docs/requirements.txt | 201 | # pip | COMMENT |
| LOW | docs/conf.py | 1 | # | COMMENT |
| LOW | docs/conf.py | 121 | #today_fmt = '%B %d, %Y' | COMMENT |
| LOW | docs/conf.py | 181 | # Add any paths that contain custom themes here, relative to this directory. | COMMENT |
| LOW | docs/conf.py | 221 | # typographically correct entities. | COMMENT |
| LOW | docs/conf.py | 241 | #html_show_sourcelink = True | COMMENT |
| LOW | docs/conf.py | 261 | #latex_font_size = '10pt' | COMMENT |
| LOW | docs/conf.py | 281 | # Documents to append as an appendix to all manuals. | COMMENT |
| LOW | cms/plugin_base.py | 261 | COMMENT | |
| LOW | cms/forms/validators.py | 21 | def validate_url(value): | COMMENT |
| LOW | cms/cache/__init__.py | 41 | COMMENT | |
| LOW | cms/tests/test_plugins.py | 341 | returned_3 = copy_plugins_to_placeholder([text_2], placeholder, "en", root_plugin=column_2) # ID 8 | COMMENT |
| LOW | cms/tests/test_wizards.py | 661 | # are cached. Clear this cache because installed apps change | COMMENT |
| LOW | cms/tests/test_placeholder.py | 241 | # small number of plugins, between similarly size placeholders and a small number of plugins to | COMMENT |
| LOW | cms/tests/test_placeholder_admin.py | 441 | # 2. SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "d | COMMENT |
| LOW | cms/tests/test_placeholder_admin.py | 481 | with CaptureQueriesContext(connection) as queries: | COMMENT |
| LOW | cms/tests/test_helpers.py | 21 | COMMENT | |
| LOW | cms/tests/frontend/unit/helpers/mock-ajax.js | 41 | // Event 'readystatechange' is should be a simple event. | COMMENT |
| LOW | cms/tests/frontend/integration/pageTypes.js | 41 | // this.click('.cms-toolbar-item-navigation > li + li > a'); | COMMENT |
| LOW | cms/tests/frontend/integration/pageTypes.js | 61 | // .waitForSelector('.cms-ready', function() { | COMMENT |
| LOW | cms/tests/frontend/integration/pagetree.js | 381 | // .withFrame(0, function() { | COMMENT |
| LOW | cms/tests/frontend/integration/pagetree.js | 1401 | // ]) | COMMENT |
| LOW | cms/admin/settingsadmin.py | 121 | return HttpResponse(request.toolbar.render()) | COMMENT |
| LOW | cms/admin/forms.py | 1201 | COMMENT | |
| LOW | cms/admin/utils.py | 261 | As a result, the change form can (but does not have to) contain both grouper model fields and content model | COMMENT |
| LOW | cms/models/placeholdermodel.py | 541 | # changed the absolute — and partly negative — intermediate values without affecting that | COMMENT |
| LOW | cms/models/pluginmodel.py | 121 | COMMENT | |
| LOW | cms/sitemaps/cms_sitemap.py | 61 | - Not login_required | COMMENT |
| LOW | cms/sitemaps/cms_sitemap.py | 81 | # http://example.com/sub/sitemap.xml | COMMENT |
| LOW | cms/static/cms/js/admin/usersettings.js | 1 | // Loaded by templates/admin/cms/usersettings/change_form.html, which renders | COMMENT |
| LOW | cms/static/cms/js/libs/jstree/jstree.grid.min.js | 741 | // if we are not first, and our previous peer (one before us) is closed, we go right after the previ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | cms/plugin_rendering.py | 274 | context.push() | CODE |
| HIGH | cms/templatetags/cms_tags.py | 509 | context.push() | CODE |
| HIGH | cms/templatetags/cms_tags.py | 789 | context.push() | CODE |
| HIGH | cms/templatetags/cms_tags.py | 841 | context.push() | CODE |
| HIGH | cms/management/commands/subcommands/uninstall.py | 13 | help_string = 'Uninstalls (sets to null) specified apphooks for all pages' | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …est_utils/project/second_cms_urls_for_apphook_tests.py | 0 | if there are some application urls, add special resolver, so we will have standard reverse support. | STRING |
| HIGH | …test_utils/project/third_cms_urls_for_apphook_tests.py | 0 | if there are some application urls, add special resolver, so we will have standard reverse support. | STRING |
| HIGH | …est_utils/project/fourth_cms_urls_for_apphook_tests.py | 0 | if there are some application urls, add special resolver, so we will have standard reverse support. | STRING |
| HIGH | cms/test_utils/project/cms_urls_for_apphook_tests.py | 0 | if there are some application urls, add special resolver, so we will have standard reverse support. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | testserver.py | 44 | except Exception: | CODE |
| LOW | testserver.py | 82 | except Exception as e: | CODE |
| LOW | cms/app_registration.py | 198 | except Exception: # NOQA | CODE |
| LOW | cms/plugin_rendering.py | 302 | except Exception as e: | CODE |
| LOW | cms/plugin_rendering.py | 537 | except Exception: | CODE |
| LOW | cms/app_base.py | 151 | except Exception: | CODE |
| LOW⚡ | cms/cache/permissions.py | 23 | except Exception: | CODE |
| LOW | cms/test_utils/util/grouper.py | 7 | except Exception: | CODE |
| LOW | cms/toolbar/utils.py | 194 | except Exception: | CODE |
| LOW | cms/tests/test_templates.py | 47 | except Exception as e: | CODE |
| MEDIUM | cms/tests/test_templates.py | 48 | print(f"An error occurred: {e}") | CODE |
| LOW | cms/management/commands/subcommands/copy.py | 64 | except Exception: | CODE |
| LOW | cms/management/commands/subcommands/copy.py | 147 | except Exception: | CODE |
| LOW | cms/management/commands/subcommands/copy.py | 151 | except Exception: | CODE |
| MEDIUM | cms/management/commands/subcommands/copy.py | 144 | def handle(self, *args, **options): | CODE |
| LOW | cms/utils/apphook_reload.py | 103 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cms/plugin_rendering.py | 379 | # Check if page, if so delegate to render_page_placeholder | COMMENT |
| LOW | cms/cms_toolbars.py | 582 | # Check if the user has permissions to change at least one page | COMMENT |
| LOW | cms/views.py | 206 | # Check if the page has a redirect url defined for this language. | COMMENT |
| LOW⚡ | cms/tests/test_plugins.py | 1088 | # Set CMS_PLACEHOLDER_CONF to restrict child_classes to a non-existent plugin | COMMENT |
| LOW | cms/admin/placeholderadmin.py | 615 | # Check if the user can copy plugins from source placeholder to | COMMENT |
| LOW | cms/admin/pageadmin.py | 350 | # Check if one of the affected pages either from the old homepage | COMMENT |
| LOW | cms/utils/placeholder.py | 223 | # Check if it quacks like a template object, if not | COMMENT |
| LOW | cms/utils/plugins.py | 220 | if plugin_class.cache_child_classes: # Check if child classes should be cached | CODE |
| LOW | cms/models/placeholdermodel.py | 220 | # Check if the GenericForeignKey is cached by looking for the _source_cache attribute | COMMENT |
| LOW | cms/models/pagemodel.py | 800 | # Check if the new path exists for this language on another page on the same site | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | cms/api.py | 72 | # =============================================================================== | COMMENT |
| MEDIUM | cms/api.py | 74 | # =============================================================================== | COMMENT |
| MEDIUM | cms/api.py | 122 | # =============================================================================== | COMMENT |
| MEDIUM | cms/api.py | 124 | # =============================================================================== | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cms/plugin_rendering.py | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW | cms/cache/page.py | 206 | def set_xframe_cache(page: Page, xframe_options: int) -> None: | CODE |
| LOW | cms/signals/pagecontent.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | cms/signals/apphook.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | cms/tests/test_menu_page_viewperm_staff.py | 6 | __all__ = [ | CODE |
| LOW | cms/tests/test_menu_page_viewperm.py | 21 | __all__ = ["ViewPermissionTreeBugTests", "ViewPermissionComplexMenuAllNodesTests"] | CODE |
| LOW | cms/admin/utils.py | 1082 | def update_labels(self, fields: list[str]) -> None: | CODE |
| LOW | cms/utils/plugins.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | cms/utils/conf.py | 14 | __all__ = [ | CODE |
| LOW | cms/utils/compat/dj.py | 5 | __all__ = ['is_installed', 'installed_apps'] | CODE |
| LOW | cms/extensions/__init__.py | 5 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cms/tests/test_placeholder.py | 157 | # Should not raise TemplateSyntaxError, just return empty list | COMMENT |
| LOW | cms/tests/test_placeholder.py | 173 | # Should not raise TemplateDoesNotExist, just return empty list | COMMENT |
| LOW⚡ | cms/utils/page_permissions.py | 57 | # just return grant all mark | COMMENT |
| LOW | cms/sitemaps/cms_sitemap.py | 88 | # included, simply create a new class inheriting from this one, and | COMMENT |
| LOW | menus/menu_pool.py | 200 | # just set the value directly. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cms/api.py | 128 | CODE | |
| LOW | cms/api.py | 295 | CODE | |
| LOW | cms/api.py | 473 | CODE | |
| LOW | cms/api.py | 532 | CODE | |
| LOW | cms/toolbar/items.py | 226 | CODE | |
| LOW | cms/toolbar/items.py | 472 | CODE | |
| LOW | cms/tests/test_placeholder_checks.py | 102 | CODE | |
| LOW | cms/tests/test_page_admin.py | 142 | CODE | |
| LOW | cms/tests/test_placeholder_app_admin.py | 51 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cms/api.py | 23 | def my_function(): | STRING |
| LOW | cms/api.py | 35 | def my_function(): | STRING |