\n'
result = result + listHeader
# define the server and the connection
s = Server('1.1.1.1')
c = Connection(s, user="DOMEN\\user", password="some-pass", authentication=NTLM)
# perform the Bind operation
if not c.bind():
print('error in bind', c.result)
c.search('OU=LTB_users,dc=dals,dc=local', '(objectclass=person)',
attributes=['cn', 'mail', 'telephoneNumber', 'department'])
# print(c.result)
for item in c.entries:
# print(item)
# item = re.sub('\n', '', str(item))
item = str(item)
name = re.search('(cn:)(.+?)(\n)', item)
if name:
name = name.groups()[1]
else:
name=name
#print(name.groups()[1])
department = re.search("(department:)(.+?)(\n)", item)
if department:
dep = department.groups()[1]
else:
dep = ""
mail = re.search("(mail:)(.+?)(\n)", item)
if mail:
mail = mail.groups()[1]
else:
mail = ""
telephone = re.search("(telephoneNumber:)(.+?)(\n)", item)
if telephone:
phone = telephone.groups()[1]
else:
phone = ""
rowData = "
\n" % (name, phone, dep, mail, mail)
result = result + rowData
return (result + "
\n")
def getCOline():
conn = connectDB()
c = conn.cursor()
order = 'ext_co_line'
result = '
Список внешних линий
'
qwr = "SELECT * FROM ext_co_line ORDER by " + order
c.execute(qwr)
listHeader = '
№ п/п
\n' \
'
Линия
\n' \
'
Номер телефона
\n' \
'
Описание
\n'
result = result + listHeader
for row in c.fetchall():
rowData = "
%s
%s
%s
%s
" % (row[0], row[1], row[2], row[3])
result = result + rowData
return (result + "
\n")
def ReportForm():
txtReportForm = '
Отчёт по звонкам
' \
'
'
return txtReportForm
def ReportData(environ):
paramDict = {item.split('=')[0]: item.split('=')[1] for item in environ['QUERY_STRING'].split('&')}
# проверка корректности параметров
# внутренний номер (3 цифры 100-999)
templateNumber = '(^[1-9][0-9][0-9]$)'
if re.match(templateNumber, str(paramDict.get('int_number'))) is not None:
numbers = paramDict.get('int_number')
else:
return ErrorMessage('Введите внутренний номер')
# проверка и преобразование дат в удобоваримый для субд формат
templateDate = '^(0[1-9]|[12][0-9]|3[01])[.](0[1-9]|1[012])[.](19|20)[0-9][0-9]$'
if re.match(templateDate, str(paramDict.get('date_begin'))) is not None:
date_begin = time.strftime("%Y-%m-%d", time.strptime(str(paramDict.get('date_begin')), "%d.%m.%Y"))
else:
return ErrorMessage('Неверный формат даты начала периода')
if re.match(templateDate, paramDict.get('date_end')) is not None:
date_end = time.strftime("%Y-%m-%d", time.strptime(str(paramDict.get('date_end')), "%d.%m.%Y"))
else:
return ErrorMessage('Неверный формат даты окончания периода')
conn = connectDB()
c = conn.cursor()
order = 'call_date'
result = '
Список звонков с номера {}
'.format(numbers)
qwr = "SELECT * FROM cdr where int_number=\'{}\' AND call_date BETWEEN CAST(\'{}\' AS DATE) AND CAST(\'{}\' AS DATE) LIMIT 1000".format(numbers, date_begin, date_end)
c.execute(qwr)
listHeader = '
' \
'
№ п/п
Дата
Время
Внут.номер
Внеш.линия
Вызываемый номер
' \
'
Ring
Длительность
АСС
Код звонка
Направление
\n'
result = result + listHeader
for row in c.fetchall():
rowData = '