Диплом: Автоматизация процесса введения документации и отчетности в ООО "Аэрофильтр"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
101
sheet = wb[sheet_name]
for row in sheet.iter_rows():
for cell in row:
if not cell.value:
continue
words.update(str(cell.value).split())
return ' '.join(words)
import humanize
from jinja2 import nodes
from htmlmin import minify
from functools import wraps
from datetime import datetime
from jinja2.ext import Extension
from aiohttp_session import get_session
from pytils.numeral import choose_plural
from settings import config, fields
humanize.i18n.activate('ru_RU')
102
context_processors = dict()
class HTMLMinExtension(Extension):
tags = {'minify'}
def parse(self, parser):
lineno = next(parser.stream).lineno
body = parser.parse_statements(['name:endminify'], drop_needle=True)
if not self.environment.minify_html:
return body
return nodes.CallBlock(self.call_method('_minify'), [], [], body).set_lineno(lineno)
@staticmethod
def _minify(caller):
return minify(
caller(),
remove_comments=True,
reduce_boolean_attributes=True,
remove_optional_attribute_quotes=False
).strip()
103
def context_processor(fn):
if fn.__code__.co_argcount:
# если у переменной есть аргументы
context_processors[fn.__name__] = fn
else:
# иначе присваиваем значение
context_processors[fn.__name__] = fn()
@context_processor
def get_field_title(field, prefix='document'):
if not field:
return field
if isinstance(field, str):
return fields.get('.'.join((prefix, field))) or field
if isinstance(field, datetime):
return field.strftime('%d.%m.%Y')
return field
104
def init_jinja(env):
env.globals.update(context_processors)
env.finalize = lambda x: x if x is not None else ''
env.filters['human_date'] = humanize.naturaltime
env.filters['strfdate'] = lambda x: x.strftime('%d.%m.%Y')
env.filters['strftime'] = lambda x: x.strftime('%H:%M %d.%m.%Y')
env.filters['field_title'] = lambda x: fields.get(x) or x
env.globals['choose_plural'] = choose_plural
env.minify_html = config.app.minify_html
env.globals.update({'fields': fields, 'base_title': config.app.base_title, })
env.add_extension(HTMLMinExtension)
def complete_response(fn):
@wraps(fn)
async def wrapped(self, *args, **kwargs):
105
res = (await fn(self, *args, **kwargs)) or {}
session = await get_session(self.request)
user = session.get('user') or {}
res.update({'user': dict((f, user.get(f)) for f in config.user.public_fields)})
return res
return wrapped

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)