Beispiel #1
0
def show_components_submission_history(request, course_slug, activity_slug, userid=None):
    if userid is None:
        userid = request.GET.get('userid')
    course = get_object_or_404(CourseOffering, slug=course_slug)
    activity = get_object_or_404(course.activity_set,slug = activity_slug, deleted=False)
    staff = False

    if userid is None:
        # can always see your own submissions
        userid = request.user.username
    else:
        # specifying a userid: must be course staff
        if is_course_staff_by_slug(request, course.slug):
            staff = True
        else:
            return ForbiddenResponse(request)

    member = get_object_or_404(Member, find_member(userid), offering=course)
    if activity.group:
        messages.add_message(request, messages.INFO, "This is a group submission. This history is based on submissions from all your group members.")
        gms = GroupMember.objects.filter(student=member, confirmed=True, activity=activity)
        submissions = GroupSubmission.objects.filter(activity=activity, group__groupmember__in=gms)
    else:
        submissions = StudentSubmission.objects.filter(activity=activity, member=member)

    # get all submission components
    component_list = select_all_components(activity, include_deleted=staff)
    all_submitted_components = []
    for submission in submissions:
        c = get_submission_components(submission, activity, component_list)
        all_submitted_components.append({'sub':submission, 'comp':c})
    
    return render(request, "submission/submission_history_view.html",
        {"course":course, "activity":activity,'userid':userid,'submitted_components': all_submitted_components})
Beispiel #2
0
def show_components_submission_history(request, course_slug, activity_slug, userid=None):
    offering = get_object_or_404(CourseOffering, slug=course_slug)
    activity = get_object_or_404(offering.activity_set, slug=activity_slug, deleted=False)
    staff = False

    userid = userid or request.user.username
    member = get_object_or_404(Member, find_member(userid), offering=offering)
    submission_info = SubmissionInfo(student=member.person, activity=activity)
    submission_info.get_all_components()
    if not submission_info.accessible_by(request):
        return ForbiddenResponse(request)

    return render(request, "submission/submission_history_view.html",
        {"offering":offering, "activity":activity, 'userid':userid, 'submission_info': submission_info})
Beispiel #3
0
def show_components_submission_history(request, course_slug, activity_slug, userid=None):
    offering = get_object_or_404(CourseOffering, slug=course_slug)
    activity = get_object_or_404(offering.activity_set, slug=activity_slug, deleted=False)
    staff = False

    userid = userid or request.user.username
    member = get_object_or_404(Member, find_member(userid), offering=offering)
    submission_info = SubmissionInfo(student=member.person, activity=activity)
    submission_info.get_all_components()
    if not submission_info.accessible_by(request):
        return ForbiddenResponse(request)

    return render(request, "submission/submission_history_view.html",
        {"offering":offering, "activity":activity, 'userid':userid, 'submission_info': submission_info})
Beispiel #4
0
def take_ownership_and_mark(request, course_slug, activity_slug, userid=None, group_slug=None):
    course = get_object_or_404(CourseOffering, slug=course_slug)
    activity = get_object_or_404(course.activity_set, slug=activity_slug, deleted=False)

    # get the urlencode
    qDict = request.GET
    urlencode = ''
    if qDict.items():
        urlencode = '?' +  qDict.urlencode()

    if userid:
        student = get_object_or_404(Member, find_member(userid), role='STUD', offering=course)
        try:
            if activity.group is True:
                member = GroupMember.objects.filter(activity=activity, student=student, confirmed=True)
                submission = GroupSubmission.objects.filter(activity=activity, group=member[0].group).latest('created_at')
            else:
                submission = StudentSubmission.objects.filter(member=student, activity=activity).latest('created_at')
        except:
            submission = None
        response = HttpResponseRedirect(reverse(marking_student, args=[course_slug, activity_slug, userid]) + urlencode)
        #if it is taken by someone not me, show a confirm dialog
        if request.GET.get('confirm') == None:
            # check disabled until such time as it can be fixed
            if False and submission and submission.owner and submission.owner.person.userid != request.user.username:
                return _override_ownership_confirm(request, course, activity, userid, None, submission.owner.person, urlencode[1:])

        if submission:
            submission.set_owner(course, request.user.username)

        #LOG EVENT#
        if submission:
            str = (" of submission %i") % (submission.id)
        else:
            str = ""
        l = LogEntry(userid=request.user.username,
              description=(u"took ownership on %s" + str + " by %s") % (activity, userid),
              related_object=student)
        l.save()

        return response
    elif group_slug:
        try:
            submission = GroupSubmission.objects.filter(group__slug=group_slug).latest('created_at')
        except:
            submission = None
        response = HttpResponseRedirect(reverse(marking_group, args=[course_slug, activity_slug, group_slug]) + urlencode)
        #if it is taken by someone not me, show a confirm dialog
        if request.GET.get('confirm') == None:
            # check disabled until such time as it can be fixed
            if False and submission and submission.owner and submission.owner.person.userid != request.user.username:
                return _override_ownership_confirm(request, course, activity, None, group_slug, submission.owner.person, urlencode[1:])

        if submission:
            submission.set_owner(course, request.user.username)
        #LOG EVENT#
        groups = Group.objects.all().filter(courseoffering=course)
        group = get_object_or_404(groups, slug=group_slug)
        if submission:
            str = (" of submission %i by group %s") % (submission.id, submission.file_slug())
        else:
            str = ""
        l = LogEntry(userid=request.user.username,
          description=(u"took ownership on %s"+str+ " by group %s") % (activity, group.name),
          related_object=group)
        l.save()
        return response