Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 78 additions & 0 deletions help_popup_document_page/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3

=======================
Document pages for help
=======================

This module knits ``document_page`` and ``help_popup`` together such that you can write your help texts as document pages. The advantage is that you can use your help texts also as (part of) a functional description of your installation, or the other way around.

Installation
============

To install this module, you need to:

#. install ``help_popup`` from the ``web`` repository

Configuration
=============

To configure this module, you need to:

#. add users to the `Documentation writer` or `Advanced documentation writer` group
#. if you're so inclined, provide a template in the document category `Documentation` (added by this module)

Usage
=====

Members of the above mentioned groups will have access to the the fields `Documentation for` and `Advanced documentation for` on a document page *if* the page's category is `Documentation`. In those fields, assign the window action(s) for which the current document page is the (advanced) documentation.

Given you can add multiple document pages as help for the same action (they will be concatenated), you can share writing documentation between multiple people writing about different aspects.

.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/118/8.0

Known issues / Roadmap
======================

* it would be nice to have this refer to actions instead of window actions, but that's more a matter of help_popup

Bug Tracker
===========

Bugs are tracked on `GitHub Issues
<https://github.com/OCA/knowledge/issues>`_. In case of trouble, please
check there if your issue has already been reported. If you spotted it first,
help us smashing it by providing a detailed and welcomed feedback.

Credits
=======

Images
------

* Odoo Community Association: `Icon <https://github.com/OCA/maintainer-tools/blob/master/template/module/static/description/icon.svg>`_.

Contributors
------------

* Holger Brunn <hbrunn@therp.nl>

Do not contact contributors directly about help with questions or problems concerning this addon, but use the `community mailing list <mailto:community@mail.odoo.com>`_ or the `appropriate specialized mailinglist <https://odoo-community.org/groups>`_ for help, and the bug tracker linked in `Bug Tracker`_ above for technical issues.

Maintainer
----------

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

This module is maintained by the OCA.

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

To contribute to this module, please visit https://odoo-community.org.
5 changes: 5 additions & 0 deletions help_popup_document_page/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# © 2017 Therp BV <http://therp.nl>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import models
from .hooks import post_init_hook
24 changes: 24 additions & 0 deletions help_popup_document_page/__openerp__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
# © 2017 Therp BV <http://therp.nl>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
"name": "Document pages for help",
"version": "8.0.1.0.0",
"author": "Therp BV,Odoo Community Association (OCA)",
"license": "AGPL-3",
"category": "Knowledge Management",
"summary": "Use document pages as help popup",
"depends": [
'document_page',
'help_popup',
],
"demo": [
"demo/document_page.xml",
],
"data": [
"data/document_page.xml",
"security/res_groups.xml",
"views/document_page.xml",
],
"post_init_hook": "post_init_hook",
}
9 changes: 9 additions & 0 deletions help_popup_document_page/data/document_page.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data noupdate="1">
<record id="page_category" model="document.page">
<field name="name">Documentation</field>
<field name="type">category</field>
</record>
</data>
</openerp>
23 changes: 23 additions & 0 deletions help_popup_document_page/demo/document_page.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<record id="demo_help0" model="document.page">
<field name="parent_id" ref="help_popup_document_page.page_category" />
<field name="name">Help for groups</field>
<field name="content">This is the help for groups</field>
<field name="help_popup_window_action_ids" eval="[(4, ref('base.action_res_users'))]" />
</record>
<record id="demo_help1" model="document.page">
<field name="parent_id" ref="help_popup_document_page.page_category" />
<field name="name">Help for groups - additional</field>
<field name="content">This should be concatenated</field>
<field name="help_popup_window_action_ids" eval="[(4, ref('base.action_res_users'))]" />
</record>
<record id="demo_help_advanced" model="document.page">
<field name="parent_id" ref="help_popup_document_page.page_category" />
<field name="name">Help for groups - advanced</field>
<field name="content">This is the advanced help for groups</field>
<field name="help_popup_window_advanced_action_ids" eval="[(4, ref('base.action_res_users'))]" />
</record>
</data>
</openerp>
31 changes: 31 additions & 0 deletions help_popup_document_page/hooks.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
# © 2017 Therp BV <http://therp.nl>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import SUPERUSER_ID, api


