示例#1
0
def setup(self):  
  user1 = User(username="******", email="*****@*****.**", first_name="john", last_name="smith")
  user2 = User(username="******", email="*****@*****.**", first_name="sally", last_name="smith")
  user1.save()
  user2.save()
  
  teacher1 = Teacher()
  teacher1.teacher = user1
  teacher1.save()
  teacher2 = Teacher()
  teacher2.teacher = user2
  teacher2.save()  

  course1 = Course(teacher=teacher1, name="Intro1", position=1)
  course2 = Course(teacher=teacher2, name="Advanced2", position=2)
  course1.save()
  course2.save()
  
  lesson1 = Lesson(course=course1, name="Lesson1", description="Intro1 - Lesson1", position=1)
  lesson2 = Lesson(course=course1, name="Lesson2", description="Intro1 - Lesson2", position=2)
  lesson1.save()
  lesson2.save()

  slide1 = Slide(lesson=lesson1, name="Slide1", content="<h1>Slide1</h1>", position=1, googleStyles=" ")
  slide2 = Slide(lesson=lesson1, name="Slide2", content="<h1>Slide2</h1>", position=2, googleStyles=" ")
  slide1.save()
  slide2.save()
示例#2
0
def create_teacher():
    name = input('输入讲师名字 >> ').strip()
    pas = input('输入讲师密码 >> ').strip()
    level = input('输入讲师级别 >> ').strip()
    teacher_list = [obj.name for obj in Teacher.get_obj_list()]
    if name in teacher_list:
        print('\033[31;1m讲师已经存在,不可重复创建\033[0m')
    else:
        teacher = Teacher(name, pas, level)
        teacher.save()
        print('\033[32;1m讲师[%s] 创建成功\033[0m' % name)
示例#3
0
 def test_teacher_insert(self):
   print "in test_teacher_insert"
   setup(self)    
   
   self.assertEqual(Teacher.objects.count(), 2)
   user3 = User(username="******", email="*****@*****.**", first_name="juan", last_name="garcia")
   user3.save()
   teacher3 = Teacher()
   teacher3.teacher = user3
   teacher3.save()
   self.assertEqual(Teacher.objects.count(), 3)
示例#4
0
    def save(self):
        user = Account(**self.data)
        user.save()
        if self.role.data == 1:
            stuusr = Student(stuid=self.username.data)
            stuusr.save()
        if self.role.data == 3:
            teausr = Teacher(teaid=self.username.data)
            teausr.save()

        return self.username.data, self.role.data
示例#5
0
def teacher_registration(request):
    jsonObj=json.loads(request.body)
    jsonObj=jsonObj['userInfo']

    if User.objects.filter(username = jsonObj['userName']).exists():
        print "Username already Exist."
        return HttpResponse(json.dumps({"validation":"Username is already exist.","status":False}), content_type="application/json")
    username = jsonObj['userName'].strip()
    teacherName = jsonObj['teacherName'].strip()

    password = jsonObj['password']
    confirmPassword = jsonObj['confirmPassword']
    if password != confirmPassword:
        print "Passwords Are not Matching"
        return HttpResponse(json.dumps({"validation":"Passwords are not Matched","status":False}), content_type="application/json")
    email = validateEmail(jsonObj['email'])
    if email != True:
        print "Email is already Exist."
        return HttpResponse(json.dumps({"validation":"Email is already exist.Try with another Email.","status":False}), content_type="application/json")
    else:
        email = jsonObj['email']

    mobileNo = jsonObj['mobileNo']
    mobileNo = int(mobileNo)
    mobileNo = validate_mobile(str(mobileNo))
    if mobileNo == False:
        return HttpResponse(json.dumps([{"validation": "This mobile number is already used..please try with another one.", "status": False}]), content_type = "application/json")
    else:
        workExperience = jsonObj['workExperience']
        areaOfInterestList = jsonObj['areaOfInterestList']
        qualification = jsonObj['qualification']
        userObj = User(username=userName,email=email,password=password)
        userObj.set_password(password)
        userObj.save()
        teacherObj = Teacher(user=userObj,
                            teacherName=teacherName,
                            qualification=qualification,
                            mobileNo=mobileNo,
                            workExperience=workExperience)
        teacherObj.save()

        for i in areaOfInterestList:
            subjectName = i.subjectName
            semester = i.semester
            courseName = i.courseName
            courseYear = i.courseYear
            subjectObj = Subject(subjectName=subjectName,
                                semester=semester,
                                courseName=courseName,
                                courseYear=courseYear)
            teacherObj.areaOfInterest.add(subjectObj)
            teacherObj.save()
        print "Registration Successful"
        return HttpResponse(json.dumps({"validation":"Registration Successful.","redirecturl":"#/login","status":True}), content_type="application/json")
