creadoc 0.0.5
Дизайнер отчетов на основе Stimulsoft Report Js
License: MIT

Дизайнер отчетов 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