uclouvain/osis-dissertation

View on GitHub

Showing 75 of 75 total issues

Avoid too many return statements within this function.
Open

            return dissert.status
Severity: Major
Found in models/dissertation.py - About 30 mins to fix

    Avoid too many return statements within this function.
    Open

                return 'TO_RECEIVE'
    Severity: Major
    Found in models/dissertation.py - About 30 mins to fix

      Avoid too many return statements within this function.
      Open

                  return 'TO_RECEIVE'
      Severity: Major
      Found in models/dissertation.py - About 30 mins to fix

        Avoid too many return statements within this function.
        Open

                    return 'ENDED_LOS'
        Severity: Major
        Found in models/dissertation.py - About 30 mins to fix

          Avoid too many return statements within this function.
          Open

                      return 'ENDED_WIN'
          Severity: Major
          Found in models/dissertation.py - About 30 mins to fix

            Avoid too many return statements within this function.
            Open

                        return 'COM_KO'
            Severity: Major
            Found in models/dissertation.py - About 30 mins to fix

              Function informations_add has a Cognitive Complexity of 9 (exceeds 8 allowed). Consider refactoring.
              Open

              def informations_add(request):
                  if request.method == "POST":
                      if 'search_form' in request.POST:  # step 2 : second form to select person in list
                          return _manage_search_form(request)
              
              
              Severity: Minor
              Found in views/information.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

              Function manager_informations_add has a Cognitive Complexity of 9 (exceeds 8 allowed). Consider refactoring.
              Open

              def manager_informations_add(request):
                  if request.method == "POST":
                      if 'search_form' in request.POST:  # step 2 : second form to select person in list
                          return _manage_search_form(request, manager=True)
                      else:  # step 3 : everything ok, register the person as adviser
              Severity: Minor
              Found in views/information.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

              Continuation line over-indented for visual indent
              Open

                                 proposition_dissert.author == advis
              Severity: Minor
              Found in perms.py by pep8

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Missing whitespace around operator
              Open

                  search_fields=('name_short', 'name_long')
              Severity: Minor
              Found in models/offer_proposition_group.py by pep8

              Surround operators with a single space on either side.

              - Always surround these binary operators with a single space on
                either side: assignment (=), augmented assignment (+=, -= etc.),
                comparisons (==, <, >, !=, <=, >=, in, not in, is, is not),
                Booleans (and, or, not).
              
              - If operators with different priorities are used, consider adding
                whitespace around the operators with the lowest priorities.
              
              Okay: i = i + 1
              Okay: submitted += 1
              Okay: x = x * 2 - 1
              Okay: hypot2 = x * x + y * y
              Okay: c = (a + b) * (a - b)
              Okay: foo(bar, key='word', *args, **kwargs)
              Okay: alpha[:-i]
              
              E225: i=i+1
              E225: submitted +=1
              E225: x = x /2 - 1
              E225: z = x **y
              E225: z = 1and 1
              E226: c = (a+b) * (a-b)
              E226: hypot2 = x*x + y*y
              E227: c = a|b
              E228: msg = fmt%(errno, errmsg)

              Expected 2 blank lines, found 1
              Open

              def find_all_ordered_by_name_short():
              Severity: Minor
              Found in models/offer_proposition_group.py by pep8

              Separate top-level function and class definitions with two blank lines.

              Method definitions inside a class are separated by a single blank
              line.
              
              Extra blank lines may be used (sparingly) to separate groups of
              related functions.  Blank lines may be omitted between a bunch of
              related one-liners (e.g. a set of dummy implementations).
              
              Use blank lines in functions, sparingly, to indicate logical
              sections.
              
              Okay: def a():\n    pass\n\n\ndef b():\n    pass
              Okay: def a():\n    pass\n\n\nasync def b():\n    pass
              Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
              Okay: default = 1\nfoo = 1
              Okay: classify = 1\nfoo = 1
              
              E301: class Foo:\n    b = 0\n    def bar():\n        pass
              E302: def a():\n    pass\n\ndef b(n):\n    pass
              E302: def a():\n    pass\n\nasync def b(n):\n    pass
              E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
              E303: def a():\n\n\n\n    pass
              E304: @decorator\n\ndef a():\n    pass
              E305: def a():\n    pass\na()
              E306: def a():\n    def b():\n        pass\n    def c():\n        pass

              Continuation line over-indented for visual indent
              Open

                                 adviser_can_manage_proposition_dissertation(proposition_dissert, advis) or \
              Severity: Minor
              Found in perms.py by pep8

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Blank line at end of file
              Open

              Severity: Minor
              Found in models/dissertation_document_file.py by pep8

              Trailing blank lines are superfluous.

              Okay: spam(1)
              W391: spam(1)\n
              
              However the last line should end with a new line (warning W292).

              Expected 2 blank lines, found 1
              Open

              class OfferPropositionGroup(SerializableModel):
              Severity: Minor
              Found in models/offer_proposition_group.py by pep8

              Separate top-level function and class definitions with two blank lines.

              Method definitions inside a class are separated by a single blank
              line.
              
              Extra blank lines may be used (sparingly) to separate groups of
              related functions.  Blank lines may be omitted between a bunch of
              related one-liners (e.g. a set of dummy implementations).
              
              Use blank lines in functions, sparingly, to indicate logical
              sections.
              
              Okay: def a():\n    pass\n\n\ndef b():\n    pass
              Okay: def a():\n    pass\n\n\nasync def b():\n    pass
              Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
              Okay: default = 1\nfoo = 1
              Okay: classify = 1\nfoo = 1
              
              E301: class Foo:\n    b = 0\n    def bar():\n        pass
              E302: def a():\n    pass\n\ndef b(n):\n    pass
              E302: def a():\n    pass\n\nasync def b(n):\n    pass
              E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
              E303: def a():\n\n\n\n    pass
              E304: @decorator\n\ndef a():\n    pass
              E305: def a():\n    pass\na()
              E306: def a():\n    def b():\n        pass\n    def c():\n        pass

              Line too long (121 > 120 characters)
              Open

                  offer_props = OfferProposition.objects.filter(education_group__facultyadviser__adviser__person__user=request.user). \
              Severity: Minor
              Found in views/dissertation.py by pep8

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.
              Severity
              Category
              Status
              Source
              Language