示例#6
0
文件: views.py 项目: clllyw/Project
def registert(request):
    if request.POST:
        post = request.POST
        new_teacher = Teacher(
        Username = post["username"],
        Password= post["password"],
        Research_area = post["research_area"],
        Email = post["email"],
        Introduction  = post["introduction"]) 
        new_teacher.save()
    return render_to_response("register-t.html")    
示例#7
0
    def save(self):
        user = Account(**self.data)
        user.save()
        if self.role.data == 1:
            stuusr = Student(stuid=self.username.data)
            stuusr.save()
        if self.role.data == 3:
            teausr = Teacher(teaid=self.username.data)
            teausr.save()

        return self.username.data, self.role.data
示例#8
0
文件: tests.py 项目: trawick/edurepo
    def test_1(self):
        """Basic creation/update of Teacher"""
        email = '*****@*****.**'
        name1 = 'Jeff'
        name2 = 'Jeff T'
        t1 = Teacher(email=email, name=name1, user=self.u1)
        t1.save()
        t2 = Teacher(email=email, name=name2, user=self.u1)
        t2.save()

        obj = Teacher.objects.get(email=email)
        self.assertEquals(obj.name, name2)
示例#9
0
def teacher_register_view(request):
	if request.method == "POST":
		username = request.POST['username']
		if not User.objects.filter(username = username).exists():
			return render(request, 'reg/teacher_teacher.html', {'error':'Username or email already used, or passwords do not match'})
		u = User.objects.get(username = username)

		t = Teacher(user=u)
		t.save()
		return redirect('home')
	else:
		if Student.objects.filter(user=request.user).count() > 0 or Teacher.objects.filter(user=request.user).count() > 0 or Parent.objects.filter(user=request.user).count() > 0:
			return redirect('home')
		return render(request, 'reg/teacher_register.html')
def create(request):
    ID = request.GET["id"]
    d = RequestContext(request, {"number": ID})
    p = Yonghu.objects.filter(Number=ID)
    for i in p:
        if i.Leibie == "teacher":
            if request.POST:
                post = request.POST
                new_teacher = Teacher(
                    Name=post["Name"],
                    Profession=post["Profession"],
                    Information=post["Information"],
                    Foundation=post["Foundation"],
                    Research=post["Research"],
                    Tel=post["Tel"],
                    Work=post["Work"],
                    Education=post["Education"],
                    Position=post["Position"],
                    Rongyu=post["Rongyu"],
                    Jianzhi=post["Jianzhi"],
                    Rfield=post["Rfield"],
                    Number=Yonghu.objects.get(Number=ID),
                )
                new_teacher.save()
                c = RequestContext(request, {
                    "teacher": new_teacher,
                    "number": ID,
                })
                return render_to_response("sunyan4.html", c)
            else:
                return render_to_response("sunyan3.html")
        else:
            if request.POST:
                post = request.POST
                new_student = Student(
                    Name=post["Name"],
                    Profession=post["Profession"],
                    Tel=post["Tel"],
                    Xuenian=post["Xuenian"],
                    Number=Yonghu.objects.get(Number=ID),
                )
                new_student.save()
                c = RequestContext(request, {
                    "student": new_student,
                    "number": ID,
                })
                return render_to_response("sunyan1.html", c)
            else:
                return render_to_response("sunyan2.html")
