Code Duplication    Length = 17-18 lines in 2 locations

web/opensubmit/admin/submission.py 2 locations

@@ 67-84 (lines=18) @@
64
        else:
65
            return qs
66
67
68
class SubmissionAssignmentFilter(SimpleListFilter):
69
70
    ''' This custom filter allows to filter the submissions according to their
71
        assignment. Only submissions from courses were the user is tutor are
72
        considered.
73
    '''
74
    title = _('Assignment')
75
    parameter_name = 'assignmentfilter'
76
77
    def lookups(self, request, model_admin):
78
        tutor_assignments = Assignment.objects.filter(course__in=list(request.user.profile.tutor_courses())).order_by('title')
79
        return ((ass.pk, ass.title) for ass in tutor_assignments)
80
81
    def queryset(self, request, qs):
82
        if self.value():
83
            return qs.filter(assignment__exact=self.value())
84
        else:
85
            return qs.filter(assignment__course__in=list(request.user.profile.tutor_courses()))
86
87
@@ 87-103 (lines=17) @@
84
        else:
85
            return qs.filter(assignment__course__in=list(request.user.profile.tutor_courses()))
86
87
88
class SubmissionCourseFilter(SimpleListFilter):
89
90
    ''' This custom filter allows to filter the submissions according to
91
        the course they belong to. Additionally, only submission that the
92
        user is a tutor for are returned in any of the filter settings.
93
    '''
94
    title = _('Course')
95
    parameter_name = 'coursefilter'
96
97
    def lookups(self, request, model_admin):
98
        return ((c.pk, c.title) for c in list(request.user.profile.tutor_courses()))
99
100
    def queryset(self, request, qs):
101
        if self.value():
102
            return qs.filter(assignment__course__exact=self.value())
103
        else:
104
            return qs.filter(assignment__course__in=list(request.user.profile.tutor_courses()))
105
106
class SubmissionAdmin(ModelAdmin):