Exemplo n.º 1
0
def set_material_apply(desc,doc,user,sup_school):
#    try:
    apply = json.loads(desc)
    applies = MaterialApply.objects.filter(document=doc)
    applies.delete()
    for i in apply:
        supply,created = Supply.objects.get_or_create(name=apply[i]['name'],category_id=apply[i]['cat'],parent_id=0,school=sup_school)
        if created:
            supply.creator = user
            supply.is_show = False
            supply.save()
        apl = MaterialApply(supply=supply,document=doc,num=apply[i]['num'],school=sup_school)
        apl.save()
Exemplo n.º 2
0
def write_document(request,template_name="supply/document_form.html"):
    """撰写公文"""
    ctx = {}
    school = get_schools(request.user)[0]
    teachers = Teacher.objects.filter(school=school)
    categorys = SupplyCategory.objects.filter(school=school)
    schools = get_schools(request.user)
    if request.method == 'POST':
        form = MaterialForm(request.POST)
        receiver_pks = request.POST.getlist("to")
        teacher_list = User.objects.filter(pk__in=receiver_pks)
        approvaler_pk = request.POST.get("approvaler",'')
        sid = request.POST.get('sid','')
        if sid:
            sup_school = get_object_or_404(School,id=sid)
        else:
            sup_school = school
        try:
            approvaler = User.objects.get(pk=approvaler_pk)
        except:
            approvaler = None
        ctx.update({'teacher_list':teacher_list,'approvaler':approvaler})    

        if form.is_valid():
            doc = form.save(commit=False)
            doc.school = school
            doc.sender = request.user
            doc.save()
            print doc.type,'tttttttttttttttttttttttt'
             
            #发布对象
            for t in teacher_list:
                receiver = MaterialReceiver()
                receiver.user = t
                receiver.document = doc
                receiver.save()
                       
            #送审
            approvaler_pk = request.POST.get("approvaler",0)
            if doc.is_submit and approvaler_pk:
                approvaler = User.objects.get(pk=approvaler_pk)
                appr = MaterialApproval()
                appr.sender = doc.sender
                appr.document = doc
                appr.remark = doc.remark
                appr.approvaler = approvaler
                appr.send_time = datetime.datetime.now()
                appr.save()
                doc.remark = ''
                doc.save()
                #发送短信
                if doc.send_msg and doc.msg_body:
                    msg = Sms()
                    msg.sender = doc.sender
                    msg.receiver = approvaler
                    msg.mobile = approvaler.get_profile().mobile
                    msg.type_id = 7
                    msg.content = str(doc.msg_body) + '/' + str(doc.sender.get_profile().chinese_name_or_username()) 
                    msg.save()
                
            desc = request.POST.get("applies")
            apply = json.loads(desc)
            for i in apply:
                supply,created = Supply.objects.get_or_create(name=apply[i]['name'],category_id=apply[i]['cat'],parent_id=0,school=sup_school)
                if created:
                    supply.creator = request.user
                    supply.is_show = False
                    supply.save()
                apl = MaterialApply(supply=supply,document=doc,num=apply[i]['num'],school=sup_school)
                apl.save()
                    
            messages.success(request, u"撰写公文成功") 
            if doc.status == 1:
                return redirect('oa_supply_personal_document')
            else:
                return redirect('oa_supply_issued_document')
    else:
        form = MaterialForm()
    
    ctx.update({'form':form,'teachers':teachers,'schools':schools,'categorys':categorys})
    return render(request, template_name, ctx)