batiste/django-page-cms

View on GitHub
pages/templatetags/pages_tags.py

Summary

Maintainability
D
2 days
Test Coverage

File pages_tags.py has 488 lines of code (exceeds 250 allowed). Consider refactoring.
Open

"""Page CMS page_tags template tags"""
from django import template
from django.utils.safestring import SafeText
from django.template import TemplateSyntaxError
from django.conf import settings
Severity: Minor
Found in pages/templatetags/pages_tags.py - About 7 hrs to fix

    Function show_content has 5 arguments (exceeds 4 allowed). Consider refactoring.
    Open

    def show_content(context, page, content_type, lang=None, fallback=True):
    Severity: Minor
    Found in pages/templatetags/pages_tags.py - About 35 mins to fix

      Function _get_content has 5 arguments (exceeds 4 allowed). Consider refactoring.
      Open

      def _get_content(context, page, content_type, lang, fallback=True):
      Severity: Minor
      Found in pages/templatetags/pages_tags.py - About 35 mins to fix

        Function __init__ has 5 arguments (exceeds 4 allowed). Consider refactoring.
        Open

            def __init__(self, page, content_type, varname, lang, lang_filter):
        Severity: Minor
        Found in pages/templatetags/pages_tags.py - About 35 mins to fix

          Function pages_admin_menu has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
          Open

          def pages_admin_menu(context, page):
              """Render the admin table of pages."""
              request = context.get('request', None)
          
              expanded = False
          Severity: Minor
          Found in pages/templatetags/pages_tags.py - About 25 mins to fix

          Cognitive Complexity

          Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

          A method's cognitive complexity is based on a few simple rules:

          • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
          • Code is considered more complex for each "break in the linear flow of the code"
          • Code is considered more complex when "flow breaking structures are nested"

          Further reading

          Similar blocks of code found in 2 locations. Consider refactoring.
          Open

          def pages_menu(context, page, url='/'):
              """Render a nested list of all the descendents of the given page,
              including this page.
          
              :param page: the page where to start the menu from.
          Severity: Major
          Found in pages/templatetags/pages_tags.py and 1 other location - About 3 hrs to fix
          pages/templatetags/pages_tags.py on lines 121..133

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 68.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 2 locations. Consider refactoring.
          Open

          def pages_siblings_menu(context, page, url='/'):
              """Get the parent page of the given page and render a nested list of its
              child pages. Good for rendering a secondary menu.
          
              :param page: the page where to start the menu from.
          Severity: Major
          Found in pages/templatetags/pages_tags.py and 1 other location - About 3 hrs to fix
          pages/templatetags/pages_tags.py on lines 81..93

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 68.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 2 locations. Consider refactoring.
          Open

              if bits[-2] != 'as':
                  raise TemplateSyntaxError(
                      '%r expects "as" as the second last argument' % bits[0])
          Severity: Minor
          Found in pages/templatetags/pages_tags.py and 1 other location - About 45 mins to fix
          pages/templatetags/pages_tags.py on lines 336..338

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 35.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 2 locations. Consider refactoring.
          Open

              if bits[-2] != 'as':
                  raise TemplateSyntaxError(
                      '%r expects "as" as the second argument' % bits[0])
          Severity: Minor
          Found in pages/templatetags/pages_tags.py and 1 other location - About 45 mins to fix
          pages/templatetags/pages_tags.py on lines 391..393

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 35.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 6 locations. Consider refactoring.
          Open

          def do_placeholder(parser, token):
              """
              Method that parse the placeholder template tag.
          
              Syntax::
          Severity: Major
          Found in pages/templatetags/pages_tags.py and 5 other locations - About 30 mins to fix
          pages/templatetags/pages_tags.py on lines 530..535
          pages/templatetags/pages_tags.py on lines 539..544
          pages/templatetags/pages_tags.py on lines 548..553
          pages/templatetags/pages_tags.py on lines 557..562
          pages/templatetags/pages_tags.py on lines 566..571

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 32.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 6 locations. Consider refactoring.
          Open

          def do_markdownlaceholder(parser, token):
              """
              Method that parse the markdownplaceholder template tag.
              """
              name, params = parse_placeholder(parser, token)
          Severity: Major
          Found in pages/templatetags/pages_tags.py and 5 other locations - About 30 mins to fix
          pages/templatetags/pages_tags.py on lines 508..526
          pages/templatetags/pages_tags.py on lines 539..544
          pages/templatetags/pages_tags.py on lines 548..553
          pages/templatetags/pages_tags.py on lines 557..562
          pages/templatetags/pages_tags.py on lines 566..571

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 32.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 6 locations. Consider refactoring.
          Open

          def do_imageplaceholder(parser, token):
              """
              Method that parse the imageplaceholder template tag.
              """
              name, params = parse_placeholder(parser, token)
          Severity: Major
          Found in pages/templatetags/pages_tags.py and 5 other locations - About 30 mins to fix
          pages/templatetags/pages_tags.py on lines 508..526
          pages/templatetags/pages_tags.py on lines 530..535
          pages/templatetags/pages_tags.py on lines 548..553
          pages/templatetags/pages_tags.py on lines 557..562
          pages/templatetags/pages_tags.py on lines 566..571

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 32.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 6 locations. Consider refactoring.
          Open

          def do_contactplaceholder(parser, token):
              """
              Method that parse the contactplaceholder template tag.
              """
              name, params = parse_placeholder(parser, token)
          Severity: Major
          Found in pages/templatetags/pages_tags.py and 5 other locations - About 30 mins to fix
          pages/templatetags/pages_tags.py on lines 508..526
          pages/templatetags/pages_tags.py on lines 530..535
          pages/templatetags/pages_tags.py on lines 539..544
          pages/templatetags/pages_tags.py on lines 548..553
          pages/templatetags/pages_tags.py on lines 566..571

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 32.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 6 locations. Consider refactoring.
          Open

          def do_jsonplaceholder(parser, token):
              """
              Method that parse the contactplaceholder template tag.
              """
              name, params = parse_placeholder(parser, token)
          Severity: Major
          Found in pages/templatetags/pages_tags.py and 5 other locations - About 30 mins to fix
          pages/templatetags/pages_tags.py on lines 508..526
          pages/templatetags/pages_tags.py on lines 530..535
          pages/templatetags/pages_tags.py on lines 539..544
          pages/templatetags/pages_tags.py on lines 548..553
          pages/templatetags/pages_tags.py on lines 557..562

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 32.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          Similar blocks of code found in 6 locations. Consider refactoring.
          Open

          def do_fileplaceholder(parser, token):
              """
              Method that parse the fileplaceholder template tag.
              """
              name, params = parse_placeholder(parser, token)
          Severity: Major
          Found in pages/templatetags/pages_tags.py and 5 other locations - About 30 mins to fix
          pages/templatetags/pages_tags.py on lines 508..526
          pages/templatetags/pages_tags.py on lines 530..535
          pages/templatetags/pages_tags.py on lines 539..544
          pages/templatetags/pages_tags.py on lines 557..562
          pages/templatetags/pages_tags.py on lines 566..571

          Duplicated Code

          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

          Tuning

          This issue has a mass of 32.

          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

          Refactorings

          Further Reading

          There are no issues that match your filters.

          Category
          Status