Conductor is a tool for the Office of Management and Budget (OMB) to manage contracts as they move through the city's various processes for renewal, rebid, extension, etc. From the user's perspective, the way this works is that they define different :py:class:`~purchasing.data.flows.Flow` objects that are comprised of an ordered array of :py:class:`~purchasing.data.stages.Stage` objects. :py:class:`~purchasing.data.contracts.ContractBase` objects are then assigned to a :py:class:`~purchasing.users.models.User` and a :py:class:`~purchasing.data.flows.Flow`. At this point, the :py:class:`~purchasing.data.contract_stages.ContractStage` are all created, and the contract is essentially on rails. The "Conductor", then, is the person who drives this contract through the various stages towards completion.
Once a contract is in progress, Conductors complete various stages by marking them as such in the UI. They can also perform various actions in each stage, including making notes, sending emails to different people interested in the process, change metadata about the contract, and adverstise through a new Opportunity on :doc:`beacon`.
.. seealso:: `How to use Conductor <https://docs.google.com/document/d/1gJa8RzbiV91UDNyRTBLGXmZIYuXtnY8BOK6VNyCbqSg/export?format=pdf>`_, an internal product guide for more information about the user interface and user experience.
- :py:class:`purchasing.data.contracts.ContractBase`
- :py:class:`purchasing.data.contracts.ContractProperty`
- :py:class:`purchasing.data.companies.Company`
- :py:class:`purchasing.data.companies.CompanyContact`
- :py:class:`purchasing.data.stages.Stage`
- :py:class:`purchasing.data.flows.Flow`
- :py:class:`purchasing.data.contract_stages.ContractStage`
- :py:class:`purchasing.data.contract_stages.ContractStageActionItem`
- :py:class:`purchasing.opportunities.models.Opportunity`
- :py:class:`purchasing.users.models.User`
.. automodule:: purchasing.conductor.forms :members:
.. automodule:: purchasing.conductor.validators :members:
.. automodule:: purchasing.conductor.util :members:
.. autoflask:: purchasing.app:create_app() :blueprints: conductor :undoc-endpoints: conductor.static
.. autoflask:: purchasing.app:create_app() :blueprints: conductor_uploads :undoc-endpoints: conductor_uploads.static
.. autoflask:: purchasing.app:create_app() :blueprints: conductor_metrics :undoc-endpoints: conductor_metrics.static