Metadata-Version: 2.4
Name: m3-object-coordination
Version: 1.1.0
Summary: Подсистема для организации процессов согласования
Home-page: https://stash.bars-open.ru/projects/M3/repos/m3-object-coordination
Author: BARS Group
Author-email: education_dev@bars-open.ru
License: MIT
Classifier: Intended Audience :: Developers
Classifier: Environment :: Web Environment
Classifier: Natural Language :: Russian
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Development Status :: 5 - Production/Stable
Classifier: Framework :: Django :: 1.11
Classifier: Framework :: Django :: 2.0
Classifier: Framework :: Django :: 2.1
Classifier: Framework :: Django :: 2.2
Requires-Dist: python-dateutil<3,>=2
Requires-Dist: psycopg2-binary
Requires-Dist: django<3,>=1.11
Requires-Dist: m3-core<3,>=2.2
Requires-Dist: m3_django_compatibility<2,>=1.12.0
Requires-Dist: m3-ui<3,>=2.2.57
Requires-Dist: m3-objectpack<3,>=2.2
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: license
Dynamic: requires-dist
Dynamic: summary

=================================================
Подсистема для организации процессов согласования
=================================================

Пакет ``m3-object-coordination`` предоставляет средства для организации
процессов согласования любых объектов.

В основе процесса согласования лежит маршрут согласования, который состоит из
этапов. На каждом из этапов определяются те или иные согласующие. В зависимости
проекта, согласующими могут быть любые сущности (модели Django). Маршруты
согласования также могут определяться для любых сущностей.

Маршруты согласования могут быть созданы на основе шаблонов. В этом случае
маршрут согласования привязывается к конкретному объекту Системы, этапы и
согласующие на каждом из этапов копируются из шаблона.

Возможности
-----------

* Средства для работы с шаблонами маршрутов согласования.
* Создание маршрутов согласования на основе шаблонов или без них.
* Интеграция с подсистемой статусов: возможность указывать статусы объектов,
  в которых доступно проведение согласования.
* Ведение журнала согласования (истории принятия решений).

Системные требования
--------------------

* `Python <http://www.python.org/>`_ 3.6
* `Django <http://djangoproject.com/>`_ 1.11
* `m3-core <https://pypi.python.org/pypi/m3-core>`_ 2.2
* `m3-ui <https://pypi.python.org/pypi/m3-ui>`_ 2.2
* `m3-object-statuses <https://pypi.python.org/pypi/m3-object-statuses>`_ 1.0

Работа с репозиторием
---------------------

Репозиторий размещается по адресу
https://stash.bars-open.ru/projects/M3/repos/m3-object-coordination.

Для работы с репозиторием (внесения изменений и т.д.) нужно:

1. скачать репозиторий

   ::

     git clone ssh://git@stash.bars-open.ru:7999/m3/m3-object-coordination.git

или

   ::

     git clone https://user.name@stash.bars-open.ru/scm/m3/m3-object-coordination.git

2. создать виртуальное окружение с Python 3.6, например так:

   ::

     mkvirtualenv m3-object-coordination

3. установить в окружение Fabric3:

   ::

     pip install Fabric3

В репозитории рутинные операции автоматизированы с помощью `Fabric
<http://www.fabfile.org/>`_, список доступных заданий можно посмотреть после
установки Fabric3 с помощью команды (выполняется в папке репозитория)

   ::

     fab -l

Требования к разработке
-----------------------

1. После внесения изменений в python-код нужно выполнить команду ``fab src``,
   она должна выполняться без ошибок.

2. Помимо проверки кода анализаторами, нужно убедиться, что все тесты
   выполняются: ``fab tests.run``. При этом после внесения изменений покрытие
   кода тестами должно быть равно 100%.

3. Изменения в репозитории не должны снижать степень покрытия тестами
   (отображается после выполнения тестов через ``fab tests.run``). Реализация
   интерфейса пользователя (``m3_object_coordination.ui``) не тестируется.
