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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
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
Источник: https://baza.diplomsite.ru/previewfile/2029