示例#11
0
def AddTeacher(request):
    if request.method == 'POST':
        form = AddNameForm(request.POST)
        if form.is_valid():
            user = request.user
            if user.is_authenticated() and IsHead(user):
                thUser = User.objects.create_user(
                    username=form.cleaned_data['Name'],
                    password=form.cleaned_data['Name'])
                thUser.save()
                head = StudyHead.objects.get(ForUser=user)
                th = Teacher(ForHead=head, User=thUser)
                th.save()

    return HttpResponseRedirect("/accounts/")
示例#12
0
def teachers(request):
    if request.method == "POST":
        lform = NewProject(request.POST)
        if lform.is_valid():
            name = lform.cleaned_data['name']
            tr = Teacher()
            tr.name = name

            tr.save()

    teachers = Teacher.objects.all()

    return render(request, 'teachers.html', {
        'newproject': NewProject(),
        'teachers': teachers
    })
示例#13
0
文件: tests.py 项目: trawick/edurepo
    def setUp(self):
        if 'TEST_PROVIDER' in os.environ:
            self.good_provider = os.environ['TEST_PROVIDER']
        else:
            # This is the default server thread started by django test,
            # but it only works for this app.
            self.good_provider = 'http://*****:*****@example.com', 'Jeff T', [['MG4', '1st period math', TeacherClass()]]),
                             ('*****@*****.**', 'Jeff J', [['MG4', '5th period math', TeacherClass()]])]
        self.email1 = self.teacher_data[0][0]
        self.name1 = self.teacher_data[0][1]

        self.u1_password = '******'
        self.u1 = User.objects.create_user(username='******', email='*****@*****.**',
                                           password=self.u1_password)
        user = authenticate(username=self.u1.username, password=self.u1_password)
        assert user

        self.teachers = []
        for teacher_email, teacher_name, teacher_classes in self.teacher_data:
            t = Teacher(email=teacher_email, name=teacher_name, user=self.u1)
            t.full_clean()
            t.save()
            self.teachers.append(t)

            for i in range(len(teacher_classes)):
                course_id, class_name, _ = teacher_classes[i]
                c = TeacherClass(name=class_name,
                                 course_id=course_id,
                                 teacher=t,
                                 repo_provider=self.good_provider)
                c.full_clean()
                c.save()
                teacher_classes[i][2] = c

        # create a calendar entry for the 2nd teacher
        teacher_2 = self.teacher_data[1]
        teacher_2_class = teacher_2[2][0][2]
        e1 = Entry(teacher=self.teachers[1], teacher_class=teacher_2_class, date=datetime.date.today(),
                   objective='MG4-FACTMULT')
        e1.full_clean()
        e1.save()

        self.good_course = 'MG4'
        self.bad_course = 'xxx' + self.good_course + 'xxx'
示例#14
0
文件: views.py 项目: mrtbz/homework4
def addteacher(request):
    category = 'Teacher'
    if request.method == 'POST':
        form = TeacherForm(request.POST)
        if form.is_valid():
            s = Teacher(first_name=form.cleaned_data["first_name"],
                        last_name=form.cleaned_data["last_name"],
                        email=form.cleaned_data["email"],
                        phone=form.cleaned_data["phone"],
                        office_details=form.cleaned_data["office_details"]
                        )
            s.save()
            return HttpResponseRedirect('/all_teachers/')
    else:
        form = TeacherForm()

    return render_to_response('add.html', {'form': form, 'type': category},
                              RequestContext(request))
示例#15
0
    def create_teacher(jwt):
        body = request.get_json()
        print("body: ", body)
        name = body.get('name', '')
        try:
            teacher = Teacher(name=name)
            teacher.save()

            selection = Teacher.query.all()
            current_teachers = paginate_model(request, selection)

            return jsonify({
                'success': True,
                'total_teachers': len(selection),
                'teachers': current_teachers
            }), 200
        except Exception as e:
            abort(422)
