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
68 changes: 68 additions & 0 deletions document_page/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
.. 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 Page
=============

This module allows you to write web pages for internal documentation.

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

This module depends on module knowledge. So make sure to have it in your addons list.

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

No configuration required

Usage
=====

To use this module, you need to:

* Go to Knowledge menu

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@naousse You need an extra line before the list, otherwise rendering fails.

* Click on Categories to create the document's category you need with the template
* Click on Pages to create pages and select the previous category to use the template


.. 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/9.0

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The target link should be https://runbot.odoo-community.org/runbot/118/9.0

You can also remove the comments.

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

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 `here <https://github.com/OCA/knowledge/issues/new?body=module:%20document_page%0Aversion:%209.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Credits
=======

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

* Odoo SA <info@odoo.com>
* Savoir-faire Linux <support@savoirfairelinux.com>
* Gervais Naoussi <gervaisnaoussi@gmail.com>

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 http://odoo-community.org.
2 changes: 1 addition & 1 deletion document_page/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,5 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import document_page
from . import models
from . import wizard
28 changes: 11 additions & 17 deletions document_page/__openerp__.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,35 +21,29 @@

{
'name': 'Document Page',
'version': '8.0.1.0.1',
'version': '9.0.1.0.0',
'category': 'Knowledge Management',
'description': """
Pages
=====
Web pages
""",
'author': ['OpenERP SA'],
'author': 'OpenERP SA, Odoo Community Association (OCA)',
'images': ['images/category_list.png', 'images/create_category.png',
'images/page_list.png', 'images/create_page.png',
'images/customer_invoice.jpeg', 'images/page_history.png'],
'website': 'http://www.openerp.com/',
'license': 'AGPL-3',
'depends': [
'knowledge',
'mail',
'knowledge',
],
'data': [
'wizard/document_page_create_menu_view.xml',
'wizard/document_page_show_diff_view.xml',
'document_page_view.xml',
'wizard/document_page_create_menu.xml',
'wizard/document_page_show_diff.xml',
'views/document_page.xml',
'security/document_page_security.xml',
'security/ir.model.access.csv',
],
'demo': [
'document_page_demo.xml'
],
'test': [
'test/document_page_test00.yml'
'demo/document_page.xml'
],
'installable': False,
'installable': True,
'auto_install': False,
'images': [],
'css': ['static/src/css/document_page.css'],
}
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<odoo>
<data noupdate="1">
<record id="wiki_wiki_main" model="document.page">
<field name="name">The OpenERP wiki</field>
<field name="name">The Odoo wiki</field>
<field name="tags">help, quick start, wiki, formatting</field>
<field name="minor_edit">0</field>
<field name="index">1</field>
<field name="summary">Initial Page</field>
<field name="content">==The OpenERP wiki==

[[File:http://www.openerp.com/sites/all/themes/openerp/logo.png OpenERP]]
<field name="content">== The Odoo wiki ==

The OpenERP wiki allows you to manage your enterprise's contents using wiki
[[File:https://www.odoo.com/openerp_website/static/src/img/logo_transparent_198px.png Odoo]]

The Odoo wiki allows you to manage your enterprise's contents using wiki
restructured texts. This module provides a collaborative way to manage internal
FAQs, quality manuals, technical references, etc.

Expand All @@ -38,4 +38,4 @@ FAQs, quality manuals, technical references, etc.
<field name="parent_id" ref="wiki_groups_wikiformatting0"/>
</record>
</data>
</openerp>
</odoo>
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<odoo>
<data noupdate="1">
<record id="base.user_demo" model="res.users">
<field eval="[(4, ref('base.group_document_user'))]"
Expand Down Expand Up @@ -128,4 +128,4 @@ Think of it as an out-of-the-box solution to boost your business' productivity.<
</record>

</data>
</openerp>
</odoo>
Binary file added document_page/images/category_list.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added document_page/images/create_category.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added document_page/images/create_page.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added document_page/images/page_history.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added document_page/images/page_list.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
22 changes: 22 additions & 0 deletions document_page/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import document_page
from . import document_page_history
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,14 @@
#
##############################################################################
import logging
import difflib
from openerp import models, fields, api, _
from openerp import models, fields, api

_logger = logging.getLogger(__name__)


class document_page(models.Model):
class DocumentPage(models.Model):
"""This class is use to manage Document."""

_name = "document.page"
_inherit = ['mail.thread']
_description = "Document Page"
Expand Down Expand Up @@ -99,6 +100,7 @@ class document_page(models.Model):
)

def _get_page_index(self, page, link=True):
"""Return the index of a document."""
index = []
for subpage in page.child_ids:
index += ["<li>" + self._get_page_index(subpage) +
Expand All @@ -112,6 +114,7 @@ def _get_page_index(self, page, link=True):
return r

def _get_display_content(self):
"""Return the content of a document."""
for page in self:
if page.type == "category":
display_content = self._get_page_index(page, link=False)
Expand All @@ -121,11 +124,13 @@ def _get_display_content(self):

@api.onchange("parent_id")
def do_set_content(self):
"""We Set it the right content to the new parent."""
if self.parent_id and not self.content:
if self.parent_id.type == "category":
self.content = self.parent_id.content

def create_history(self, page_id, content):
"""Create the first history of a newly created document."""
history = self.env['document.page.history']
return history.create({
"content": content,
Expand All @@ -134,7 +139,8 @@ def create_history(self, page_id, content):

@api.multi
def write(self, vals):
result = super(document_page, self).write(vals)
"""Write the content and set the history."""
result = super(DocumentPage, self).write(vals)
content = vals.get('content')
if content:
for page in self:
Expand All @@ -144,51 +150,9 @@ def write(self, vals):
@api.model
@api.returns('self', lambda value: value.id)
def create(self, vals):
page_id = super(document_page, self).create(vals)
"""Create the first history of a document."""

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few lines below, shouldn't self.create_history(... rather be result.create_history(...

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @dreispt.
Please i don't understand this remark. There is no result variable in this method. Please explain me what you talking about here

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Forget it.

page_id = super(DocumentPage, self).create(vals)
content = vals.get('content')
if content:
self.create_history(page_id.id, content)
return page_id


class document_page_history(models.Model):
_name = "document.page.history"
_description = "Document Page History"
_order = 'id DESC'
_rec_name = "create_date"

page_id = fields.Many2one('document.page', 'Page')
summary = fields.Char('Summary', size=256, select=True)
content = fields.Text("Content")
create_date = fields.Datetime("Date")
create_uid = fields.Many2one('res.users', "Modified By")

def getDiff(self, v1, v2):
text1 = self.browse(v1).content
text2 = self.browse(v2).content
line1 = line2 = ''
if text1:
line1 = text1.splitlines(1)
if text2:
line2 = text2.splitlines(1)
if (not line1 and not line2) or (line1 == line2):
return _('There are no changes in revisions.')
else:
diff = difflib.HtmlDiff()
return diff.make_table(
line1, line2,
"Revision-{}".format(v1),
"Revision-{}".format(v2),
context=True
)

def __getattr__(self, attr):
"""Return a dummy callabale"""
if attr in ['_sql', 'init', '_ids']:
raise AttributeError

_logger.warning(
"Trying to access attribute %s on document_page_history",
attr
)
return (lambda *a, **b: None)
71 changes: 71 additions & 0 deletions document_page/models/document_page_history.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import logging
import difflib
from openerp import models, fields, _

_logger = logging.getLogger(__name__)


class DocumentPageHistory(models.Model):
"""This model is necessary to manage a document history."""

_name = "document.page.history"
_description = "Document Page History"
_order = 'id DESC'
_rec_name = "create_date"

page_id = fields.Many2one('document.page', 'Page')
summary = fields.Char('Summary', select=True)
content = fields.Text("Content")
create_date = fields.Datetime("Date")
create_uid = fields.Many2one('res.users', "Modified By")

def getDiff(self, v1, v2):
"""Return the difference between two version of document version."""
text1 = self.browse(v1).content
text2 = self.browse(v2).content
line1 = line2 = ''
if text1:
line1 = text1.splitlines(1)
if text2:
line2 = text2.splitlines(1)
if (not line1 and not line2) or (line1 == line2):
return _('There are no changes in revisions.')
else:
diff = difflib.HtmlDiff()
return diff.make_table(
line1, line2,
"Revision-{}".format(v1),
"Revision-{}".format(v2),
context=True
)

def __getattr__(self, attr):
"""Return a dummy callabale."""
if attr in ['_sql', 'init', '_ids']:
raise AttributeError

_logger.warning(
"Trying to access attribute %s on document_page_history",
attr
)
return (lambda *a, **b: None)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder why this is needed. Any idea @max3903 ?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dreispt I don't know. Odoo SA made this module originally and they deprecated it in v8.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Even me i don't understand if this is needed. Can i removed it?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please do that.

4 changes: 2 additions & 2 deletions document_page/security/document_page_security.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<odoo>
<data noupdate="0">
<record id="base.group_document_user" model="res.groups">
<field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>
</data>
</openerp>
</odoo>
Loading