Author: |
Naglis Jonaitis |
License: |
AGPL-3 |
Branch: |
10.0 |
Repository: |
crtmneric/misc-addons-1 |
Dependencies: |
component,
connector,
hr_timesheet,
and
queue_job |
Languages: |
JSON (732, 25.3%),
Python (1769, 61.2%),
XML (315, 10.9%),
and
reStructuredText (75, 2.6%) |
Other branches: |
10.0-fix-get-amount-string,
and
issue-12 |
Other repositories: |
Drsmartinkus/misc-addons,
Guobower/misc-addons,
HarshalBhoir/misc-addons,
IaseshviliGeorgiy/misc-addons,
OdooBulgaria/misc-addons,
PrenorSistemas/misc-addons,
TRESCLOUD/misc-addons,
Vassy/misc-addons,
focusate/naglis-misc-addons,
grottas/misc-addons-1,
mucahitaz/misc-addons,
naglis/misc-addons,
njeudy/misc-addons-1,
odoobgorg/misc-addons,
prodax/misc-addons,
sasakuma/misc-addons-1,
sm2x/misc-addons-1,
and
versada/misc-addons |
<h1 class="title">OpenProject Connector</h1>
<p>OpenProject Connector is a unidirectional (OpenProject -> Odoo) connector,
compatible with Odoo 10.0 and <a class="reference external" href="https://www.openproject.org/">OpenProject</a> 7.3+.</p>
<a name="what-can-be-synchronized"></a>
<h2>What can be synchronized?</h2>
<ul class="simple">
<li>Users -> Users (<cite>res.users</cite>);</li>
<li>Projects -> Projects (<cite>project.project</cite>);</li>
<li>Work Packages -> Tasks (<cite>project.task</cite>);</li>
<li>Time Entries -> Timesheet Lines (<cite>account.analytic.line</cite>);</li>
<li>Work Package Activities (comments, updates) -> Messages (<cite>mail.message</cite> under
<cite>project.task</cite>);</li>
<li>Work Package Statuses -> Stages (<cite>project.task.type</cite>).</li>
</ul>
<a name="installation"></a>
<h2>Installation</h2>
<p>To install this module, you need to:</p>
<ol class="arabic simple">
<li>Install <a class="reference external" href="https://github.com/oca/connector">Odoo Connector</a> module.</li>
<li>Install pip dependencies for this module (check the <em>requirements.txt</em> file
at the top level in module repository).</li>
</ol>
<a name="configuration"></a>
<h2>Configuration</h2>
<a name="openproject-side"></a>
<h3>OpenProject side</h3>
<ol class="arabic simple">
<li>Create a limited role for Odoo synchronization, eg. <em>Odoo</em> with the following permissions:<ol class="arabic">
<li><em>Time tracking / View spent time</em>.</li>
<li><em>Work package tracking / View work packages</em>.</li>
</ol>
</li>
<li>Create an Odoo synchronization user (eg. <em>Odoo Bot</em>) and assign it with the <em>Odoo</em> role to all projects you will be syncing with Odoo.</li>
<li>Generate an API key for the <em>Odoo Bot</em> user.</li>
</ol>
<a name="odoo-side"></a>
<h3>Odoo side</h3>
<ol class="arabic">
<li><p class="first">Configure the OpenProject Connector queue job channel in your Odoo
configuration file, eg.:</p>
<blockquote>
<pre>
<code lang="ini">[queue_job]
channels = root:2,root.openproject:1</code>
</pre>
</blockquote>
</li>
<li><p class="first">Login to your Odoo instance with a user with <em>Connector Manager</em> access
rights.</p>
</li>
<li><p class="first">In debug mode (<em>Settings -> Activate the developer mode</em>) go to <em>Connectors
-> OpenProject -> Backends</em> and create a new backend for your OpenProject
instance, fill in the name, OpenProject instance URL and API key of the
OpenProject synchronization user. Once finished, save the record.</p>
</li>
</ol>
<a name="usage"></a>
<h2>Usage</h2>
<ol class="arabic simple">
<li>Login to your Odoo instance with a user with <em>Connector Manager</em> access
rights.</li>
<li>In debug mode go to <em>Settings -> Technical -> Automation -> Scheduled
Actions</em>, select <em>OpenProject Sync</em>) and click the <em>Run Manually</em> button or
click the <em>Run Import</em> button on the OpenProject backend record.</li>
<li>On the OpenProject backend record, click on the <em>Projects</em> button at the
top - the projects from your OpenProject instance will appear here after
synchronization finishes.</li>
<li>Once all projects are created (no more pending jobs in <em>Job Queue -> Queue
-> Jobs</em>), configure the projects and things you want to synchronize for
each project (whether to sync work packages descriptions, and which types of
activites to sync).</li>
<li>Once done with the configuration, run the <em>OpenProject Sync</em> cron job again.</li>
</ol>
<a name="known-issues-roadmap"></a>
<h2>Known issues / Roadmap</h2>
<ul class="simple">
<li>OpenProject time entry API endpoint currently does not support <em>updatedAt</em> filtering. See also: <a class="reference external" href="https://goo.gl/Kst39h">https://goo.gl/Kst39h</a>.</li>
</ul>
<a name="faq"></a>
<h2 class="with-subtitle">FAQ</h2>
<h2 class="section-subtitle" id="are-you-planning-on-making-it-bidirectional"><span class="section-subtitle">Are you planning on making it bidirectional?</span></h2>
<p>Personally, no, as currently I do not have a need for it. If you want to give a
try yourself, please note that the current version of the OpenProject API (at
the time of writing: API v3 on OpenProject 7.4) <a class="reference external" href="http://docs.openproject.org/apiv3-doc/#projects">does not support</a> creating projects via API,
same goes for time entries, but at least for time entries <a class="reference external" href="https://community.openproject.com/projects/openproject/work_packages/26108/activity">create support is
planned</a>.</p>
<a name="credits"></a>
<h2 class="with-subtitle">Credits</h2>
<h2 class="section-subtitle" id="images"><span class="section-subtitle">Images</span></h2>
<ul class="simple">
<li>Module icon by <a class="reference external" href="https://www.openproject.org/contact-us/">OpenProject Foundation</a>.</li>
</ul>