示例#16
0
def create_teacher():
    try:
        name = input('请输入老师姓名:').strip()
        password = input('请输入登陆密码:').strip()
        level = input('请输入老师级别:').strip()
        teacher_name_list = [obj.name for obj in Teacher.get_all_obj_list()]
        if name in teacher_name_list:
            raise Exception('\033[43;1m老师[%s] 已存在,不可重复创建\033[0m' % name)
        obj = Teacher(name, password, level)
        obj.save()
        status = True
        error = ''
        data = '\033[33;1m老师[%s] 级别[%s] 时间[%s] 创建成功 \033[0m' % (
            obj.name, obj.level, obj.create_time)
    except Exception as e:
        status = False
        error = str(e)
        data = ''
    return {'status': status, 'error': error, 'data': data}
示例#17
0
def add_teacher(name, info=""):
    t = Teacher(name=name, info=info)
    t.save()
示例#18
0
def register():
    if request.form:
        login = request.form.get("login")
        password = request.form.get("password")
        name = request.form.get("name")
        surname = request.form.get("surname")
        position = request.form.get("position")

        if position == "Teacher":
            teacher = Teacher.auth(login, password)

            if teacher:
                return json.dumps({'resultCode': 1})

            email = request.form.get("email")
            phone = request.form.get("phone")
            qualification = request.form.get("qualification")

            teacher = Teacher(login, password, name, surname, qualification,
                              phone, email, False)
            teacher.save()

            session["auth"] = teacher.id

            return json.dumps({
                'resultCode': 0,
                'data': {
                    'userId': teacher.id,
                    'login': login,
                    'password': password,
                    'position': position,
                    'name': name,
                    'surname': surname,
                    'email ': email,
                    'phone ': phone,
                    'qualification ': qualification
                }
            })

        elif position == "Pupil":
            pupil = Pupil.auth(login, password)

            print(pupil)

            if pupil:
                return json.dumps({'resultCode': 1})

            clas = request.form.get('clas')
            pupil = Pupil(name, surname, login, password, clas)
            pupil.save()

            school_class = SchoolClass.get_class_by_name(clas)
            school_class.add_student(pupil.id)

            session["auth"] = pupil.id

            return json.dumps({
                'resultCode': 0,
                'data': {
                    'userId': pupil.id,
                    'login': login,
                    'password': password,
                    'position': position,
                    'name': name,
                    'surname': surname,
                    'clas': clas
                }
            })

        elif position == "Parent":
            parent = Parent.auth(login, password)

            if parent:
                return json.dumps({'resultCode': 1})

            child_id = request.form.get("child_id")
            parent = Parent(name, surname, child_id, login, password)
            parent.save()

            session["auth"] = parent.id

            return json.dumps({
                'resultCode': 0,
                'data': {
                    'userId': parent.id,
                    'login': login,
                    'password': password,
                    'position': position,
                    'name': name,
                    'surname': surname,
                    'child_id': child_id
                }
            })

        else:
            return json.dumps({'resultCode': 1})
示例#19
0
def save_information():
    t1 = Teacher(1, 'Helen', 'Paik', [Student(1, "Tom", " Ainsley")])
    t2 = Teacher(2, 'John', 'Hardy')
    connect('teacher')  # add teachers to the database
    t1.save()
    t2.save()
