Пример #1
0
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
Пример #2
0
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
Пример #3
0
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
Пример #4
0
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)
Пример #5
0
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
Пример #6
0
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)
Пример #7
0
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