def _submit(self): print 'submitting: %s' % self.message.subject stu_num, seq, ext = self.attachment_name_split student = Student.objects.get(student_num=stu_num) assignment = Assignment.objects.get(sequence=seq) self.student_name = student.name self.assignment_title = assignment.title try: submission = Submission.objects.get( student=student, assignment=assignment) submission.score = self._score(assignment) except Exception as e: submission = Submission() submission.student = student submission.assignment = assignment submission.score = self._score(assignment) submission.updated_at = self.message.parsed_date or datetime.now() submission.save() email = self._save_email(submission) try: self._save_files(email, ext) submission.save() except zipfile.BadZipfile as e: self.badattachments = True raise e except rarfile.BadRarFile as e: self.badattachments = True raise e self.submitted = True return True
def add(request): tip = None if request.POST: form = AddSubmissionForm(request.POST) if form.is_valid(): student = form.cleaned_data['student'] assignment = form.cleaned_data['assignment'] score = form.cleaned_data['score'] try: submission = Submission.objects.get( student=student, assignment=assignment) except Exception as e: submission = Submission(student=student, assignment=assignment) submission.score = score submission.updated_at = timezone.now() submission.save() tip = 'submit: %s - %s' % (student.name, assignment.title) else: form = AddSubmissionForm() tip = 'Add a new submission!' return render_to_response( 'add_submission.html', {'form':form,'title':'Submission::Add', 'tip':tip}, context_instance=RequestContext(request))