def GetProcList(): scheme_db = server['scheme'] db = server['proc'] map_fun = '''function(doc) { emit(doc.proc_num,[doc._id,doc.proc_name,doc.status,doc.create,doc.scheme_link,doc.next_step,doc.author_name]); }''' data = [] field = DateTimeField() for row in db.query(map_fun): if row.value[4] == '': scheme = '' step = '' user = {'person':'','phone':''} else: doc = scheme_db[row.value[4]] scheme = doc['scheme_name'] user = NextPerson(row.value[0]) if row.value[5] == 0: next_step = 'Start' elif row.value[5] == 1000: next_step = 'End' else: next_step = row.value[5] author = row.value[6].split()[1]+' '+row.value[6].split()[0] data.append([row.key,row.value[0],row.value[1],row.value[2],field._to_python(row.value[3]),scheme,next_step,user['person']+' ('+user['phone']+')',author]) data.reverse() return data
def GetList(search): db = server['client'] map_fun = '''function(doc) { if(doc._id != 'c83695ba59310ae945108de54b05def1') emit(doc._id,[doc.name,doc.address,doc.status,doc.creator_name,doc.creator_phone,doc.create,doc.manager_name,doc.manager_phone,doc.priority]); }''' data = [] field = DateTimeField() for row in db.query(map_fun): if search == '': data.append([ row.key, row.value[0], row.value[1], row.value[2], row.value[3].split()[1]+' '+row.value[3].split()[0], row.value[4], field._to_python(row.value[5]), row.value[6], row.value[7], row.value[8] ]) # elif Compare(row.value[0],search) or Compare(row.value[1],search) or Compare(row.value[2],search) or Compare(row.value[3],search) or Compare(row.value[4],search) or Compare(row.value[6],search) or Compare(row.value[7],search) or Compare(row.value[8],search): elif Compare(row.value[0],search) or Compare(row.value[1],search) or Compare(row.value[2],search) or Compare(row.value[3],search) or Compare(row.value[4],search) or Compare(row.value[8],search): data.append([ row.key, row.value[0], row.value[1], row.value[2], row.value[3].split()[1]+' '+row.value[3].split()[0], row.value[4], field._to_python(row.value[5]), row.value[6], row.value[7], row.value[8] ]) data = sorted(data,key=itemgetter(6)) data.reverse() return data
def ListContract(search): db = server['costcontract'] map_fun = '''function(doc) { emit(doc._id,[doc.contragent,doc.contract,doc.tema,doc.block,doc.author_name,doc.author_phone,doc.summ,doc.added]); }''' data = [] field = DateTimeField() for row in db.query(map_fun): author = row.value[4].split()[1].encode('utf-8')+' '+row.value[4].split()[0].encode('utf-8') if search == '': data.append({ 'rec_id':row.key, 'contragent':row.value[0].encode('utf-8'), 'contract':row.value[1].encode('utf-8'), 'tema':row.value[2].encode('utf-8'), 'block':row.value[3].encode('utf-8'), 'author':author, 'phone':row.value[5].encode('utf-8'), 'sum':row.value[6], 'added':field._to_python(row.value[7]) }) else: if Compare(row.value[0],search) or Compare(row.value[1],search) or Compare(row.value[2],search) or Compare(row.value[3],search) or Compare(author.decode('utf-8'),search): data.append({ 'rec_id':row.key, 'contragent':row.value[0].encode('utf-8'), 'contract':row.value[1].encode('utf-8'), 'tema':row.value[2].encode('utf-8'), 'block':row.value[3].encode('utf-8'), 'author':author, 'phone':row.value[5].encode('utf-8'), 'sum':row.value[6], 'added':field._to_python(row.value[7]) }) return data
def Edit(request): try: if CheckAccess(request,'23') != 'OK': return render_to_response("mtmc/notaccess/mtmc.html") except: return HttpResponseRedirect('/') try: eq_id = request.GET['eq_id'] request.session['eq_id'] = eq_id except: pass try: eq_id = request.session['eq_id'] except: return HttpResponseRedirect('/mtmc') if request.method == 'POST': form = NameForm(request.POST) if form.is_valid(): name = form.cleaned_data['name'] EditName(eq_id,name) eq = GetEq(eq_id) form = NameForm(None) form.fields['name'].initial = eq['name'] field = DateTimeField() create = field._to_python(eq['create']) author = eq['author_name'].split()[1]+' '+eq['author_name'].split()[0] c = RequestContext(request,{'form':form,'eq':eq,'create':create,'author':author,'tmc':TmcUrl(eq)}) c.update(csrf(request)) return render_to_response("mtmc/edit.html",c)
def GetSchemeList(): db = server['scheme'] map_fun = '''function(doc) { emit(doc.scheme_id,[doc._id,doc.scheme_name,doc.author_name,doc.added,doc.attrs_list]); }''' data = [] field = DateTimeField() for row in db.query(map_fun): data.append([row.key,row.value[0],row.value[1],row.value[2].split()[1]+' '+row.value[2].split()[0],field._to_python(row.value[3]),row.value[4]]) sorted(data) return data
def RealBuild(request): try: client_id = request.session['client_id'] except: return HttpResponseRedirect('/clientlist') if request.method == 'POST': try: file_link = request.POST['file_link'] if file_link != '': AddRealFile('build',client_id,file_link) except: pass form = RealBuildForm(request.POST) if form.is_valid(): smartasr_order = form.cleaned_data['smartasr_order'] date_order = form.cleaned_data['date_order'] date_tmc = form.cleaned_data['date_tmc'] date_doc = form.cleaned_data['date_doc'] date_tmc_out = form.cleaned_data['date_tmc_out'] date_end = form.cleaned_data['date_end'] sz = form.cleaned_data['sz'] iss = form.cleaned_data['iss'] date_real = form.cleaned_data['date_real'] date_realend = form.cleaned_data['date_realend'] comment = form.cleaned_data['comment'] a = GetFio(request) author = a.split()[1]+' '+a.split()[0] BuildEdit( client_id,smartasr_order,date_order, date_tmc, date_doc, date_tmc_out, date_end, sz, iss, date_real, date_realend, comment, author ) StatusHistory(client_id,'Реализация',request) if request.method == 'GET': try: delete_file = request.GET['delete_file'] DelRealFile('build',client_id,delete_file) except: pass try: in_real = request.GET['in_real'] InReal(request,client_id) StatusHistory(client_id,'Принято в реализацию',request) except: pass field = DateTimeField() client = GetClient(client_id) creator = client['creator_name'].split()[1]+' '+client['creator_name'].split()[0] create = field._to_python(client['create']) real = pickle.loads(client['realization_data']) build = real['build'] form = RealBuildForm(None) form.fields['smartasr_order'].initial = build['smartasr_order'] form.fields['date_order'].initial = build['date_order'] form.fields['date_tmc'].initial = build['date_tmc'] form.fields['date_doc'].initial = build['date_doc'] form.fields['date_tmc_out'].initial = build['date_tmc_out'] form.fields['date_end'].initial = build['date_end'] form.fields['sz'].initial = build['sz'] form.fields['iss'].initial = build['iss'] form.fields['date_real'].initial = build['date_real'] form.fields['date_realend'].initial = build['date_realend'] form.fields['comment'].initial = build['comment'] fform = FileForm(None) filelist = ListFile(GetUserKod(request)) filelist.insert(0,['','']) fform.fields['file_link'].choices = filelist #--- Список файлов --- realfiles = GetRealFiles('build',client_id) c = RequestContext(request,{'fform':fform,'form':form,'client':client,'creator':creator,'create':create,'realfiles':realfiles}) c.update(csrf(request)) return render_to_response("client/build.html",c)
def ListFile(author,search): author = author.encode("utf-8") db = server['userfiles'] map_fun = '''function(doc) { if (doc.author == '%s') emit(doc._id,[doc.filename,doc.comment,doc.access,doc.added,doc.filesize]); }''' % author data = [] field = DateTimeField() for row in db.query(map_fun): if search == '': data.append([row.key,row.value[0].encode('utf-8'),row.value[1].encode('utf-8'),row.value[2].encode('utf-8'),field._to_python(row.value[3]),row.value[4]]) else: if Compare(row.value[0],search) or Compare(row.value[1],search): data.append([row.key,row.value[0].encode('utf-8'),row.value[1].encode('utf-8'),row.value[2].encode('utf-8'),field._to_python(row.value[3]),row.value[4]]) return data