def testCreateSubmittedAssignmentNotification(self): notification = Notification.create_submitted_assignment_notification( self.course, self.student1, self.assignment ) self.assertTrue(self.instructor.notifications.filter(pk=notification.pk).exists())
def testCreateSubmittedAssignmentNotification(self): notification = Notification.create_submitted_assignment_notification( self.course, self.student1, self.assignment) self.assertTrue( self.instructor.notifications.filter(pk=notification.pk).exists())
def student_view_assignment(request, course_name, assignment_name): try: assignment = request.assignment except AttributeError: assignment_name = assignment_name.replace("_", " ") assignment = get_object_or_404(Assignment, name=assignment_name, course=request.course) #request.user.notifications.filter(assignment=assignment, resource__isnull=True, is_new=True).update(is_new=False) resources = assignment.resources.all() """ for resource in resources: resource.notification_count = resource.get_notification_count(request.user) """ try: submission = request.user.submissions.select_related("assignment").get( assignment=assignment) except AssignmentSubmission.DoesNotExist: if request.user.is_superuser or request.user.is_staff: submission = AssignmentSubmission(assignment=assignment, user=request.user) else: submission = request.user.submissions.create(assignment=assignment) quiz = None quiz_submission = None if assignment.type == 'o': quiz, created = OnlineQuiz.objects.get_or_create(assignment=assignment) quiz_submission, created = QuizSubmission.objects.get_or_create( quiz=quiz, submission=submission) quiz_submission._set_cached_quiz(quiz) try: scheme = request.course.get_grading_scheme() submission.grade = scheme.grade_for_percent(100 * submission.get_grade()) except: pass due_date_expired = assignment.due_date < datetime.datetime.now() submission_errors = {} if request.method == "POST": if assignment.type == 's' and not due_date_expired: submission_errors = save_files_for_submission( request.FILES.items(), submission) submission.text = request.POST['submission-text'] if submission_errors == {}: submission.status = 0 #submitted status messages.success(request, "Your response was submitted successfully.") if not (request.user.is_superuser or request.user.is_staff): submission.save() Notification.create_submitted_assignment_notification( request.course, request.user, assignment) files = submission.files.all() for file in files: file._set_cached_course(request.course) #for performance return render_with_context( request, "assignments/student/view_assignment.html", { 'assignment': assignment, 'submission': submission, 'files': files, 'errors': submission_errors, 'due_date_expired': due_date_expired, 'resources': resources, 'MAX_UPLOAD_FILE_SIZE': settings.MAX_UPLOAD_FILE_SIZE, 'quiz': quiz, 'quiz_submission': quiz_submission })
def student_view_assignment(request, course_name, assignment_name): try: assignment = request.assignment except AttributeError: assignment_name = assignment_name.replace("_", " ") assignment = get_object_or_404(Assignment, name=assignment_name, course=request.course) #request.user.notifications.filter(assignment=assignment, resource__isnull=True, is_new=True).update(is_new=False) resources = assignment.resources.all() """ for resource in resources: resource.notification_count = resource.get_notification_count(request.user) """ try: submission = request.user.submissions.select_related("assignment").get(assignment=assignment) except AssignmentSubmission.DoesNotExist: if request.user.is_superuser or request.user.is_staff: submission = AssignmentSubmission(assignment=assignment, user=request.user) else: submission = request.user.submissions.create(assignment=assignment) quiz = None quiz_submission = None if assignment.type == 'o': quiz, created = OnlineQuiz.objects.get_or_create(assignment=assignment) quiz_submission, created = QuizSubmission.objects.get_or_create(quiz=quiz, submission=submission) quiz_submission._set_cached_quiz(quiz) try: scheme = request.course.get_grading_scheme() submission.grade = scheme.grade_for_percent(100 * submission.get_grade()) except: pass due_date_expired = assignment.due_date < datetime.datetime.now() submission_errors = {} if request.method == "POST": if assignment.type == 's' and not due_date_expired: submission_errors = save_files_for_submission(request.FILES.items(), submission) submission.text = request.POST['submission-text'] if submission_errors == {}: submission.status = 0 #submitted status messages.success(request, "Your response was submitted successfully.") if not (request.user.is_superuser or request.user.is_staff): submission.save() Notification.create_submitted_assignment_notification(request.course, request.user, assignment) files = submission.files.all() for file in files: file._set_cached_course(request.course) #for performance return render_with_context(request, "assignments/student/view_assignment.html", { 'assignment': assignment, 'submission': submission, 'files': files, 'errors': submission_errors, 'due_date_expired': due_date_expired, 'resources': resources, 'MAX_UPLOAD_FILE_SIZE': settings.MAX_UPLOAD_FILE_SIZE, 'quiz': quiz, 'quiz_submission': quiz_submission })