示例#20
0
	errorMsg='无法在%s %s找到%s,%s' % (province_name,city_name,district_name,e)
	return InvalidUrl(errorMsg)
    try:
	school = district.filter(school__name=out['school_name'])
    except DoesNotExist,e:
	errorMsg = "can not find school %s in %s" % (out['school_name'],out['district'])
	return InvalidUrl(errorMsg)

    try:
	class_id = school.filter(class__name=out['class_name'])
    except DoesNotExist,e:
	errorMsg = "can not find class %s in school %s" % (out['class_name'],out['school_name'])
	return InvalidUrl(errorMsg)

    tea = Teacher(name=out['name'],telephone=out['telephone'],email = out['email'],status='NE') 
    tea.save() 
    class_id.add(tea)
    class_id.save()
    tea.status='EI'
    #发送url给学校管理员的邮箱对新注册的老师进行审核
    url_yes=''
    url_no=''
    mail_title = '幼儿园教师注册审核'
    mail_content = '教师%s 头像预留正在注册为你的学校%s的教师,请点击下面链接确认是否同意:\n\t同意链接:%s,拒绝链接:%s' % (out['name'],out['school_name'],url_yes,url_no)
    from_mail = '*****@*****.**'
    to_mail = ['*****@*****.**']
    #这里需要考虑发送邮件失败的情况,目前暂时未处理
    send_mail(mail_title,mail_content,from_mail,to_mail,fail_silently = False)
    
    tea.status='EI'
    tea.save() 
示例#21
0
def import_teacher(request, filter_id):
    '''
        Импорт учителей.
    '''
    render = {}
    if request.user.type == 'EduAdmin':
        if request.user.school.id != int(filter_id):
            raise Http404
    render['school'] = school = get_object_or_404(School, id = filter_id)

    if request.method == 'GET':
        render['form'] = form = ImportForm()
    else:
        render['form'] = form = ImportForm(request.POST, request.FILES)
        if form.is_valid():
            render['errors'] = errors = []
            teachers = []
            rows = csv.reader(form.cleaned_data['file'], delimiter = ';')
            i = 0
            for row in rows:
                i += 1
                if len(row) < 7:
                    errors.append({'line': i, 'column': 0, 'error': u'неверное количество столбцов'})
                    continue
                try:
                    row = ";".join(row)
                    row = row.decode('cp1251')
                except UnicodeError:
                    errors.append({'line': i, 'column': 0,
                                   'error': u'некорректное значение (невозможно определить кодировку)'})
                    continue
                row = row.split(';')
                if len(row[0]) < 2 or len(row[1]) < 2 or len(row[2]) < 2:
                    errors.append({'line': i, 'column': 0, 'error': u'сликшом короткое ФИО'})
                    continue
                try:
                    validate_email(row[3])
                except ValidationError:
                    errors.append({'line': i, 'column': 4, 'error': u'email указан неверно'})
                    continue
                teacher = Teacher(school = school, last_name = row[0],
                                  first_name = row[1], middle_name = row[2], email = row[3])
                teacher._subjects = []
                t = [j.strip() for j in row[4].split(',')]
                for sbj in t:
                    try: teacher._subjects.append(Subject.objects.get(name = sbj, school = school))
                    except Subject.DoesNotExist: errors.append({'line': i, 'column': 5,
                                                                'error': u'предмет "%s" не найден' % sbj})
                teacher._grades = []
                t = [j.strip() for j in row[5].split(',')]
                for grade in t:
                    if not get_grade(grade):
                        errors.append({'line': i, 'column': 5, 'error': u'класс "%s" не найден' % grade})
                        continue
                    try: teacher._grades.append(Grade.objects.get(school = school, **get_grade(grade)))
                    except Grade.DoesNotExist: errors.append({'line': i, 'column': 5,
                                                              'error': u'класс "%s" не найден' % grade})
                if row[6]:
                    if not get_grade(row[6]):
                        errors.append({'line': i, 'column': 6, 'error': u'класс "%s" не найден' % row[6]})
                        continue
                    try:
                        teacher.grade = Grade.objects.get(school = school, **get_grade(row[6]))
                    except Grade.DoesNotExist:
                        errors.append({'line': i, 'column': 6, 'error': u'класс "%s" не найден' % row[6]})
                        continue
                teachers.append(teacher)

            if len(errors) == 0:
                for teacher in teachers: 
                    teacher.save()
                    [teacher.subjects.add(sbj) for sbj in teacher._subjects]
                    [teacher.grades.add(sbj) for sbj in teacher._grades]
                    teacher.save()
                messages.success(request, u'Преподаватели импортированы')
                return HttpResponseRedirect('..')
    return render_to_response('~userextended/teacherImport.html', render, context_instance = RequestContext(request))
