def mergeusers(modeladmin, request, queryset): if len(queryset) != 2: modeladmin.message_user(request, "Please choose exactly two users to merge.", level=messages.WARNING) return reverse('admin:index') # In most cases, we want to keep the user logged in recently, so we query accordingly primary, secondary = queryset.order_by('-date_joined') if len(tutor_courses(primary)) > 0 or len(tutor_courses(secondary)) > 0: # Since the user is deleted, this is more complicated (course ownership, gradings given etc.) modeladmin.message_user(request, "Merging course owners or tutors is not support at the moment.", level=messages.WARNING) return reverse('admin:index') return HttpResponseRedirect('%s?primary_id=%u&secondary_id=%s'%(reverse('mergeusers'), primary.pk, secondary.pk))
def queryset(self, request, qs): qs = qs.filter(assignment__course__in=tutor_courses(request.user)) if self.value() == 'tobegraded': return qs.filter(state__in=[Submission.GRADING_IN_PROGRESS, Submission.SUBMITTED_TESTED, Submission.TEST_FULL_FAILED, Submission.SUBMITTED]) elif self.value() == 'graded': return qs.filter(state__in=[Submission.GRADED]) else: return qs
def queryset(self, request, qs): qs = qs.filter(assignment__course__in=tutor_courses(request.user)) if self.value() == 'tobegraded': return qs.filter(state__in=[ Submission.GRADING_IN_PROGRESS, Submission.SUBMITTED_TESTED, Submission.TEST_FULL_FAILED, Submission.SUBMITTED ]) elif self.value() == 'graded': return qs.filter(state__in=[Submission.GRADED]) else: return qs
def queryset(self, request, qs): if self.value(): return qs.filter(assignment__course__exact=self.value()) else: return qs.filter(assignment__course__in=tutor_courses(request.user))
def lookups(self, request, model_admin): return ((c.pk, c.title) for c in tutor_courses(request.user))
def lookups(self, request, model_admin): tutor_assignments = Assignment.objects.filter(course__in=tutor_courses(request.user)) return ((ass.pk, ass.title) for ass in tutor_assignments)
def queryset(self, request, qs): if self.value(): return qs.filter(assignment__course__exact=self.value()) else: return qs.filter( assignment__course__in=tutor_courses(request.user))
def lookups(self, request, model_admin): tutor_assignments = Assignment.objects.filter( course__in=tutor_courses(request.user)) return ((ass.pk, ass.title) for ass in tutor_assignments)