uclouvain/osis-dissertation

View on GitHub

Showing 77 of 77 total issues

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

if status == DissertationRoleStatus.PROMOTEUR.name:
instance, created = DissertationRole.objects.update_or_create(
dissertation=diss,
status=status,
defaults={'adviser': adv})
Severity: Major
Found in forms.py and 1 other location - About 2 hrs to fix
forms.py on lines 261..267

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

if status == DissertationRoleStatus.PROMOTEUR.name:
instance, created = PropositionRole.objects.update_or_create(
proposition_dissertation=prop,
status=status,
defaults={'adviser': adv})
Severity: Major
Found in forms.py and 1 other location - About 2 hrs to fix
forms.py on lines 189..195

Function manager_dissertations_detail has a Cognitive Complexity of 19 (exceeds 8 allowed). Consider refactoring.
Open

def manager_dissertations_detail(request, pk):
dissert = dissertation.find_by_id(pk)
if dissert is None:
return redirect('manager_dissertations_list')
person = mdl.person.find_by_user(request.user)
Severity: Minor
Found in views/dissertation.py - About 2 hrs to fix

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

def add(status, adviser, dissertation):
if count_by_status_adviser_dissertation(status, adviser, dissertation) == 0:
role = DissertationRole(status=status,
adviser=adviser,
dissertation=dissertation)
Severity: Major
Found in models/dissertation_role.py and 1 other location - About 1 hr to fix
models/proposition_role.py on lines 84..87

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

def add(status, adviser, proposition_dissertation):
if count_by_status_adviser_proposition(status, adviser, proposition_dissertation) == 0:
role = PropositionRole(status=status, adviser=adviser, proposition_dissertation=proposition_dissertation)
role.save()
Severity: Major
Found in models/proposition_role.py and 1 other location - About 1 hr to fix
models/dissertation_role.py on lines 118..123

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

def get_context_data(self, **kwargs):
context = super(PropositionDissertationJuryNewView, self).get_context_data(**kwargs)
context['manager'] = adviser.is_manager(self.request.user)
return context
Severity: Major
Found in views/proposition_dissertation.py and 1 other location - About 1 hr to fix
views/dissertation.py on lines 988..991

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

def get_context_data(self, **kwargs):
context = super(DissertationJuryNewView, self).get_context_data(**kwargs)
context['manager'] = adviser.is_manager(self.request.user)
return context
Severity: Major
Found in views/dissertation.py and 1 other location - About 1 hr to fix
views/proposition_dissertation.py on lines 243..246

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

class Meta:
model = DissertationRole
fields = ('dissertation', 'status', 'adviser')
widgets = {'dissertation': forms.HiddenInput(),
'adviser': autocomplete.ModelSelect2(url='adviser-autocomplete', attrs={'style': 'width:100%'})}
Severity: Major
Found in forms.py and 1 other location - About 1 hr to fix
forms.py on lines 245..249

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

class Meta:
model = PropositionRole
fields = ('proposition_dissertation', 'status', 'adviser')
widgets = {'proposition_dissertation': forms.HiddenInput(),
'adviser': autocomplete.ModelSelect2(url='adviser-autocomplete', attrs={'style': 'width:100%'})}
Severity: Major
Found in forms.py and 1 other location - About 1 hr to fix
forms.py on lines 171..175

Identical blocks of code found in 3 locations. Consider refactoring.
Open

propositions_dissertations = PropositionDissertation.objects.filter(
offer_propositions__education_group__facultyadviser__adviser__person__user=request.user,
active=True
).filter(
Q(title__icontains=terms) |
Severity: Major
Found in views/proposition_dissertation.py and 2 other locations - About 1 hr to fix
views/proposition_dissertation.py on lines 350..358
views/proposition_dissertation.py on lines 532..541

Identical blocks of code found in 3 locations. Consider refactoring.
Open

propositions_dissertations = PropositionDissertation.objects.filter(
offer_propositions__education_group__facultyadviser__adviser__person__user=request.user,
active=True
).annotate(dissertations_count=Count(
'dissertations',
Severity: Major
Found in views/proposition_dissertation.py and 2 other locations - About 1 hr to fix
views/proposition_dissertation.py on lines 369..384
views/proposition_dissertation.py on lines 532..541

Identical blocks of code found in 3 locations. Consider refactoring.
Open

propositions_dissertations = PropositionDissertation.objects.filter(
active=True,
author=request.user.person.adviser
).annotate(
dissertations_count=Count(
Severity: Major
Found in views/proposition_dissertation.py and 2 other locations - About 1 hr to fix
views/proposition_dissertation.py on lines 350..358
views/proposition_dissertation.py on lines 369..384

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

if request.method == 'POST' and proposition_dissertation_file_form.is_valid():
proposition_dissertation_file_form.save()
return redirect('proposition_dissertation_detail', pk=proposition.pk)
Severity: Major
Found in views/proposition_dissertation.py and 1 other location - About 1 hr to fix
views/dissertation.py on lines 151..153

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

if request.method == 'POST' and dissertation_file_form.is_valid():
dissertation_file_form.save()
return redirect('manager_dissertations_detail', pk=dissert.pk)
Severity: Major
Found in views/dissertation.py and 1 other location - About 1 hr to fix
views/proposition_dissertation.py on lines 151..153

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

new_document = mdl_osis_common.document_file.DocumentFile(file_name=file_name,
file=file,
description=description,
storage_duration=storage_duration.FIVE_YEARS,
application_name='dissertation',
Severity: Major
Found in views/upload_dissertation_file.py and 1 other location - About 1 hr to fix
views/upload_proposition_file.py on lines 102..109

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

new_document = mdl_osis_common.document_file.DocumentFile(file_name=file_name,
file=file,
description=description,
storage_duration=storage_duration.FIVE_YEARS,
application_name='dissertation',
Severity: Major
Found in views/upload_proposition_file.py and 1 other location - About 1 hr to fix
views/upload_dissertation_file.py on lines 110..117

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

def __str__(self):
return u"%s %s" % (self.status if self.status else "",
self.adviser if self.adviser else "")
Severity: Major
Found in models/dissertation_role.py and 1 other location - About 1 hr to fix
models/proposition_role.py on lines 54..56

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

def __str__(self):
return u"%s %s" % (self.status if self.status else "",
self.adviser if self.adviser else "")
Severity: Major
Found in models/proposition_role.py and 1 other location - About 1 hr to fix
models/dissertation_role.py on lines 51..53

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

for document in documents:
document.delete()
old_document = mdl_osis_common.document_file.find_by_id(document.document_file.id)
old_document.delete()
Severity: Minor
Found in views/upload_proposition_file.py and 1 other location - About 55 mins to fix
views/upload_dissertation_file.py on lines 106..109

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

@property
def in_periode_visibility_proposition(self):
start = self.start_visibility_proposition
end = self.end_visibility_proposition
 
 
Severity: Major
Found in models/offer_proposition.py and 3 other locations - About 55 mins to fix
models/offer_proposition.py on lines 100..105
models/offer_proposition.py on lines 107..112
models/offer_proposition.py on lines 114..119
Severity
Category
Status
Source
Language