示例#1
0
def create(request, template_name="oa/teacher_form.html"):

    roles = Role.objects.all()
    if request.method == 'POST':
        form1 = TeacherUserForm(request.POST)
        is_auto = request.POST.get('signup')
        is_valid = form1.is_valid()
        form1_error_list = form1.errors.items()
        if is_auto == "auto":
            form1_error_list = []
            is_valid = True
        print is_valid,'v11111111111'
        form2 = UserProfileForm(request.POST, request.FILES)
        print form2.errors,'2222222'
        form3 = PostJobForm(request.POST,user=request.user)
        print form3.errors,'3333333'
        
        error_list = form1_error_list + form2.errors.items() + form3.errors.items()
        if request.is_ajax():
            return helpers.ajax_validate_form_error_list(error_list)
        
        if is_valid and form2.is_valid() and form3.is_valid():
            #新建用户
            teacher = helpers.create_teacher(form1, request)
            print teacher,'vvvvvvvv'
            
            role_pks = request.POST.getlist('role_list')
            role_list = [r for r in Role.objects.filter(pk__in=role_pks)]
            if teacher.id:
                for role in role_list:
                    teacher.user.roles.add(role)
                form2 = UserProfileForm(request.POST, request.FILES, instance=teacher.user.get_profile())
                form2.save()
                form3 = PostJobForm(request.POST,user=request.user)
                postjob = form3.save(commit=False)
                postjob.teacher = teacher
                postjob.save()
                messages.success(request, u"教师 %s 已成功创建" % teacher.name)
                return redirect("oa_teacher_list")
    else:
        form1 = TeacherUserForm()
        form2 = UserProfileForm()
        form3 = PostJobForm(user=request.user)
#         form4 = TeachernameForm()
    ctx = {'form1': form1,'form2': form2,'form3': form3,'roles':roles}
    ctx.update(csrf(request))
    return render(request, template_name, ctx)
示例#2
0
def import_view(request):
    """
    """
    # 获得导入数据(文件)
    schools = helpers.get_schools(request.user)
    template_name="oa/teacher_import.html"
    roles_xls = request.FILES.get('teachers')
    
    try:
        school_id = request.POST['school']
        school = get_object_or_404(School, pk=school_id)
    except:
        school = schools[0]

    imported_num = 0
    cache_key = "import_teacher_" + str(school.id) + '_' + str(request.user.id)
    if request.method == 'POST':
        data = cache.get(cache_key)
        if not data:
            messages.error(request, "您还没有上传文件")
            return render(request, template_name, {'schools':schools,'school':school,'file_error':"您还没有上传文件"})
        
        for d in data:
            try:
                teacher = Teacher.objects.get(name=d['name'],school=school)
                continue
            except:
                teacher = helpers.create_teacher(None, request, school,batch=True)
                teacher.name = d['name']
                teacher.save()
                profile = teacher.user.profile
                profile.mobile = d['mobile']
                profile.save()
                imported_num = imported_num + 1
        
    if imported_num:
        msg = u"成功导入 %(imported_num)s 个  %(role)s" % {'imported_num': imported_num, 'role': '职员'}
        cache.delete(cache_key)
        messages.success(request, msg)
    return render(request, template_name, {'schools':schools,'school':school})