Esempio n. 1
0
    def save(self):
        exam = self.exam
        if not exam:
            exam = Exam()

        data = self.cleaned_data    

        exam.publishable = False
        exam.paper_only = False

        fields = ['has_solutions', 'version', 'number', 'exam_type', 'semester']
        if self.request.user.is_superuser:
            fields += ["publishable", "complete"]

        for field in fields:
            setattr(exam, field, data[field])

        if exam.semester == INITIAL_SEMESTER_VALUE:
            exam.semester = None

        exam.comment = exam.comment or ''
        if exam.comment.find('FILENAME:') == -1:
            exam.comment += "\nFILENAME: '%s'\n" % data['exam_file'].name

        if not exam.submitter and not self.request.user.is_anonymous():
            exam.submitter = self.request.user

        if data.has_key('course'):
            exam.course = data['course']
        if data.has_key("exam_file_extension"):
            exam.file.save(exam.get_exam_filename() + data["exam_file_extension"], ContentFile(data['exam_file'].read()))
        else:
            exam.save()
        #instructors = [instr for instr in [data.get(field, None) for field in ("instructor1", "instructor2")] if instr is not None]
	
        #instrs = [data.get(field, None) for field in ("instructor1", "instructor2")]
        #instructors = filter(lamdba x: x is not None, instrs)

        instructors = []
        if 'instructor1' in data:
                instructors.append(data['instructor1'])
        if 'instructor2' in data:
                instructors.append(data['instructor2'])

        if instructors:
            exam.instructors = instructors
                
        return exam