示例#1
0
    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
示例#2
0
文件: views.py 项目: shanzi/checkr
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))