def post_init_hook(cr, pool):
env = api.Environment(
cr, SUPERUSER_ID, pool['res.users'].context_get(cr, SUPERUSER_ID)
)
for action in env['ir.actions.act_window'].search([
'|',
('enduser_help', '!=', False),
('advanced_help', '!=', False),
]):
if action.enduser_help and not action.enduser_document_page_ids:
env['document.page'].create({
'name': action.name,
'parent_id':
env.ref('help_popup_document_page.page_category').id,
'help_popup_window_action_ids': [(4, action.id)],
'content': action.enduser_help
})
if action.advanced_help and not action.advanced_document_page_ids:
env['document.page'].create({
'name': action.name,
'parent_id':
env.ref('help_popup_document_page.page_category').id,
'help_popup_window_advanced_action_ids': [(4, action.id)],
'content': action.advanced_help
})
5 changes: 5 additions & 0 deletions help_popup_document_page/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# © 2017 Therp BV <http://therp.nl>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import document_page
from . import ir_actions_act_window
20 changes: 20 additions & 0 deletions help_popup_document_page/models/document_page.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# © 2017 Therp BV <http://therp.nl>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import fields, models


class DocumentPage(models.Model):
_inherit = 'document.page'

help_popup_window_action_ids = fields.Many2many(
'ir.actions.act_window', 'help_popup_document_page_rel',
'document_page_id', 'action_id',
string='Documentation for'
)

help_popup_window_advanced_action_ids = fields.Many2many(
'ir.actions.act_window', 'help_popup_document_page_advanced_rel',
'document_page_id', 'action_id',
string='Advanced documentation for'
)
43 changes: 43 additions & 0 deletions help_popup_document_page/models/ir_actions_act_window.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-
# © 2017 Therp BV <http://therp.nl>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import api, fields, models, tools


class IrActionsActWindow(models.Model):
_inherit = 'ir.actions.act_window'

enduser_help = fields.Html(compute='_compute_enduser_help', store=True)
advanced_help = fields.Html(compute='_compute_advanced_help', store=True)
enduser_document_page_ids = fields.Many2many(
'document.page', 'help_popup_document_page_rel',
'action_id', 'document_page_id',
string='Documentation'
)
advanced_document_page_ids = fields.Many2many(
'document.page', 'help_popup_document_page_advanced_rel',
'action_id', 'document_page_id',
string='Advanced documentation'
)

@api.multi
@api.depends('enduser_document_page_ids.content')
def _compute_enduser_help(self):
for this in self:
html_string = this.enduser_document_page_ids[:1].content
for extra_content in this.enduser_document_page_ids[1:]:
html_string = tools.append_content_to_html(
html_string, extra_content.content, plaintext=False
)
this.enduser_help = html_string

@api.multi
@api.depends('advanced_document_page_ids.content')
def _compute_advanced_help(self):
for this in self:
html_string = this.advanced_document_page_ids[:1].content
for extra_content in this.advanced_document_page_ids[1:]:
html_string = tools.append_content_to_html(
html_string, extra_content.content, plaintext=False
)
this.advanced_help = html_string
15 changes: 15 additions & 0 deletions help_popup_document_page/security/res_groups.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<record id="group_documentation_writer" model="res.groups">
<field name="name">Documentation writer</field>
<field name="implied_ids" eval="[(4, ref('base.group_document_user'))]" />
<field name="category_id" ref="base.module_category_knowledge_management"/>
</record>
<record id="group_advanced_documentation_writer" model="res.groups">
<field name="name">Advanced documentation writer</field>
<field name="implied_ids" eval="[(4, ref('help_popup_document_page.group_documentation_writer'))]" />
<field name="category_id" ref="base.module_category_knowledge_management"/>
</record>
</data>
</openerp>
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions help_popup_document_page/tests/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
# © 2017 Therp BV <http://therp.nl>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import test_help_popup_document_page
17 changes: 17 additions & 0 deletions help_popup_document_page/tests/test_help_popup_document_page.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# -*- coding: utf-8 -*-
# © 2017 Therp BV <http://therp.nl>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp.tests.common import TransactionCase


class TestHelpPopupDocumentPage(TransactionCase):
def test_help_popup_document_page(self):
action = self.env.ref('base.action_res_users')
self.assertEqual(
action.enduser_help,
'<p>This is the help for groups\nThis should be concatenated\n</p>'
)
self.assertEqual(
action.advanced_help,
'<p>This is the advanced help for groups</p>'
)
15 changes: 15 additions & 0 deletions help_popup_document_page/views/document_page.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<record id="document_page_form" model="ir.ui.view">
<field name="model">document.page</field>
<field name="inherit_id" ref="document_page.view_wiki_form" />
<field name="arch" type="xml">
<field name="parent_id" position="after">
<field name="help_popup_window_action_ids" widget="many2many_tags" attrs="{'invisible': [('parent_id', '!=', %(help_popup_document_page.page_category)s)]}" groups="help_popup_document_page.group_documentation_writer" />
<field name="help_popup_window_advanced_action_ids" widget="many2many_tags" attrs="{'invisible': [('parent_id', '!=', %(help_popup_document_page.page_category)s)]}" groups="help_popup_document_page.group_advanced_documentation_writer" />
</field>
</field>
</record>
</data>
</openerp>
1 change: 1 addition & 0 deletions oca_dependencies.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
web