Metadata-Version: 2.4
Name: creadoc
Version: 0.0.10
Summary: Дизайнер отчетов на основе Stimulsoft Report Js
Author-email: damirazo <me@damirazo.ru>
License: MIT
Project-URL: Homepage, https://github.com/damirazo/creadoc
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: Russian
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: <4.0,>=3.9
Description-Content-Type: text/x-rst
Requires-Dist: Django<=6.0,>=3.2
Requires-Dist: m3-core>=3.0
Requires-Dist: m3-legacy>=2.1.1
Requires-Dist: m3-mutex>=2.0.4
Requires-Dist: m3-ui>=3.0
Requires-Dist: m3-users>=2.2.4

Дизайнер отчетов Creadoc
========================


Краткое описание
----------------
Инструмент для создания и редактирования отчетных форм на основе **Stimulsoft Report Js**.

Возможности
-----------
1. Создание и редактирование отчетных форм с последующей выгрузкой их в ряд различных форматов.

2. Возможность создания пользовательских шаблонных переменных и источников данных, а также их динамическое подключение к шаблону отчетной формы.

3. Возможность загрузки и выгрузки шаблонов подходящего формата, подготовленных в иных редакторах.


Список доступных для выгрузки на текущий момент форматов - *txt, pdf, html, xlsx, docx*

Creadoc состоит из двух базовых компонентов - **Designer** и **Viewer**.
**Designer** используется непосредственно для формирования и редактирования отчетных форм.
**Viewer** используется для предварительного просмотра подготовленного отчета, а также предоставляет возможности отправки отчета на печать и выгрузки в указанные выше форматы.


Необходимые библиотеки
----------------------
Актуальный набор требуемых для работы библиотек находится в файле REQUIREMENTS


Установка
---------
Прописать в файле settings.py своего проекта в список INSTALLED_APPS следующие строки:

.. code-block:: python

  INSTALLED_APPS = [
    ...
    'south',
    'm3_mutex',
    'm3_users',
    'creadoc',
    ...
  ]

В случае необходимости запуска демонстрационного приложения также следует добавить следующие строки:


.. code-block:: python

  INSTALLED_APPS = [
    ...
    'demo.app',
    'demo.app.designer',
    'demo.app.reports',
    'demo.app.example',
    ...
  ]

Затем необходимо добавить ссылку на кнопку запуска дизайнера отчетных форм в нужное место своего проекта. Для запуска используется пак ``CreadocDesignerActionPack``. Пример добавления ссылки на верхнее меню рабочего стола через файл ``app_meta.py``:

.. code-block:: python

  def register_desktop_menu():
    generic_metarole = metaroles.get_metarole(GENERIC_USER)

    designer_root = DesktopShortcut(
        name=CreadocDesignerActionPack.title,
        pack=find_pack(CreadocDesignerActionPack),
        index=10
    )

    DesktopLoader.add(
        metarole=generic_metarole,
        place=DesktopLoader.TOPTOOLBAR,
        element=designer_root,
    )

После этого нужно добавить пак, использующийся для загрузки источников данных в какой-либо контроллер:

.. code-block:: python

    def register_actions():
        my_controller.extend_packs([
            CreadocDataSourceActionPack(),
        ])


Далее необходимо создать требуемые для работы таблицы с БД, выполнив команды

``./manage.py syncdb``

``./manage.py migrate``

С этого момента дизайнер отчетов уже доступен по добавленной нами ссылке.

Для запуска просмотрщика используется действие ``CreadocViewerActionPack.action_show``. Чтобы вывести наш отчет в окно просмотрщика нам нужно отправить запрос на данное действие, передав обязательный параметр ``report_id``, который должен содержать идентификатор сохраненного шаблона. Также есть возможность передать необязательный параметр ``params``, представляющий из себя json объект. Данный объект будет передан всем подключенным к шаблону источнику данных и может использоваться для их автоматического конфигурирования.

Настройки модуля
----------------
Существует возможность дополнительной настройки отдельных компонентов модуля путем установки специфичных параметров в файле settings.py. Доступные для изменения параметры:

.. code-block:: python

  # Фрагмент url, по которому доступен контроллер модуля CreaDoc. Обязательный для заполнения.
  CREADOC_URL = 'creadoc'
  # Наименование директории в MEDIA_ROOT, в которую сохраняются шаблоны. Обязательный для заполнения
  CREADOC_REPORTS_DIR = 'reports'
  # Путь до директории с шаблонами
  CREADOC_REPORTS_ROOT = os.path.join(MEDIA_ROOT, CREADOC_REPORTS_DIR)
  # URL, по которому доступны шаблоны
  CREADOC_REPORTS_URL = MEDIA_URL + CREADOC_REPORTS_DIR + '/'
  # Промежутки (в миллисекундах) между запусками процедуры автосохранения.
  # Сохранение производится в локальный браузерный кэш (localStorage).
  CREADOC_DESIGNER_LOCAL_AUTOSAVE_TIMEOUT = 1000
