Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _get_assignmentgroup_queryset(self):
return AssignmentGroup.objects.filter(parentnode=self.assignment)
def __get_last_feedbackset_ids_from_posted_group_ids(self, form):
"""
Get IDs of the last ``FeedbackSet``s on the groups that was posted.
Args:
form: form with group data.
Returns:
(list): of the posted groups last ``FeedbackSet`` IDs.
"""
group_ids = self.__get_selected_group_ids(form=form)
feedback_set_ids = core_models.AssignmentGroup.objects\
.filter(id__in=group_ids)\
.values_list('cached_data__last_feedbackset_id', flat=True)
return list(feedback_set_ids)
def get_queryset_for_role(self, role):
return AssignmentGroup.objects.filter(parentnode=role).select_related('parentnode')
def get_queryset(self, assignment, relatedexaminer):
queryset = coremodels.AssignmentGroup.objects \
.filter(parentnode_id=assignment.id) \
.filter_user_is_examiner(user=relatedexaminer.user)
return queryset
def __failed_from_group_queryset(self):
"""
Get all `AssignmentGroup`s that failed the selected earlier assignment.
"""
return AssignmentGroup.objects\
.filter(parentnode_id=self.from_assignment.id)\
.filter(cached_data__last_feedbackset__grading_published_datetime__isnull=False)\
.filter(cached_data__last_feedbackset__grading_points__lt=self.from_assignment.passing_grade_min_points)
Lower(Concat('relatedstudent__user__fullname',
'relatedstudent__user__shortname')))
examinerqueryset = Examiner.objects\
.select_related('relatedexaminer__user')\
.only(
'relatedexaminer',
'assignmentgroup',
'relatedexaminer__automatic_anonymous_id',
'relatedexaminer__user__shortname',
'relatedexaminer__active',
'relatedexaminer__user__fullname',
)\
.order_by(
Lower(Concat('relatedexaminer__user__fullname',
'relatedexaminer__user__shortname')))
queryset = coremodels.AssignmentGroup.objects\
.filter(parentnode=self.assignment)\
.prefetch_related(
models.Prefetch('candidates',
queryset=candidatequeryset))\
.prefetch_related(
models.Prefetch('examiners',
queryset=examinerqueryset))\
.annotate_with_is_waiting_for_feedback_count()\
.annotate_with_is_waiting_for_deliveries_count()\
.annotate_with_is_corrected_count() \
.annotate_with_number_of_private_groupcomments_from_user(user=self.request.user) \
.annotate_with_number_of_private_imageannotationcomments_from_user(user=self.request.user)\
.distinct() \
.select_related('cached_data__last_published_feedbackset',
'cached_data__last_feedbackset',
'cached_data__first_feedbackset',
def _get_groups(self, assignmentid):
"""
Get a list of group dictionaries.
"""
fields = ('id', 'name', 'is_open', 'feedback__grade', 'feedback__points',
'feedback__is_passing_grade', 'feedback__save_timestamp',
'num_deliveries')
qry = AssignmentGroup.objects.filter(parentnode=assignmentid)
qry = qry.select_related('feedback')
qry = qry.annotate(num_deliveries=Count('deadlines__deliveries'))
return qry.values(*fields)
def get_extra_preview_data(self, period):
assignment_count = Assignment.objects.filter(parentnode=period).count()
assignment_group_count = AssignmentGroup.objects.filter(parentnode__parentnode=period).count()
group_comments = GroupComment.objects.filter(feedback_set__group__parentnode__parentnode=period)
comment_file_count = CommentFile.objects\
.filter(comment_id__in=group_comments.values_list('id', flat=True)).count()
return '\t\t- Assignments: {}' \
'\n\t\t- Assignment groups: {}' \
'\n\t\t- Comments: {}' \
'\n\t\t- Files: {}'.format(
assignment_count,
assignment_group_count,
group_comments.count(),
comment_file_count
)
def get_assignment_groups_without_any_examiners(self):
return AssignmentGroup.objects.filter(parentnode=self.request.cradmin_role, examiners__isnull=True)