示例#22
0
def jsonTeacherCrud(request):

    # Display/Filter is only on GET
    if request.is_ajax() and request.method == 'GET':
        id = request.GET.get('id', None)
        action = request.GET.get('action', None)

        if (action == "filter"):
            dictData = Teacher.objects.filter(id=id).values()
        else:
            dictData = Teacher.objects.all().values()

        #print dictData
        jsonData = json.dumps(list(dictData))
        return HttpResponse(jsonData, content_type='application/json')

    # CRUD is only on POST
    if request.is_ajax() and request.method == 'POST':
        action = request.POST.get('action', None)

        #ADD
        if (action == "add"):
            codeAfm = request.POST.get('codeAfm', None)
            codeGrad = request.POST.get('codeGrad', None)
            codeSpec = request.POST.get('codeSpec', None)
            surname = request.POST.get('surname', None)
            name = request.POST.get('name', None)
            phoneMob = request.POST.get('phoneMob', None)
            phoneHom = request.POST.get('phoneHom', None)

            try:
                record = Teacher( codeAfm = codeAfm, codeGrad = codeGrad , codeSpec = codeSpec,\
                        surname = surname, name=name,\
                        phoneMob=phoneMob, phoneHom=phoneHom, )
                record.save()
                msg = 'Επιτυχής εισαγωγή εγγραφής!'
                helperMessageLog(request, msg, tag='info')
                #messages.success(request, msg, fail_silently=True)
            except DatabaseError:
                transaction.rollback()
                msg = 'Αδυναμία εισαγωγής εγγραφής.'
                helperMessageLog(request, msg, tag='error')

            return HttpResponse(json.dumps({'msg': msg}),
                                content_type='application/json')

        #DELETE
        if (action == "delete"):
            id = request.POST.get('id', None)
            record = Teacher.objects.filter(id=id)
            try:
                record.delete()
                msg = 'Επιτυχής διαγραφή εγγραφής!'
                helperMessageLog(request, msg, tag='info')
            except DatabaseError:
                transaction.rollback()
                msg = 'Αδυναμία διαγραφής εγγραφής.'
                helperMessageLog(request, msg, tag='error')

            return HttpResponse(json.dumps({'msg': msg}),
                                content_type='application/json')
            #return HttpResponse(result, content_type='application/json')

        #UPDATE
        elif (action == "update"):
            id = request.POST.get('id', None)
            codeAfm = request.POST.get('codeAfm', None)
            codeGrad = request.POST.get('codeGrad', None)
            codeSpec = request.POST.get('codeSpec', None)
            surname = request.POST.get('surname', None)
            name = request.POST.get('name', None)
            phoneMob = request.POST.get('phoneMob', None)
            phoneHom = request.POST.get('phoneHom', None)

            try:
                record = Teacher.objects.filter(id=id)
                record.update( codeAfm = codeAfm, codeGrad = codeGrad , codeSpec = codeSpec,surname = surname, name=name,\
                        phoneMob=phoneMob, phoneHom=phoneHom)
                msg = 'Επιτυχής τροποποίηση εγγραφής!'
                helperMessageLog(request, msg, tag='info')
            except DatabaseError:
                transaction.rollback()
                msg = 'Αδυναμία τροποποίησης εγγραφής.'
                helperMessageLog(request, msg, tag='error')

            dictData = record.values()
            #print dictData
            jsonData = json.dumps(list(dictData))
            return HttpResponse(jsonData, content_type='application/json')

    # DEFAULT on View
    else:
        dictData = Teacher.objects.all().values()
        jsonData = json.dumps(list(dictData))
        #print jsonData
        return HttpResponse(jsonData, content_type='application/json')
示例#23
0
def import_teacher(request, filter_id):
    '''
        Импорт учителей.
    '''
    render = {}
    if request.user.type == 'EduAdmin':
        if request.user.school.id != int(filter_id):
            raise Http404
    render['school'] = school = get_object_or_404(School, id=filter_id)

    if request.method == 'GET':
        render['form'] = form = ImportForm()
    else:
        render['form'] = form = ImportForm(request.POST, request.FILES)
        if form.is_valid():

            curatorship_grades_ids = [{
                'number': teacher.grade.number,
                'long_name': teacher.grade.long_name
            } for teacher in Teacher.objects.filter(school=school)
                                      if teacher.grade]

            render['errors'] = errors = []
            teachers = []
            rows = csv.reader(form.cleaned_data['file'], delimiter=';')
            i = 0
            try:
                for row in rows:
                    i += 1
                    if len(row) < 7:
                        errors.append({
                            'line': i,
                            'column': 0,
                            'error': u'неверное количество столбцов'
                        })
                        continue
                    try:
                        row = ";".join(row)
                        row = row.decode('cp1251')
                    except UnicodeError:
                        errors.append({
                            'line':
                            i,
                            'column':
                            0,
                            'error':
                            u'некорректное значение (невозможно определить кодировку)'
                        })
                        continue
                    row = row.split(';')
                    if len(row[0]) < 2 or len(row[1]) < 2 or len(row[2]) < 2:
                        errors.append({
                            'line': i,
                            'column': 0,
                            'error': u'сликшом короткое ФИО'
                        })
                        continue
                    try:
                        validate_email(row[3])
                    except ValidationError:
                        errors.append({
                            'line': i,
                            'column': 4,
                            'error': u'email указан неверно'
                        })
                        continue
                    teacher = Teacher(school=school,
                                      last_name=row[0],
                                      first_name=row[1],
                                      middle_name=row[2],
                                      email=row[3])
                    teacher._subjects = []
                    t = [j.strip() for j in row[4].split(',')]
                    for sbj in t:
                        try:
                            teacher._subjects.append(
                                Subject.objects.get(name=sbj, school=school))
                        except Subject.DoesNotExist:
                            errors.append({
                                'line':
                                i,
                                'column':
                                5,
                                'error':
                                u'предмет "%s" не найден' % sbj
                            })
                    teacher._grades = []
                    t = [j.strip() for j in row[5].split(',')]
                    for grade in t:
                        if not get_grade(grade):
                            errors.append({
                                'line':
                                i,
                                'column':
                                5,
                                'error':
                                u'класс "%s" не найден' % grade
                            })
                            continue
                        try:
                            teacher._grades.append(
                                Grade.objects.get(school=school,
                                                  **get_grade(grade)))
                        except Grade.DoesNotExist:
                            errors.append({
                                'line':
                                i,
                                'column':
                                5,
                                'error':
                                u'класс "%s" не найден' % grade
                            })
                    if row[6]:
                        if not get_grade(row[6]):
                            errors.append({
                                'line':
                                i,
                                'column':
                                6,
                                'error':
                                u'класс "%s" не найден' % row[6]
                            })
                            continue
                        if get_grade(row[6]) in curatorship_grades_ids:
                            errors.append({
                                'line':
                                i,
                                'column':
                                6,
                                'error':
                                u'Классное руководство для "%s" \
                            уже присвоено другому учителю' % row[6]
                            })
                            continue
                        try:
                            teacher.grade = Grade.objects.get(school=school,
                                                              **get_grade(
                                                                  row[6]))
                        except Grade.DoesNotExist:
                            errors.append({
                                'line':
                                i,
                                'column':
                                6,
                                'error':
                                u'класс "%s" не найден' % row[6]
                            })
                            continue
                    teachers.append(teacher)
                    curatorship_grades_ids.append(get_grade(row[6]))

            except (csv.Error):
                pass

            if len(errors) == 0:
                for teacher in teachers:
                    teacher.save()
                    [teacher.subjects.add(sbj) for sbj in teacher._subjects]
                    [teacher.grades.add(sbj) for sbj in teacher._grades]
                    teacher.save()
                messages.success(request, u'Преподаватели импортированы')
                return HttpResponseRedirect('..')
    return render_to_response('~userextended/teacherImport.html',
                              render,
                              context_instance=RequestContext(request))