From 682b90b4f0ea90a8a34889b8a7fb0e7c401fdf37 Mon Sep 17 00:00:00 2001
From: Lois Rilo
Date: Thu, 28 Feb 2019 12:59:30 +0100
Subject: [PATCH 001/107] [11.0][ADD] document_page_project
---
document_page_project/README.rst | 81 ++++
document_page_project/__init__.py | 1 +
document_page_project/__manifest__.py | 24 +
.../i18n/document_page_project.pot | 56 +++
document_page_project/models/__init__.py | 2 +
document_page_project/models/document_page.py | 14 +
.../models/project_project.py | 23 +
document_page_project/readme/CONTRIBUTORS.rst | 3 +
document_page_project/readme/DESCRIPTION.rst | 1 +
document_page_project/readme/USAGE.rst | 2 +
.../static/description/index.html | 430 ++++++++++++++++++
.../views/document_page_views.xml | 35 ++
.../views/project_project_views.xml | 35 ++
13 files changed, 707 insertions(+)
create mode 100644 document_page_project/README.rst
create mode 100644 document_page_project/__init__.py
create mode 100644 document_page_project/__manifest__.py
create mode 100644 document_page_project/i18n/document_page_project.pot
create mode 100644 document_page_project/models/__init__.py
create mode 100644 document_page_project/models/document_page.py
create mode 100644 document_page_project/models/project_project.py
create mode 100644 document_page_project/readme/CONTRIBUTORS.rst
create mode 100644 document_page_project/readme/DESCRIPTION.rst
create mode 100644 document_page_project/readme/USAGE.rst
create mode 100644 document_page_project/static/description/index.html
create mode 100644 document_page_project/views/document_page_views.xml
create mode 100644 document_page_project/views/project_project_views.xml
diff --git a/document_page_project/README.rst b/document_page_project/README.rst
new file mode 100644
index 00000000000..b13efd8c36a
--- /dev/null
+++ b/document_page_project/README.rst
@@ -0,0 +1,81 @@
+============
+Project Wiki
+============
+
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
+ :target: https://odoo-community.org/page/development-status
+ :alt: Beta
+.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :alt: License: AGPL-3
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fknowledge-lightgray.png?logo=github
+ :target: https://github.com/OCA/knowledge/tree/11.0/document_page_project
+ :alt: OCA/knowledge
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/knowledge-11-0/knowledge-11-0-document_page_project
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
+ :target: https://runbot.odoo-community.org/runbot/118/11.0
+ :alt: Try me on Runbot
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+This module allow to link document pages to projects.
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Usage
+=====
+
+* Go to to a project and click on "Wiki Pages" to see linked documents or to
+ create new ones.
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub 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 `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+~~~~~~~
+
+* Efient
+
+Contributors
+~~~~~~~~~~~~
+
+* `Eficent `_:
+
+ * Lois Rilo
+
+Maintainers
+~~~~~~~~~~~
+
+This module is maintained by the OCA.
+
+.. image:: https://odoo-community.org/logo.png
+ :alt: Odoo Community Association
+ :target: https://odoo-community.org
+
+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.
+
+This module is part of the `OCA/knowledge `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/document_page_project/__init__.py b/document_page_project/__init__.py
new file mode 100644
index 00000000000..0650744f6bc
--- /dev/null
+++ b/document_page_project/__init__.py
@@ -0,0 +1 @@
+from . import models
diff --git a/document_page_project/__manifest__.py b/document_page_project/__manifest__.py
new file mode 100644
index 00000000000..a363a5e14b1
--- /dev/null
+++ b/document_page_project/__manifest__.py
@@ -0,0 +1,24 @@
+# Copyright 2019 Eficent Business and IT Consulting Services S.L.
+# (http://www.eficent.com) - Lois Rilo
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
+
+{
+ 'name': 'Project Wiki',
+ 'description': 'This module links document pages to projects',
+ 'version': '11.0.1.0.0',
+ "development_status": "Beta",
+ 'category': 'Project',
+ 'author': 'Efient, '
+ 'Odoo Community Association (OCA)',
+ 'website': 'https://github.com/OCA/project',
+ 'license': 'AGPL-3',
+ 'depends': [
+ 'project',
+ 'document_page',
+ ],
+ 'data': [
+ 'views/document_page_views.xml',
+ 'views/project_project_views.xml',
+ ],
+ 'installable': True,
+}
diff --git a/document_page_project/i18n/document_page_project.pot b/document_page_project/i18n/document_page_project.pot
new file mode 100644
index 00000000000..9b1f671a481
--- /dev/null
+++ b/document_page_project/i18n/document_page_project.pot
@@ -0,0 +1,56 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * document_page_project
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 11.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: document_page_project
+#: model:ir.ui.view,arch_db:document_page_project.view_project_kanban
+msgid "Wiki Pages "
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.actions.act_window,help:document_page_project.action_document_page_projects
+msgid "Click to create a new web page."
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model,name:document_page_project.model_document_page
+msgid "Document Page"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model.fields,field_description:document_page_project.field_project_project_document_page_count
+msgid "Document Page Count"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model,name:document_page_project.model_project_project
+#: model:ir.model.fields,field_description:document_page_project.field_document_page_project_id
+msgid "Project"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.actions.act_window,name:document_page_project.action_document_page_projects
+msgid "Project Wiki"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model.fields,field_description:document_page_project.field_project_project_document_page_ids
+msgid "Wiki"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.ui.view,arch_db:document_page_project.edit_project
+msgid "Wiki Pages"
+msgstr ""
+
diff --git a/document_page_project/models/__init__.py b/document_page_project/models/__init__.py
new file mode 100644
index 00000000000..0cf1057da59
--- /dev/null
+++ b/document_page_project/models/__init__.py
@@ -0,0 +1,2 @@
+from . import project_project
+from . import document_page
diff --git a/document_page_project/models/document_page.py b/document_page_project/models/document_page.py
new file mode 100644
index 00000000000..dd55e43d37b
--- /dev/null
+++ b/document_page_project/models/document_page.py
@@ -0,0 +1,14 @@
+# Copyright 2019 Eficent Business and IT Consulting Services S.L.
+# (http://www.eficent.com)
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
+
+from odoo import fields, models
+
+
+class DocumentPage(models.Model):
+ _inherit = 'document.page'
+
+ project_id = fields.Many2one(
+ string='Project',
+ comodel_name='project.project',
+ )
diff --git a/document_page_project/models/project_project.py b/document_page_project/models/project_project.py
new file mode 100644
index 00000000000..2f7d2111dd6
--- /dev/null
+++ b/document_page_project/models/project_project.py
@@ -0,0 +1,23 @@
+# Copyright 2019 Eficent Business and IT Consulting Services S.L.
+# (http://www.eficent.com)
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
+
+from odoo import api, fields, models
+
+
+class ProjectProject(models.Model):
+ _inherit = 'project.project'
+
+ document_page_ids = fields.One2many(
+ string='Wiki',
+ comodel_name='document.page',
+ inverse_name='project_id'
+ )
+ document_page_count = fields.Integer(
+ compute='_compute_document_page_count',
+ )
+
+ @api.multi
+ def _compute_document_page_count(self):
+ for rec in self:
+ rec.document_page_count = len(rec.document_page_ids)
diff --git a/document_page_project/readme/CONTRIBUTORS.rst b/document_page_project/readme/CONTRIBUTORS.rst
new file mode 100644
index 00000000000..edfe84680e8
--- /dev/null
+++ b/document_page_project/readme/CONTRIBUTORS.rst
@@ -0,0 +1,3 @@
+* `Eficent `_:
+
+ * Lois Rilo
diff --git a/document_page_project/readme/DESCRIPTION.rst b/document_page_project/readme/DESCRIPTION.rst
new file mode 100644
index 00000000000..f1cd784b379
--- /dev/null
+++ b/document_page_project/readme/DESCRIPTION.rst
@@ -0,0 +1 @@
+This module allow to link document pages to projects.
diff --git a/document_page_project/readme/USAGE.rst b/document_page_project/readme/USAGE.rst
new file mode 100644
index 00000000000..b8ea0ace4be
--- /dev/null
+++ b/document_page_project/readme/USAGE.rst
@@ -0,0 +1,2 @@
+* Go to to a project and click on "Wiki Pages" to see linked documents or to
+ create new ones.
diff --git a/document_page_project/static/description/index.html b/document_page_project/static/description/index.html
new file mode 100644
index 00000000000..3d35517b221
--- /dev/null
+++ b/document_page_project/static/description/index.html
@@ -0,0 +1,430 @@
+
+
+
+
+
+
+Project Wiki
+
+
+
+
+
Project Wiki
+
+
+
+
This module allow to link document pages to projects.
+
Table of contents
+
+
+
+
+Go to to a project and click on “Wiki Pages” to see linked documents or to
+create new ones.
+
+
+
+
+
Bugs are tracked on GitHub 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 .
+
Do not contact contributors directly about support or help with technical issues.
+
+
+
+
+
+
+
+
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.
+
This module is part of the OCA/knowledge project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute .
+
+
+
+
+
diff --git a/document_page_project/views/document_page_views.xml b/document_page_project/views/document_page_views.xml
new file mode 100644
index 00000000000..19d0d23fb82
--- /dev/null
+++ b/document_page_project/views/document_page_views.xml
@@ -0,0 +1,35 @@
+
+
+
+
+ document.page.form - document_page_project
+ document.page
+
+
+
+
+
+
+
+
+
+ Project Wiki
+ document.page
+ [('type','=','content'), ('project_id', '=', active_id)]
+ {
+ 'default_type': 'content',
+ 'default_project_id': active_id}
+ form
+ tree,form
+
+
+
+
+ Click to create a new web page.
+
+
+
+
+
diff --git a/document_page_project/views/project_project_views.xml b/document_page_project/views/project_project_views.xml
new file mode 100644
index 00000000000..9bbb9337b09
--- /dev/null
+++ b/document_page_project/views/project_project_views.xml
@@ -0,0 +1,35 @@
+
+
+
+
+ project.project
+
+
+
+
+
+
+
+
+ Wiki Pages
+
+
+
+
+
+
+
+ project.project.form - document_page_project
+ project.project
+
+
+
+
+
+
+
+
+
+
+
From 6ef22ccffbccb60cb3632b5233db11e23fc74c7e Mon Sep 17 00:00:00 2001
From: mreficent
Date: Mon, 11 Mar 2019 17:36:40 +0100
Subject: [PATCH 002/107] [FIX] pylint/javascript-lint
---
document_page_project/__manifest__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/document_page_project/__manifest__.py b/document_page_project/__manifest__.py
index a363a5e14b1..4293346633b 100644
--- a/document_page_project/__manifest__.py
+++ b/document_page_project/__manifest__.py
@@ -4,7 +4,7 @@
{
'name': 'Project Wiki',
- 'description': 'This module links document pages to projects',
+ 'summary': 'This module links document pages to projects',
'version': '11.0.1.0.0',
"development_status": "Beta",
'category': 'Project',
From e20387f1d076441dc28d54811e214e24d116f145 Mon Sep 17 00:00:00 2001
From: mreficent
Date: Tue, 19 Mar 2019 18:16:50 +0100
Subject: [PATCH 003/107] [MIG] document_page_project: Migration to 12.0
---
document_page_project/README.rst | 18 +++++++++---------
document_page_project/__init__.py | 1 +
document_page_project/__manifest__.py | 8 ++++----
.../i18n/document_page_project.pot | 14 +++++++-------
document_page_project/models/__init__.py | 3 ++-
.../models/project_project.py | 2 +-
.../static/description/icon.png | Bin 0 -> 9455 bytes
.../static/description/index.html | 16 ++++++++--------
8 files changed, 32 insertions(+), 30 deletions(-)
create mode 100644 document_page_project/static/description/icon.png
diff --git a/document_page_project/README.rst b/document_page_project/README.rst
index b13efd8c36a..a3677df7a23 100644
--- a/document_page_project/README.rst
+++ b/document_page_project/README.rst
@@ -1,6 +1,6 @@
-============
-Project Wiki
-============
+=====================
+Document Page Project
+=====================
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
@@ -14,13 +14,13 @@ Project Wiki
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fknowledge-lightgray.png?logo=github
- :target: https://github.com/OCA/knowledge/tree/11.0/document_page_project
+ :target: https://github.com/OCA/knowledge/tree/12.0/document_page_project
:alt: OCA/knowledge
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/knowledge-11-0/knowledge-11-0-document_page_project
+ :target: https://translation.odoo-community.org/projects/knowledge-12-0/knowledge-12-0-document_page_project
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/118/11.0
+ :target: https://runbot.odoo-community.org/runbot/118/12.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -44,7 +44,7 @@ Bug Tracker
Bugs are tracked on `GitHub 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 `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -54,7 +54,7 @@ Credits
Authors
~~~~~~~
-* Efient
+* Eficent
Contributors
~~~~~~~~~~~~
@@ -76,6 +76,6 @@ 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.
-This module is part of the `OCA/knowledge `_ project on GitHub.
+This module is part of the `OCA/knowledge `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/document_page_project/__init__.py b/document_page_project/__init__.py
index 0650744f6bc..c32fd62b78d 100644
--- a/document_page_project/__init__.py
+++ b/document_page_project/__init__.py
@@ -1 +1,2 @@
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from . import models
diff --git a/document_page_project/__manifest__.py b/document_page_project/__manifest__.py
index 4293346633b..43148709fe7 100644
--- a/document_page_project/__manifest__.py
+++ b/document_page_project/__manifest__.py
@@ -3,14 +3,14 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
{
- 'name': 'Project Wiki',
+ 'name': 'Document Page Project',
'summary': 'This module links document pages to projects',
- 'version': '11.0.1.0.0',
+ 'version': '12.0.1.0.0',
"development_status": "Beta",
'category': 'Project',
- 'author': 'Efient, '
+ 'author': 'Eficent, '
'Odoo Community Association (OCA)',
- 'website': 'https://github.com/OCA/project',
+ 'website': 'https://github.com/OCA/knowledge',
'license': 'AGPL-3',
'depends': [
'project',
diff --git a/document_page_project/i18n/document_page_project.pot b/document_page_project/i18n/document_page_project.pot
index 9b1f671a481..acaa8891d88 100644
--- a/document_page_project/i18n/document_page_project.pot
+++ b/document_page_project/i18n/document_page_project.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 11.0\n"
+"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: <>\n"
"Language-Team: \n"
@@ -14,12 +14,12 @@ msgstr ""
"Plural-Forms: \n"
#. module: document_page_project
-#: model:ir.ui.view,arch_db:document_page_project.view_project_kanban
+#: model_terms:ir.ui.view,arch_db:document_page_project.view_project_kanban
msgid "Wiki Pages "
msgstr ""
#. module: document_page_project
-#: model:ir.actions.act_window,help:document_page_project.action_document_page_projects
+#: model_terms:ir.actions.act_window,help:document_page_project.action_document_page_projects
msgid "Click to create a new web page."
msgstr ""
@@ -29,13 +29,13 @@ msgid "Document Page"
msgstr ""
#. module: document_page_project
-#: model:ir.model.fields,field_description:document_page_project.field_project_project_document_page_count
+#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_count
msgid "Document Page Count"
msgstr ""
#. module: document_page_project
#: model:ir.model,name:document_page_project.model_project_project
-#: model:ir.model.fields,field_description:document_page_project.field_document_page_project_id
+#: model:ir.model.fields,field_description:document_page_project.field_document_page__project_id
msgid "Project"
msgstr ""
@@ -45,12 +45,12 @@ msgid "Project Wiki"
msgstr ""
#. module: document_page_project
-#: model:ir.model.fields,field_description:document_page_project.field_project_project_document_page_ids
+#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_ids
msgid "Wiki"
msgstr ""
#. module: document_page_project
-#: model:ir.ui.view,arch_db:document_page_project.edit_project
+#: model_terms:ir.ui.view,arch_db:document_page_project.edit_project
msgid "Wiki Pages"
msgstr ""
diff --git a/document_page_project/models/__init__.py b/document_page_project/models/__init__.py
index 0cf1057da59..adb1f4de0a6 100644
--- a/document_page_project/models/__init__.py
+++ b/document_page_project/models/__init__.py
@@ -1,2 +1,3 @@
-from . import project_project
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from . import document_page
+from . import project_project
diff --git a/document_page_project/models/project_project.py b/document_page_project/models/project_project.py
index 2f7d2111dd6..955f748cef8 100644
--- a/document_page_project/models/project_project.py
+++ b/document_page_project/models/project_project.py
@@ -11,7 +11,7 @@ class ProjectProject(models.Model):
document_page_ids = fields.One2many(
string='Wiki',
comodel_name='document.page',
- inverse_name='project_id'
+ inverse_name='project_id',
)
document_page_count = fields.Integer(
compute='_compute_document_page_count',
diff --git a/document_page_project/static/description/icon.png b/document_page_project/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
zcmW++2RxMjAAjx~&dlBk9S+%}OXg)AGE&Cb*&}d0jUxM@u(PQx^-s)697TX`ehR4?GS^qbkof1cslKgkU)h65qZ9Oc=ml_0temigYLJfnz{IDzUf>bGs4N!v3=Z3jMq&A#7%rM5eQ#dc?k~!
zVpnB`o+K7|Al`Q_U;eD$B
zfJtP*jH`siUq~{KE)`jP2|#TUEFGRryE2`i0**z#*^6~AI|YzIWy$Cu#CSLW3q=GA
z6`?GZymC;dCPk~rBS%eCb`5OLr;RUZ;D`}um=H)BfVIq%7VhiMr)_#G0N#zrNH|__
zc+blN2UAB0=617@>_u;MPHN;P;N#YoE=)R#i$k_`UAA>WWCcEVMh~L_
zj--gtp&|K1#58Yz*AHCTMziU1Jzt_jG0I@qAOHsk$2}yTmVkBp_eHuY$A9)>P6o~I
z%aQ?!(GqeQ-Y+b0I(m9pwgi(IIZZzsbMv+9w{PFtd_<_(LA~0H(xz{=FhLB@(1&qHA5EJw1>>=%q2f&^X>IQ{!GJ4e9U
z&KlB)z(84HmNgm2hg2C0>WM{E(DdPr+EeU_N@57;PC2&DmGFW_9kP&%?X4}+xWi)(
z;)z%wI5>D4a*5XwD)P--sPkoY(a~WBw;E~AW`Yue4kFa^LM3X`8x|}ZUeMnqr}>kH
zG%WWW>3ml$Yez?i%)2pbKPI7?5o?hydokgQyZsNEr{a|mLdt;X2TX(#B1j35xPnPW
z*bMSSOauW>o;*=kO8ojw91VX!qoOQb)zHJ!odWB}d+*K?#sY_jqPdg{Sm2HdYzdEx
zOGVPhVRTGPtv0o}RfVP;Nd(|CB)I;*t&QO8h
zFfekr30S!-LHmV_Su-W+rEwYXJ^;6&3|L$mMC8*bQptyOo9;>Qb9Q9`ySe3%V$A*9
zeKEe+b0{#KWGp$F+tga)0RtI)nhMa-K@JS}2krK~n8vJ=Ngm?R!9G<~RyuU0d?nz#
z-5EK$o(!F?hmX*2Yt6+coY`6jGbb7tF#6nHA
zuKk=GGJ;ZwON1iAfG$E#Y7MnZVmrY|j0eVI(DN_MNFJmyZ|;w4tf@=CCDZ#5N_0K=
z$;R~bbk?}TpfDjfB&aiQ$VA}s?P}xPERJG{kxk5~R`iRS(SK5d+Xs9swCozZISbnS
zk!)I0>t=A<-^z(cmSFz3=jZ23u13X><0b)P)^1T_))Kr`e!-pb#q&J*Q`p+B6la%C
zuVl&0duN<;uOsB3%T9Fp8t{ED108)`y_~Hnd9AUX7h-H?jVuU|}My+C=TjH(jKz
zqMVr0re3S$H@t{zI95qa)+Crz*5Zj}Ao%4Z><+W(nOZd?gDnfNBC3>M8WE61$So|P
zVvqH0SNtDTcsUdzaMDpT=Ty0pDHHNL@Z0w$Y`XO
z2M-_r1S+GaH%pz#Uy0*w$Vdl=X=rQXEzO}d6J^R6zjM1u&c9vYLvLp?W7w(?np9x1
zE_0JSAJCPB%i7p*Wvg)pn5T`8k3-uR?*NT|J`eS#_#54p>!p(mLDvmc-3o0mX*mp_
zN*AeS<>#^-{S%W<*mz^!X$w_2dHWpcJ6^j64qFBft-o}o_Vx80o0>}Du;>kLts;$8
zC`7q$QI(dKYG`Wa8#wl@V4jVWBRGQ@1dr-hstpQL)Tl+aqVpGpbSfN>5i&QMXfiZ>
zaA?T1VGe?rpQ@;+pkrVdd{klI&jVS@I5_iz!=UMpTsa~mBga?1r}aRBm1WS;TT*s0f0lY=JBl66Upy)-k4J}lh=P^8(SXk~0xW=T9v*B|gzIhN
z>qsO7dFd~mgxAy4V?&)=5ieYq?zi?ZEoj)&2o)RLy=@hbCRcfT5jigwtQGE{L*8<@Yd{zg;CsL5mvzfDY}P-wos_6PfprFVaeqNE%h
zKZhLtcQld;ZD+>=nqN~>GvROfueSzJD&BE*}XfU|H&(FssBqY=hPCt`d
zH?@s2>I(|;fcW&YM6#V#!kUIP8$Nkdh0A(bEVj``-AAyYgwY~jB
zT|I7Bf@%;7aL7Wf4dZ%VqF$eiaC38OV6oy3Z#TER2G+fOCd9Iaoy6aLYbPTN{XRPz
z;U!V|vBf%H!}52L2gH_+j;`bTcQRXB+y9onc^wLm5wi3-Be}U>k_u>2Eg$=k!(l@I
zcCg+flakT2Nej3i0yn+g+}%NYb?ta;R?(g5SnwsQ49U8Wng8d|{B+lyRcEDvR3+`O{zfmrmvFrL6acVP%yG98X
zo&+VBg@px@i)%o?dG(`T;n*$S5*rnyiR#=wW}}GsAcfyQpE|>a{=$Hjg=-*_K;UtD
z#z-)AXwSRY?OPefw^iI+
z)AXz#PfEjlwTes|_{sB?4(O@fg0AJ^g8gP}ex9Ucf*@_^J(s_5jJV}c)s$`Myn|Kd
z$6>}#q^n{4vN@+Os$m7KV+`}c%4)4pv@06af4-x5#wj!KKb%caK{A&Y#Rfs
z-po?Dcb1({W=6FKIUirH&(yg=*6aLCekcKwyfK^JN5{wcA3nhO(o}SK#!CINhI`-I
z1)6&n7O&ZmyFMuNwvEic#IiOAwNkR=u5it{B9n2sAJV5pNhar=j5`*N!Na;c7g!l$
z3aYBqUkqqTJ=Re-;)s!EOeij=7SQZ3Hq}ZRds%IM*PtM$wV
z@;rlc*NRK7i3y5BETSKuumEN`Xu_8GP1Ri=OKQ$@I^ko8>H6)4rjiG5{VBM>B|%`&&s^)jS|-_95&yc=GqjNo{zFkw%%HHhS~e=s
zD#sfS+-?*t|J!+ozP6KvtOl!R)@@-z24}`9{QaVLD^9VCSR2b`b!KC#o;Ki<+wXB6
zx3&O0LOWcg4&rv4QG0)4yb}7BFSEg~=IR5#ZRj8kg}dS7_V&^%#Do==#`u
zpy6{ox?jWuR(;pg+f@mT>#HGWHAJRRDDDv~@(IDw&R>9643kK#HN`!1vBJHnC+RM&yIh8{gG2q
zA%e*U3|N0XSRa~oX-3EAneep)@{h2vvd3Xvy$7og(sayr@95+e6~Xvi1tUqnIxoIH
zVWo*OwYElb#uyW{Imam6f2rGbjR!Y3`#gPqkv57dB6K^wRGxc9B(t|aYDGS=m$&S!NmCtrMMaUg(c
zc2qC=2Z`EEFMW-me5B)24AqF*bV5Dr-M5ig(l-WPS%CgaPzs6p_gnCIvTJ=Y<6!gT
zVt@AfYCzjjsMEGi=rDQHo0yc;HqoRNnNFeWZgcm?f;cp(6CNylj36DoL(?TS7eU#+
z7&mfr#y))+CJOXQKUMZ7QIdS9@#-}7y2K1{8)cCt0~-X0O!O?Qx#E4Og+;A2SjalQ
zs7r?qn0H044=sDN$SRG$arw~n=+T_DNdSrarmu)V6@|?1-ZB#hRn`uilTGPJ@fqEy
zGt(f0B+^JDP&f=r{#Y_wi#AVDf-y!RIXU^0jXsFpf>=Ji*TeqSY!H~AMbJdCGLhC)
zn7Rx+sXw6uYj;WRYrLd^5IZq@6JI1C^YkgnedZEYy<&4(z%Q$5yv#Boo{AH8n$a
zhb4Y3PWdr269&?V%uI$xMcUrMzl=;w<_nm*qr=c3Rl@i5wWB;e-`t7D&c-mcQl7x!
zZWB`UGcw=Y2=}~wzrfLx=uet<;m3~=8I~ZRuzvMQUQdr+yTV|ATf1Uuomr__nDf=X
zZ3WYJtHp_ri(}SQAPjv+Y+0=fH4krOP@S&=zZ-t1jW1o@}z;xk8
z(Nz1co&El^HK^NrhVHa-_;&88vTU>_J33=%{if;BEY*J#1n59=07jrGQ#IP>@u#3A
z;!q+E1Rj3ZJ+!4bq9F8PXJ@yMgZL;>&gYA0%_Kbi8?S=XGM~dnQZQ!yBSgcZhY96H
zrWnU;k)qy`rX&&xlDyA%(a1Hhi5CWkmg(`Gb%m(HKi-7Z!LKGRP_B8@`7&hdDy5n=
z`OIxqxiVfX@OX1p(mQu>0Ai*v_cTMiw4qRt3~NBvr9oBy0)r>w3p~V0SCm=An6@3n)>@z!|o-$HvDK
z|3D2ZMJkLE5loMKl6R^ez@Zz%S$&mbeoqH5`Bb){Ei21q&VP)hWS2tjShfFtGE+$z
zzCR$P#uktu+#!w)cX!lWN1XU%K-r=s{|j?)Akf@q#3b#{6cZCuJ~gCxuMXRmI$nGtnH+-h
z+GEi!*X=AP<|fG`1>MBdTb?28JYc=fGvAi2I<$B(rs$;eoJCyR6_bc~p!XR@O-+sD
z=eH`-ye})I5ic1eL~TDmtfJ|8`0VJ*Yr=hNCd)G1p2MMz4C3^Mj?7;!w|Ly%JqmuW
zlIEW^Ft%z?*|fpXda>Jr^1noFZEwFgVV%|*XhH@acv8rdGxeEX{M$(vG{Zw+x(ei@
zmfXb22}8-?Fi`vo-YVrTH*C?a8%M=Hv9MqVH7H^J$KsD?>!SFZ;ZsvnHr_gn=7acz
z#W?0eCdVhVMWN12VV^$>WlQ?f;P^{(&pYTops|btm6aj>_Uz+hqpGwB)vWp0Cf5y<
zft8-je~nn?W11plq}N)4A{l8I7$!ks_x$PXW-2XaRFswX_BnF{R#6YIwMhAgd5F9X
zGmwdadS6(a^fjHtXg8=l?Rc0Sm%hk6E9!5cLVloEy4eh(=FwgP`)~I^5~pBEWo+F6
zSf2ncyMurJN91#cJTy_u8Y}@%!bq1RkGC~-bV@SXRd4F{R-*V`bS+6;W5vZ(&+I<9$;-V|eNfLa5n-6%
z2(}&uGRF;p92eS*sE*oR$@pexaqr*meB)VhmIg@h{uzkk$9~qh#cHhw#>O%)b@+(|
z^IQgqzuj~Sk(J;swEM-3TrJAPCq9k^^^`q{IItKBRXYe}e0Tdr=Huf7da3$l4PdpwWDop%^}n;dD#K4s#DYA8SHZ
z&1!riV4W4R7R#C))JH1~axJ)RYnM$$lIR%6fIVA@zV{XVyx}C+a-Dt8Y9M)^KU0+H
zR4IUb2CJ{Hg>CuaXtD50jB(_Tcx=Z$^WYu2u5kubqmwp%drJ6
z?Fo40g!Qd<-l=TQxqHEOuPX0;^z7iX?Ke^a%XT<13TA^5`4Xcw6D@Ur&VT&CUe0d}
z1GjOVF1^L@>O)l@?bD~$wzgf(nxX1OGD8fEV?TdJcZc2KoUe|oP1#=$$7ee|xbY)A
zDZq+cuTpc(fFdj^=!;{k03C69lMQ(|>uhRfRu%+!k&YOi-3|1QKB
z
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
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
diff --git a/document_page_project/static/description/index.html b/document_page_project/static/description/index.html
index 3d35517b221..6db9bcf677b 100644
--- a/document_page_project/static/description/index.html
+++ b/document_page_project/static/description/index.html
@@ -3,8 +3,8 @@
-
-Project Wiki
+
+Document Page Project
-
-
Project Wiki
+
+
Document Page Project
-
+
This module allow to link document pages to projects.
Table of contents
@@ -394,7 +394,7 @@
Bugs are tracked on GitHub 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 .
+
feedback .
Do not contact contributors directly about support or help with technical issues.
@@ -402,7 +402,7 @@
@@ -421,7 +421,7 @@
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.
-
This module is part of the OCA/knowledge project on GitHub.
+
This module is part of the OCA/knowledge project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute .
From bf34f1c867b58bd72770b54f49190c8f4466d6e0 Mon Sep 17 00:00:00 2001
From: Bole
Date: Wed, 13 Nov 2019 15:13:27 +0000
Subject: [PATCH 004/107] Added translation using Weblate (Croatian)
---
document_page_project/i18n/hr.po | 57 ++++++++++++++++++++++++++++++++
1 file changed, 57 insertions(+)
create mode 100644 document_page_project/i18n/hr.po
diff --git a/document_page_project/i18n/hr.po b/document_page_project/i18n/hr.po
new file mode 100644
index 00000000000..9bbe46bb4db
--- /dev/null
+++ b/document_page_project/i18n/hr.po
@@ -0,0 +1,57 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * document_page_project
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 12.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: hr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<="
+"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#. module: document_page_project
+#: model_terms:ir.ui.view,arch_db:document_page_project.view_project_kanban
+msgid "Wiki Pages "
+msgstr ""
+
+#. module: document_page_project
+#: model_terms:ir.actions.act_window,help:document_page_project.action_document_page_projects
+msgid "Click to create a new web page."
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model,name:document_page_project.model_document_page
+msgid "Document Page"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_count
+msgid "Document Page Count"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model,name:document_page_project.model_project_project
+#: model:ir.model.fields,field_description:document_page_project.field_document_page__project_id
+msgid "Project"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.actions.act_window,name:document_page_project.action_document_page_projects
+msgid "Project Wiki"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_ids
+msgid "Wiki"
+msgstr ""
+
+#. module: document_page_project
+#: model_terms:ir.ui.view,arch_db:document_page_project.edit_project
+msgid "Wiki Pages"
+msgstr ""
From 634a70be6690723e98ee053206408b7268c9ebfd Mon Sep 17 00:00:00 2001
From: Bole
Date: Wed, 13 Nov 2019 15:13:42 +0000
Subject: [PATCH 005/107] Translated using Weblate (Croatian)
Currently translated at 100.0% (8 of 8 strings)
Translation: knowledge-12.0/knowledge-12.0-document_page_project
Translate-URL: https://translation.odoo-community.org/projects/knowledge-12-0/knowledge-12-0-document_page_project/hr/
---
document_page_project/i18n/hr.po | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/document_page_project/i18n/hr.po b/document_page_project/i18n/hr.po
index 9bbe46bb4db..17bb5a1640d 100644
--- a/document_page_project/i18n/hr.po
+++ b/document_page_project/i18n/hr.po
@@ -6,7 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2019-11-13 17:34+0000\n"
+"Last-Translator: Bole \n"
"Language-Team: none\n"
"Language: hr\n"
"MIME-Version: 1.0\n"
@@ -14,44 +15,45 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<="
"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: Weblate 3.8\n"
#. module: document_page_project
#: model_terms:ir.ui.view,arch_db:document_page_project.view_project_kanban
msgid "Wiki Pages "
-msgstr ""
+msgstr "Wiki Stranice "
#. module: document_page_project
#: model_terms:ir.actions.act_window,help:document_page_project.action_document_page_projects
msgid "Click to create a new web page."
-msgstr ""
+msgstr "Kliknite za kreiranje nove web stranice."
#. module: document_page_project
#: model:ir.model,name:document_page_project.model_document_page
msgid "Document Page"
-msgstr ""
+msgstr "Dokumenti"
#. module: document_page_project
#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_count
msgid "Document Page Count"
-msgstr ""
+msgstr "Broj stranica sa dokumentima"
#. module: document_page_project
#: model:ir.model,name:document_page_project.model_project_project
#: model:ir.model.fields,field_description:document_page_project.field_document_page__project_id
msgid "Project"
-msgstr ""
+msgstr "Projekt"
#. module: document_page_project
#: model:ir.actions.act_window,name:document_page_project.action_document_page_projects
msgid "Project Wiki"
-msgstr ""
+msgstr "Wiki Projekta"
#. module: document_page_project
#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_ids
msgid "Wiki"
-msgstr ""
+msgstr "Wiki"
#. module: document_page_project
#: model_terms:ir.ui.view,arch_db:document_page_project.edit_project
msgid "Wiki Pages"
-msgstr ""
+msgstr "Wiki stranice"
From 8bf10524de598a8fd86bdb8656c9fcb0419139b4 Mon Sep 17 00:00:00 2001
From: Joan Sisquella
Date: Wed, 15 Jan 2020 12:15:05 +0100
Subject: [PATCH 006/107] [IMP] document_page_project: black, isort
---
document_page_project/__manifest__.py | 27 +++++++------------
document_page_project/models/document_page.py | 7 ++---
.../models/project_project.py | 10 +++----
3 files changed, 15 insertions(+), 29 deletions(-)
diff --git a/document_page_project/__manifest__.py b/document_page_project/__manifest__.py
index 43148709fe7..a98ea9a9bb0 100644
--- a/document_page_project/__manifest__.py
+++ b/document_page_project/__manifest__.py
@@ -3,22 +3,15 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
{
- 'name': 'Document Page Project',
- 'summary': 'This module links document pages to projects',
- 'version': '12.0.1.0.0',
+ "name": "Document Page Project",
+ "summary": "This module links document pages to projects",
+ "version": "12.0.1.0.0",
"development_status": "Beta",
- 'category': 'Project',
- 'author': 'Eficent, '
- 'Odoo Community Association (OCA)',
- 'website': 'https://github.com/OCA/knowledge',
- 'license': 'AGPL-3',
- 'depends': [
- 'project',
- 'document_page',
- ],
- 'data': [
- 'views/document_page_views.xml',
- 'views/project_project_views.xml',
- ],
- 'installable': True,
+ "category": "Project",
+ "author": "Eficent, " "Odoo Community Association (OCA)",
+ "website": "https://github.com/OCA/knowledge",
+ "license": "AGPL-3",
+ "depends": ["project", "document_page"],
+ "data": ["views/document_page_views.xml", "views/project_project_views.xml"],
+ "installable": True,
}
diff --git a/document_page_project/models/document_page.py b/document_page_project/models/document_page.py
index dd55e43d37b..0509b1a74d8 100644
--- a/document_page_project/models/document_page.py
+++ b/document_page_project/models/document_page.py
@@ -6,9 +6,6 @@
class DocumentPage(models.Model):
- _inherit = 'document.page'
+ _inherit = "document.page"
- project_id = fields.Many2one(
- string='Project',
- comodel_name='project.project',
- )
+ project_id = fields.Many2one(string="Project", comodel_name="project.project")
diff --git a/document_page_project/models/project_project.py b/document_page_project/models/project_project.py
index 955f748cef8..a5d3a53b6eb 100644
--- a/document_page_project/models/project_project.py
+++ b/document_page_project/models/project_project.py
@@ -6,16 +6,12 @@
class ProjectProject(models.Model):
- _inherit = 'project.project'
+ _inherit = "project.project"
document_page_ids = fields.One2many(
- string='Wiki',
- comodel_name='document.page',
- inverse_name='project_id',
- )
- document_page_count = fields.Integer(
- compute='_compute_document_page_count',
+ string="Wiki", comodel_name="document.page", inverse_name="project_id"
)
+ document_page_count = fields.Integer(compute="_compute_document_page_count")
@api.multi
def _compute_document_page_count(self):
From 1221cde0811f37425453cb77e2d0883cc0c093aa Mon Sep 17 00:00:00 2001
From: Joan Sisquella
Date: Wed, 15 Jan 2020 12:40:00 +0100
Subject: [PATCH 007/107] [MIG] document_page_project: Migration to 13.0
---
document_page_project/README.rst | 20 +++++------
document_page_project/__manifest__.py | 9 +++--
.../i18n/document_page_project.pot | 7 ++--
document_page_project/models/document_page.py | 3 +-
.../models/project_project.py | 6 ++--
document_page_project/readme/CONTRIBUTORS.rst | 4 +--
.../static/description/index.html | 12 +++----
.../views/document_page_views.xml | 23 ++++++------
.../views/project_project_views.xml | 35 +++++++++++++------
9 files changed, 64 insertions(+), 55 deletions(-)
diff --git a/document_page_project/README.rst b/document_page_project/README.rst
index a3677df7a23..7387e2a35e1 100644
--- a/document_page_project/README.rst
+++ b/document_page_project/README.rst
@@ -7,20 +7,20 @@ Document Page Project
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
+.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
:target: https://odoo-community.org/page/development-status
- :alt: Beta
+ :alt: Production/Stable
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fknowledge-lightgray.png?logo=github
- :target: https://github.com/OCA/knowledge/tree/12.0/document_page_project
+ :target: https://github.com/OCA/knowledge/tree/13.0/document_page_project
:alt: OCA/knowledge
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/knowledge-12-0/knowledge-12-0-document_page_project
+ :target: https://translation.odoo-community.org/projects/knowledge-13-0/knowledge-13-0-document_page_project
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/118/12.0
+ :target: https://runbot.odoo-community.org/runbot/118/13.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -44,7 +44,7 @@ Bug Tracker
Bugs are tracked on `GitHub 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 `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -54,14 +54,14 @@ Credits
Authors
~~~~~~~
-* Eficent
+* ForgeFlow
Contributors
~~~~~~~~~~~~
-* `Eficent `_:
+* `Forgeflow `_:
- * Lois Rilo
+ * Lois Rilo
Maintainers
~~~~~~~~~~~
@@ -76,6 +76,6 @@ 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.
-This module is part of the `OCA/knowledge `_ project on GitHub.
+This module is part of the `OCA/knowledge `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/document_page_project/__manifest__.py b/document_page_project/__manifest__.py
index a98ea9a9bb0..56f4b8ed01e 100644
--- a/document_page_project/__manifest__.py
+++ b/document_page_project/__manifest__.py
@@ -1,14 +1,13 @@
-# Copyright 2019 Eficent Business and IT Consulting Services S.L.
-# (http://www.eficent.com) - Lois Rilo
+# Copyright 2019 ForgeFlow S.L. (https://www.forgeflow.com) - Lois Rilo
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
{
"name": "Document Page Project",
"summary": "This module links document pages to projects",
- "version": "12.0.1.0.0",
- "development_status": "Beta",
+ "version": "13.0.1.0.1",
+ "development_status": "Production/Stable",
"category": "Project",
- "author": "Eficent, " "Odoo Community Association (OCA)",
+ "author": "ForgeFlow, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/knowledge",
"license": "AGPL-3",
"depends": ["project", "document_page"],
diff --git a/document_page_project/i18n/document_page_project.pot b/document_page_project/i18n/document_page_project.pot
index acaa8891d88..2d9a91e6f49 100644
--- a/document_page_project/i18n/document_page_project.pot
+++ b/document_page_project/i18n/document_page_project.pot
@@ -1,12 +1,12 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
-# * document_page_project
+# * document_page_project
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: <>\n"
+"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -53,4 +53,3 @@ msgstr ""
#: model_terms:ir.ui.view,arch_db:document_page_project.edit_project
msgid "Wiki Pages"
msgstr ""
-
diff --git a/document_page_project/models/document_page.py b/document_page_project/models/document_page.py
index 0509b1a74d8..f819bb75f6c 100644
--- a/document_page_project/models/document_page.py
+++ b/document_page_project/models/document_page.py
@@ -1,5 +1,4 @@
-# Copyright 2019 Eficent Business and IT Consulting Services S.L.
-# (http://www.eficent.com)
+# Copyright 2019 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import fields, models
diff --git a/document_page_project/models/project_project.py b/document_page_project/models/project_project.py
index a5d3a53b6eb..259fdf5d91d 100644
--- a/document_page_project/models/project_project.py
+++ b/document_page_project/models/project_project.py
@@ -1,8 +1,7 @@
-# Copyright 2019 Eficent Business and IT Consulting Services S.L.
-# (http://www.eficent.com)
+# Copyright 2019 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
-from odoo import api, fields, models
+from odoo import fields, models
class ProjectProject(models.Model):
@@ -13,7 +12,6 @@ class ProjectProject(models.Model):
)
document_page_count = fields.Integer(compute="_compute_document_page_count")
- @api.multi
def _compute_document_page_count(self):
for rec in self:
rec.document_page_count = len(rec.document_page_ids)
diff --git a/document_page_project/readme/CONTRIBUTORS.rst b/document_page_project/readme/CONTRIBUTORS.rst
index edfe84680e8..a17f4de983f 100644
--- a/document_page_project/readme/CONTRIBUTORS.rst
+++ b/document_page_project/readme/CONTRIBUTORS.rst
@@ -1,3 +1,3 @@
-* `Eficent `_:
+* `Forgeflow `_:
- * Lois Rilo
+ * Lois Rilo
diff --git a/document_page_project/static/description/index.html b/document_page_project/static/description/index.html
index 6db9bcf677b..1115549ef7e 100644
--- a/document_page_project/static/description/index.html
+++ b/document_page_project/static/description/index.html
@@ -367,7 +367,7 @@ Document Page Project
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
This module allow to link document pages to projects.
Table of contents
@@ -394,7 +394,7 @@
Bugs are tracked on GitHub 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 .
+
feedback .
Do not contact contributors directly about support or help with technical issues.
@@ -402,14 +402,14 @@
-Eficent :
@@ -421,7 +421,7 @@
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.
-This module is part of the OCA/knowledge project on GitHub.
+This module is part of the OCA/knowledge project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute .
diff --git a/document_page_project/views/document_page_views.xml b/document_page_project/views/document_page_views.xml
index 19d0d23fb82..ad1be2d2523 100644
--- a/document_page_project/views/document_page_views.xml
+++ b/document_page_project/views/document_page_views.xml
@@ -1,35 +1,36 @@
-
+
-
document.page.form - document_page_project
document.page
-
+
-
+
-
Project Wiki
document.page
- [('type','=','content'), ('project_id', '=', active_id)]
+ [('type','=','content'), ('project_id', '=', active_id)]
{
'default_type': 'content',
'default_project_id': active_id}
- form
tree,form
-
-
+ (0,0,{'view_mode':'form', 'view_id': ref('document_page.view_wiki_form')})]"
+ />
+
Click to create a new web page.
-
diff --git a/document_page_project/views/project_project_views.xml b/document_page_project/views/project_project_views.xml
index 9bbb9337b09..7b68782f6c5 100644
--- a/document_page_project/views/project_project_views.xml
+++ b/document_page_project/views/project_project_views.xml
@@ -1,15 +1,22 @@
-
+
-
project.project
-
+
-
+
-
+
Wiki Pages
@@ -17,19 +24,25 @@
-
project.project.form - document_page_project
project.project
-
+
-
-
+
+
-
From cb840c5257296dbcc594d0903a42c171043cb3ac Mon Sep 17 00:00:00 2001
From: Yves Goldberg
Date: Tue, 13 Oct 2020 07:40:00 +0000
Subject: [PATCH 008/107] Added translation using Weblate (Hebrew)
---
document_page_project/i18n/he_IL.po | 57 +++++++++++++++++++++++++++++
1 file changed, 57 insertions(+)
create mode 100644 document_page_project/i18n/he_IL.po
diff --git a/document_page_project/i18n/he_IL.po b/document_page_project/i18n/he_IL.po
new file mode 100644
index 00000000000..42965f547fe
--- /dev/null
+++ b/document_page_project/i18n/he_IL.po
@@ -0,0 +1,57 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * document_page_project
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 13.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: he_IL\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
+"n % 10 == 0) ? 2 : 3));\n"
+
+#. module: document_page_project
+#: model_terms:ir.ui.view,arch_db:document_page_project.view_project_kanban
+msgid "Wiki Pages "
+msgstr ""
+
+#. module: document_page_project
+#: model_terms:ir.actions.act_window,help:document_page_project.action_document_page_projects
+msgid "Click to create a new web page."
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model,name:document_page_project.model_document_page
+msgid "Document Page"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_count
+msgid "Document Page Count"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model,name:document_page_project.model_project_project
+#: model:ir.model.fields,field_description:document_page_project.field_document_page__project_id
+msgid "Project"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.actions.act_window,name:document_page_project.action_document_page_projects
+msgid "Project Wiki"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_ids
+msgid "Wiki"
+msgstr ""
+
+#. module: document_page_project
+#: model_terms:ir.ui.view,arch_db:document_page_project.edit_project
+msgid "Wiki Pages"
+msgstr ""
From e5de4ececb9b32e18f99c788900686cb0b5e3d26 Mon Sep 17 00:00:00 2001
From: Yves Goldberg
Date: Tue, 13 Oct 2020 07:40:33 +0000
Subject: [PATCH 009/107] Translated using Weblate (Hebrew)
Currently translated at 87.5% (7 of 8 strings)
Translation: knowledge-13.0/knowledge-13.0-document_page_project
Translate-URL: https://translation.odoo-community.org/projects/knowledge-13-0/knowledge-13-0-document_page_project/he_IL/
---
document_page_project/i18n/he_IL.po | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/document_page_project/i18n/he_IL.po b/document_page_project/i18n/he_IL.po
index 42965f547fe..9de61ed6838 100644
--- a/document_page_project/i18n/he_IL.po
+++ b/document_page_project/i18n/he_IL.po
@@ -6,7 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2020-10-13 10:08+0000\n"
+"Last-Translator: Yves Goldberg \n"
"Language-Team: none\n"
"Language: he_IL\n"
"MIME-Version: 1.0\n"
@@ -14,44 +15,46 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
"n % 10 == 0) ? 2 : 3));\n"
+"X-Generator: Weblate 3.10\n"
#. module: document_page_project
#: model_terms:ir.ui.view,arch_db:document_page_project.view_project_kanban
msgid "Wiki Pages "
-msgstr ""
+msgstr "Wiki דפי "
#. module: document_page_project
#: model_terms:ir.actions.act_window,help:document_page_project.action_document_page_projects
msgid "Click to create a new web page."
-msgstr ""
+msgstr "לחץ ליצירת עמוד נחיתה."
#. module: document_page_project
#: model:ir.model,name:document_page_project.model_document_page
msgid "Document Page"
-msgstr ""
+msgstr "דף מסמך"
#. module: document_page_project
#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_count
msgid "Document Page Count"
-msgstr ""
+msgstr "מספור עמודים במסמכים"
#. module: document_page_project
#: model:ir.model,name:document_page_project.model_project_project
#: model:ir.model.fields,field_description:document_page_project.field_document_page__project_id
msgid "Project"
-msgstr ""
+msgstr "פרוייקט"
#. module: document_page_project
#: model:ir.actions.act_window,name:document_page_project.action_document_page_projects
msgid "Project Wiki"
-msgstr ""
+msgstr "תיקי Wiki"
#. module: document_page_project
#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_ids
+#, fuzzy
msgid "Wiki"
-msgstr ""
+msgstr "Wiki"
#. module: document_page_project
#: model_terms:ir.ui.view,arch_db:document_page_project.edit_project
msgid "Wiki Pages"
-msgstr ""
+msgstr "דפי Wiki"
From 89e3d581e5b7749a3e4a69429dc9c74d8c40d789 Mon Sep 17 00:00:00 2001
From: Yves Goldberg
Date: Mon, 19 Oct 2020 05:09:40 +0000
Subject: [PATCH 010/107] Translated using Weblate (Hebrew)
Currently translated at 87.5% (7 of 8 strings)
Translation: knowledge-13.0/knowledge-13.0-document_page_project
Translate-URL: https://translation.odoo-community.org/projects/knowledge-13-0/knowledge-13-0-document_page_project/he_IL/
---
document_page_project/i18n/he_IL.po | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/document_page_project/i18n/he_IL.po b/document_page_project/i18n/he_IL.po
index 9de61ed6838..b06c8df4715 100644
--- a/document_page_project/i18n/he_IL.po
+++ b/document_page_project/i18n/he_IL.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2020-10-13 10:08+0000\n"
+"PO-Revision-Date: 2020-10-19 08:08+0000\n"
"Last-Translator: Yves Goldberg \n"
"Language-Team: none\n"
"Language: he_IL\n"
@@ -30,7 +30,7 @@ msgstr "לחץ ליצירת עמוד נחיתה."
#. module: document_page_project
#: model:ir.model,name:document_page_project.model_document_page
msgid "Document Page"
-msgstr "דף מסמך"
+msgstr "עמוד המסמך"
#. module: document_page_project
#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_count
From 42a5bfd307fb1c6e7a7449dc962dc7bff6602fc1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ana=20Su=C3=A1rez?=
Date: Tue, 16 Mar 2021 11:17:55 +0000
Subject: [PATCH 011/107] Added translation using Weblate (Spanish)
---
document_page_project/i18n/es.po | 56 ++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)
create mode 100644 document_page_project/i18n/es.po
diff --git a/document_page_project/i18n/es.po b/document_page_project/i18n/es.po
new file mode 100644
index 00000000000..e978eafe4cd
--- /dev/null
+++ b/document_page_project/i18n/es.po
@@ -0,0 +1,56 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * document_page_project
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 13.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. module: document_page_project
+#: model_terms:ir.ui.view,arch_db:document_page_project.view_project_kanban
+msgid "Wiki Pages "
+msgstr ""
+
+#. module: document_page_project
+#: model_terms:ir.actions.act_window,help:document_page_project.action_document_page_projects
+msgid "Click to create a new web page."
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model,name:document_page_project.model_document_page
+msgid "Document Page"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_count
+msgid "Document Page Count"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model,name:document_page_project.model_project_project
+#: model:ir.model.fields,field_description:document_page_project.field_document_page__project_id
+msgid "Project"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.actions.act_window,name:document_page_project.action_document_page_projects
+msgid "Project Wiki"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_ids
+msgid "Wiki"
+msgstr ""
+
+#. module: document_page_project
+#: model_terms:ir.ui.view,arch_db:document_page_project.edit_project
+msgid "Wiki Pages"
+msgstr ""
From 651061ec65974a26c01446b8cde391a0a22d61ce Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ana=20Su=C3=A1rez?=
Date: Tue, 16 Mar 2021 11:19:19 +0000
Subject: [PATCH 012/107] Translated using Weblate (Spanish)
Currently translated at 87.5% (7 of 8 strings)
Translation: knowledge-13.0/knowledge-13.0-document_page_project
Translate-URL: https://translation.odoo-community.org/projects/knowledge-13-0/knowledge-13-0-document_page_project/es/
---
document_page_project/i18n/es.po | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/document_page_project/i18n/es.po b/document_page_project/i18n/es.po
index e978eafe4cd..82c4c2ec5d8 100644
--- a/document_page_project/i18n/es.po
+++ b/document_page_project/i18n/es.po
@@ -6,51 +6,54 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2021-03-16 11:46+0000\n"
+"Last-Translator: Ana Suárez \n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.3.2\n"
#. module: document_page_project
#: model_terms:ir.ui.view,arch_db:document_page_project.view_project_kanban
msgid "Wiki Pages "
-msgstr ""
+msgstr "Páginas Wiki "
#. module: document_page_project
#: model_terms:ir.actions.act_window,help:document_page_project.action_document_page_projects
msgid "Click to create a new web page."
-msgstr ""
+msgstr "Click para crear una página web nueva."
#. module: document_page_project
#: model:ir.model,name:document_page_project.model_document_page
msgid "Document Page"
-msgstr ""
+msgstr "Página Documento"
#. module: document_page_project
#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_count
+#, fuzzy
msgid "Document Page Count"
-msgstr ""
+msgstr "Número Páginas Documento"
#. module: document_page_project
#: model:ir.model,name:document_page_project.model_project_project
#: model:ir.model.fields,field_description:document_page_project.field_document_page__project_id
msgid "Project"
-msgstr ""
+msgstr "Proyecto"
#. module: document_page_project
#: model:ir.actions.act_window,name:document_page_project.action_document_page_projects
msgid "Project Wiki"
-msgstr ""
+msgstr "Proyecto Wiki"
#. module: document_page_project
#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_ids
msgid "Wiki"
-msgstr ""
+msgstr "Wiki"
#. module: document_page_project
#: model_terms:ir.ui.view,arch_db:document_page_project.edit_project
msgid "Wiki Pages"
-msgstr ""
+msgstr "Páginas Wiki"
From 8ed0282f1c8e3a1959779f8076c84de1e188e3d9 Mon Sep 17 00:00:00 2001
From: Michael Telahun
Date: Sat, 13 Nov 2021 18:14:49 +0300
Subject: [PATCH 013/107] [IMP] document_page_project: black, isort, prettier
---
document_page_project/__manifest__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/document_page_project/__manifest__.py b/document_page_project/__manifest__.py
index 56f4b8ed01e..7388be32fd6 100644
--- a/document_page_project/__manifest__.py
+++ b/document_page_project/__manifest__.py
@@ -4,7 +4,7 @@
{
"name": "Document Page Project",
"summary": "This module links document pages to projects",
- "version": "13.0.1.0.1",
+ "version": "14.0.1.0.1",
"development_status": "Production/Stable",
"category": "Project",
"author": "ForgeFlow, Odoo Community Association (OCA)",
From 2f72730c5e21ce6bba69538a5fe9ab44a4863dea Mon Sep 17 00:00:00 2001
From: Michael Telahun
Date: Mon, 15 Nov 2021 04:09:54 +0300
Subject: [PATCH 014/107] [MIG] document_page_project: Migration to 14.0
---
document_page_project/README.rst | 10 +++---
.../i18n/document_page_project.pot | 20 ++++++++++-
.../static/description/index.html | 6 ++--
document_page_project/tests/__init__.py | 2 ++
.../tests/test_project_project.py | 36 +++++++++++++++++++
5 files changed, 65 insertions(+), 9 deletions(-)
create mode 100644 document_page_project/tests/__init__.py
create mode 100644 document_page_project/tests/test_project_project.py
diff --git a/document_page_project/README.rst b/document_page_project/README.rst
index 7387e2a35e1..ba7706ee7d0 100644
--- a/document_page_project/README.rst
+++ b/document_page_project/README.rst
@@ -14,13 +14,13 @@ Document Page Project
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fknowledge-lightgray.png?logo=github
- :target: https://github.com/OCA/knowledge/tree/13.0/document_page_project
+ :target: https://github.com/OCA/knowledge/tree/14.0/document_page_project
:alt: OCA/knowledge
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/knowledge-13-0/knowledge-13-0-document_page_project
+ :target: https://translation.odoo-community.org/projects/knowledge-14-0/knowledge-14-0-document_page_project
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/118/13.0
+ :target: https://runbot.odoo-community.org/runbot/118/14.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -44,7 +44,7 @@ Bug Tracker
Bugs are tracked on `GitHub 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 `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -76,6 +76,6 @@ 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.
-This module is part of the `OCA/knowledge `_ project on GitHub.
+This module is part of the `OCA/knowledge `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/document_page_project/i18n/document_page_project.pot b/document_page_project/i18n/document_page_project.pot
index 2d9a91e6f49..483d3c4b7cb 100644
--- a/document_page_project/i18n/document_page_project.pot
+++ b/document_page_project/i18n/document_page_project.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 13.0\n"
+"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -23,6 +23,12 @@ msgstr ""
msgid "Click to create a new web page."
msgstr ""
+#. module: document_page_project
+#: model:ir.model.fields,field_description:document_page_project.field_document_page__display_name
+#: model:ir.model.fields,field_description:document_page_project.field_project_project__display_name
+msgid "Display Name"
+msgstr ""
+
#. module: document_page_project
#: model:ir.model,name:document_page_project.model_document_page
msgid "Document Page"
@@ -33,6 +39,18 @@ msgstr ""
msgid "Document Page Count"
msgstr ""
+#. module: document_page_project
+#: model:ir.model.fields,field_description:document_page_project.field_document_page__id
+#: model:ir.model.fields,field_description:document_page_project.field_project_project__id
+msgid "ID"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model.fields,field_description:document_page_project.field_document_page____last_update
+#: model:ir.model.fields,field_description:document_page_project.field_project_project____last_update
+msgid "Last Modified on"
+msgstr ""
+
#. module: document_page_project
#: model:ir.model,name:document_page_project.model_project_project
#: model:ir.model.fields,field_description:document_page_project.field_document_page__project_id
diff --git a/document_page_project/static/description/index.html b/document_page_project/static/description/index.html
index 1115549ef7e..47016d3c66e 100644
--- a/document_page_project/static/description/index.html
+++ b/document_page_project/static/description/index.html
@@ -367,7 +367,7 @@ Document Page Project
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
This module allow to link document pages to projects.
Table of contents
@@ -394,7 +394,7 @@
Bugs are tracked on GitHub 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 .
+
feedback .
Do not contact contributors directly about support or help with technical issues.
@@ -421,7 +421,7 @@
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.
-
This module is part of the OCA/knowledge project on GitHub.
+
This module is part of the OCA/knowledge project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute .
diff --git a/document_page_project/tests/__init__.py b/document_page_project/tests/__init__.py
new file mode 100644
index 00000000000..bfe3dbf877c
--- /dev/null
+++ b/document_page_project/tests/__init__.py
@@ -0,0 +1,2 @@
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
+from . import test_project_project
diff --git a/document_page_project/tests/test_project_project.py b/document_page_project/tests/test_project_project.py
new file mode 100644
index 00000000000..8624756fe4b
--- /dev/null
+++ b/document_page_project/tests/test_project_project.py
@@ -0,0 +1,36 @@
+# Copyright (C) 2021 TREVI Software
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from odoo.tests import common
+
+
+class TestProjectProject(common.SavepointCase):
+ @classmethod
+ def setUpClass(cls):
+ super(TestProjectProject, cls).setUpClass()
+
+ cls.Page = cls.env["document.page"]
+ cls.Project = cls.env["project.project"]
+ cls.default_page = cls.Page.create({"name": "My page"})
+
+ def test_page_count(self):
+
+ proj = self.Project.create({"name": "Proj A"})
+
+ self.assertEqual(
+ proj.document_page_count, 0, "Initial page count should be zero"
+ )
+
+ self.default_page.project_id = proj
+ proj._compute_document_page_count()
+
+ self.assertEqual(
+ proj.document_page_count,
+ 1,
+ "After attaching project to document the page count should be one",
+ )
+ self.assertIn(
+ self.default_page,
+ proj.document_page_ids,
+ "The page should be in the list of document pages for project",
+ )
From 649d3f6ae4789068782dbcd0e97a5e5c2961b4f2 Mon Sep 17 00:00:00 2001
From: Jasmin Solanki
Date: Tue, 22 Feb 2022 12:26:29 +0530
Subject: [PATCH 015/107] [MIG] document_page_project: Migration to 15.0
---
document_page_project/README.rst | 14 ++++++-------
document_page_project/__manifest__.py | 3 +--
.../i18n/document_page_project.pot | 20 +------------------
.../static/description/index.html | 6 +++---
.../tests/test_project_project.py | 2 +-
5 files changed, 13 insertions(+), 32 deletions(-)
diff --git a/document_page_project/README.rst b/document_page_project/README.rst
index ba7706ee7d0..a6b141edfe3 100644
--- a/document_page_project/README.rst
+++ b/document_page_project/README.rst
@@ -7,20 +7,20 @@ Document Page Project
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
+.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
- :alt: Production/Stable
+ :alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fknowledge-lightgray.png?logo=github
- :target: https://github.com/OCA/knowledge/tree/14.0/document_page_project
+ :target: https://github.com/OCA/knowledge/tree/15.0/document_page_project
:alt: OCA/knowledge
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/knowledge-14-0/knowledge-14-0-document_page_project
+ :target: https://translation.odoo-community.org/projects/knowledge-15-0/knowledge-15-0-document_page_project
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/118/14.0
+ :target: https://runbot.odoo-community.org/runbot/118/15.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -44,7 +44,7 @@ Bug Tracker
Bugs are tracked on `GitHub 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 `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -76,6 +76,6 @@ 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.
-This module is part of the `OCA/knowledge `_ project on GitHub.
+This module is part of the `OCA/knowledge `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/document_page_project/__manifest__.py b/document_page_project/__manifest__.py
index 7388be32fd6..304f0efa7c6 100644
--- a/document_page_project/__manifest__.py
+++ b/document_page_project/__manifest__.py
@@ -4,8 +4,7 @@
{
"name": "Document Page Project",
"summary": "This module links document pages to projects",
- "version": "14.0.1.0.1",
- "development_status": "Production/Stable",
+ "version": "15.0.1.0.0",
"category": "Project",
"author": "ForgeFlow, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/knowledge",
diff --git a/document_page_project/i18n/document_page_project.pot b/document_page_project/i18n/document_page_project.pot
index 483d3c4b7cb..4fe2c47d1af 100644
--- a/document_page_project/i18n/document_page_project.pot
+++ b/document_page_project/i18n/document_page_project.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 14.0\n"
+"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -23,12 +23,6 @@ msgstr ""
msgid "Click to create a new web page."
msgstr ""
-#. module: document_page_project
-#: model:ir.model.fields,field_description:document_page_project.field_document_page__display_name
-#: model:ir.model.fields,field_description:document_page_project.field_project_project__display_name
-msgid "Display Name"
-msgstr ""
-
#. module: document_page_project
#: model:ir.model,name:document_page_project.model_document_page
msgid "Document Page"
@@ -39,18 +33,6 @@ msgstr ""
msgid "Document Page Count"
msgstr ""
-#. module: document_page_project
-#: model:ir.model.fields,field_description:document_page_project.field_document_page__id
-#: model:ir.model.fields,field_description:document_page_project.field_project_project__id
-msgid "ID"
-msgstr ""
-
-#. module: document_page_project
-#: model:ir.model.fields,field_description:document_page_project.field_document_page____last_update
-#: model:ir.model.fields,field_description:document_page_project.field_project_project____last_update
-msgid "Last Modified on"
-msgstr ""
-
#. module: document_page_project
#: model:ir.model,name:document_page_project.model_project_project
#: model:ir.model.fields,field_description:document_page_project.field_document_page__project_id
diff --git a/document_page_project/static/description/index.html b/document_page_project/static/description/index.html
index 47016d3c66e..846e2038a48 100644
--- a/document_page_project/static/description/index.html
+++ b/document_page_project/static/description/index.html
@@ -367,7 +367,7 @@ Document Page Project
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
This module allow to link document pages to projects.
Table of contents
@@ -394,7 +394,7 @@
Bugs are tracked on GitHub 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 .
+
feedback .
Do not contact contributors directly about support or help with technical issues.
@@ -421,7 +421,7 @@
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.
-
This module is part of the OCA/knowledge project on GitHub.
+
This module is part of the OCA/knowledge project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute .
diff --git a/document_page_project/tests/test_project_project.py b/document_page_project/tests/test_project_project.py
index 8624756fe4b..0ecbda55f11 100644
--- a/document_page_project/tests/test_project_project.py
+++ b/document_page_project/tests/test_project_project.py
@@ -4,7 +4,7 @@
from odoo.tests import common
-class TestProjectProject(common.SavepointCase):
+class TestProjectProject(common.TransactionCase):
@classmethod
def setUpClass(cls):
super(TestProjectProject, cls).setUpClass()
From a14bbd02cc717db8b9a0098b1b04591884f41dac Mon Sep 17 00:00:00 2001
From: mymage
Date: Wed, 28 Dec 2022 22:11:10 +0000
Subject: [PATCH 016/107] Added translation using Weblate (Italian)
---
document_page_project/i18n/it.po | 56 ++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)
create mode 100644 document_page_project/i18n/it.po
diff --git a/document_page_project/i18n/it.po b/document_page_project/i18n/it.po
new file mode 100644
index 00000000000..e2f76345f5c
--- /dev/null
+++ b/document_page_project/i18n/it.po
@@ -0,0 +1,56 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * document_page_project
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 15.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. module: document_page_project
+#: model_terms:ir.ui.view,arch_db:document_page_project.view_project_kanban
+msgid "Wiki Pages "
+msgstr ""
+
+#. module: document_page_project
+#: model_terms:ir.actions.act_window,help:document_page_project.action_document_page_projects
+msgid "Click to create a new web page."
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model,name:document_page_project.model_document_page
+msgid "Document Page"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_count
+msgid "Document Page Count"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model,name:document_page_project.model_project_project
+#: model:ir.model.fields,field_description:document_page_project.field_document_page__project_id
+msgid "Project"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.actions.act_window,name:document_page_project.action_document_page_projects
+msgid "Project Wiki"
+msgstr ""
+
+#. module: document_page_project
+#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_ids
+msgid "Wiki"
+msgstr ""
+
+#. module: document_page_project
+#: model_terms:ir.ui.view,arch_db:document_page_project.edit_project
+msgid "Wiki Pages"
+msgstr ""
From ee7df6ae8e9cbc8d0a49eda22053c46235cd2487 Mon Sep 17 00:00:00 2001
From: mymage
Date: Wed, 28 Dec 2022 22:18:13 +0000
Subject: [PATCH 017/107] Translated using Weblate (Italian)
Currently translated at 100.0% (8 of 8 strings)
Translation: knowledge-15.0/knowledge-15.0-document_page_project
Translate-URL: https://translation.odoo-community.org/projects/knowledge-15-0/knowledge-15-0-document_page_project/it/
---
document_page_project/README.rst | 15 +++++---
document_page_project/i18n/it.po | 20 +++++-----
.../static/description/index.html | 38 ++++++++++---------
3 files changed, 40 insertions(+), 33 deletions(-)
diff --git a/document_page_project/README.rst b/document_page_project/README.rst
index a6b141edfe3..62c1fdfd56d 100644
--- a/document_page_project/README.rst
+++ b/document_page_project/README.rst
@@ -2,10 +2,13 @@
Document Page Project
=====================
-.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:a5ff1d43d79684878b24805e26541eba83783f06fd87279a63227ae24325fddb
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
@@ -19,11 +22,11 @@ Document Page Project
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/knowledge-15-0/knowledge-15-0-document_page_project
:alt: Translate me on Weblate
-.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/118/15.0
- :alt: Try me on Runbot
+.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/knowledge&target_branch=15.0
+ :alt: Try me on Runboat
-|badge1| |badge2| |badge3| |badge4| |badge5|
+|badge1| |badge2| |badge3| |badge4| |badge5|
This module allow to link document pages to projects.
@@ -43,7 +46,7 @@ Bug Tracker
Bugs are tracked on `GitHub 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
+If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback `_.
Do not contact contributors directly about support or help with technical issues.
diff --git a/document_page_project/i18n/it.po b/document_page_project/i18n/it.po
index e2f76345f5c..b5363652185 100644
--- a/document_page_project/i18n/it.po
+++ b/document_page_project/i18n/it.po
@@ -6,51 +6,53 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2022-12-28 22:45+0000\n"
+"Last-Translator: mymage \n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.14.1\n"
#. module: document_page_project
#: model_terms:ir.ui.view,arch_db:document_page_project.view_project_kanban
msgid "Wiki Pages "
-msgstr ""
+msgstr "Pagine Wiki "
#. module: document_page_project
#: model_terms:ir.actions.act_window,help:document_page_project.action_document_page_projects
msgid "Click to create a new web page."
-msgstr ""
+msgstr "Fare clic per creare una nuova pagina web."
#. module: document_page_project
#: model:ir.model,name:document_page_project.model_document_page
msgid "Document Page"
-msgstr ""
+msgstr "Pagina documento"
#. module: document_page_project
#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_count
msgid "Document Page Count"
-msgstr ""
+msgstr "Conteggio pagina documento"
#. module: document_page_project
#: model:ir.model,name:document_page_project.model_project_project
#: model:ir.model.fields,field_description:document_page_project.field_document_page__project_id
msgid "Project"
-msgstr ""
+msgstr "Progetto"
#. module: document_page_project
#: model:ir.actions.act_window,name:document_page_project.action_document_page_projects
msgid "Project Wiki"
-msgstr ""
+msgstr "Progetto Wiki"
#. module: document_page_project
#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_ids
msgid "Wiki"
-msgstr ""
+msgstr "Wiki"
#. module: document_page_project
#: model_terms:ir.ui.view,arch_db:document_page_project.edit_project
msgid "Wiki Pages"
-msgstr ""
+msgstr "Pagine Wiki"
diff --git a/document_page_project/static/description/index.html b/document_page_project/static/description/index.html
index 846e2038a48..6b614dc3bc6 100644
--- a/document_page_project/static/description/index.html
+++ b/document_page_project/static/description/index.html
@@ -1,20 +1,20 @@
-
+
-
+
Document Page Project
-
-
Document Page Project
+
+
+
+
+
+
+
Document Page Project
-
+
This module allow to link document pages to projects.
Table of contents
@@ -385,14 +390,14 @@
Document Page Project
-
+
Go to to a project and click on “Wiki Pages” to see linked documents
or to create new ones.
-
+
Bugs are tracked on GitHub Issues .
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
@@ -400,15 +405,15 @@
Do not contact contributors directly about support or help with technical issues.
+
From c5d459b1ad3b8a48102813840fd75c4969ef0f15 Mon Sep 17 00:00:00 2001
From: Bhavesh Heliconia
Date: Tue, 30 Dec 2025 09:55:38 +0530
Subject: [PATCH 028/107] [MIG] document_page_project: Migration to 19.0
---
document_page_project/README.rst | 10 +++++-----
document_page_project/__manifest__.py | 2 +-
document_page_project/static/description/index.html | 6 +++---
3 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/document_page_project/README.rst b/document_page_project/README.rst
index dfd961ea758..f81e1ab981e 100644
--- a/document_page_project/README.rst
+++ b/document_page_project/README.rst
@@ -21,13 +21,13 @@ Document Page Project
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fknowledge-lightgray.png?logo=github
- :target: https://github.com/OCA/knowledge/tree/18.0/document_page_project
+ :target: https://github.com/OCA/knowledge/tree/19.0/document_page_project
:alt: OCA/knowledge
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/knowledge-18-0/knowledge-18-0-document_page_project
+ :target: https://translation.odoo-community.org/projects/knowledge-19-0/knowledge-19-0-document_page_project
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
- :target: https://runboat.odoo-community.org/builds?repo=OCA/knowledge&target_branch=18.0
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/knowledge&target_branch=19.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -51,7 +51,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -95,6 +95,6 @@ Current `maintainer `__:
|maintainer-LoisRForgeFlow|
-This module is part of the `OCA/knowledge `_ project on GitHub.
+This module is part of the `OCA/knowledge `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/document_page_project/__manifest__.py b/document_page_project/__manifest__.py
index bd55272233f..7e363156940 100644
--- a/document_page_project/__manifest__.py
+++ b/document_page_project/__manifest__.py
@@ -4,7 +4,7 @@
{
"name": "Document Page Project",
"summary": "This module links document pages to projects",
- "version": "18.0.1.0.0",
+ "version": "19.0.1.0.0",
"category": "Project",
"author": "ForgeFlow, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/knowledge",
diff --git a/document_page_project/static/description/index.html b/document_page_project/static/description/index.html
index e5f9549bfdc..a9f25afcf45 100644
--- a/document_page_project/static/description/index.html
+++ b/document_page_project/static/description/index.html
@@ -374,7 +374,7 @@ Document Page Project
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:41cac515877942e330be752cc5d81cd3f77fcd53a401f1a9bda9e03ee6943998
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
This module allow to link document pages to projects.
Table of contents
@@ -401,7 +401,7 @@
Bugs are tracked on GitHub Issues .
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
-feedback .
+
feedback .
Do not contact contributors directly about support or help with technical issues.
From 0b902d9029a75e1a7379a4e6ed8b1d11935ec315 Mon Sep 17 00:00:00 2001
From: Jonatan Cloutier
Date: Tue, 16 Apr 2013 18:18:39 -0400
Subject: [PATCH 029/107] create document_page_approval module
(../7.0pageapproval/ rev 1)
fix status bar in page approval
(../7.0pageapproval/ rev 2)
change approval workflow in page history and started to add showing approved page in normal page
(../7.0pageapproval/ rev 3)
show last approved content and aproved by
(../7.0pageapproval/ rev 4)
Fix bug on page creation
(../7.0pageapproval/ rev 5)
add status in history tree view
(../7.0pageapproval/ rev 6)
add a need approval field and hide the workflow when no approval needed
(../7.0pageapproval/ rev 7)
add access validation to approval
(../7.0pageapproval/ rev 8)
give rigth to Page aprover group on the page_history model and hide the button for unallowed group thought the security isn't enforced a the orm level
(../7.0pageapproval/ rev 9)
made invisible the prover group when not needed
(../7.0pageapproval/ rev 10)
add email to aprovers group's members
(../7.0pageapproval/ rev 11)
---
document_page_approval/__init__.py | 24 +++
document_page_approval/__openerp__.py | 42 ++++
.../document_page_approval.py | 197 ++++++++++++++++++
document_page_approval/document_page_view.xml | 50 +++++
document_page_approval/document_page_wkfl.xml | 66 ++++++
.../security/document_page_security.xml | 9 +
.../security/ir.model.access.csv | 2 +
7 files changed, 390 insertions(+)
create mode 100644 document_page_approval/__init__.py
create mode 100644 document_page_approval/__openerp__.py
create mode 100644 document_page_approval/document_page_approval.py
create mode 100644 document_page_approval/document_page_view.xml
create mode 100644 document_page_approval/document_page_wkfl.xml
create mode 100644 document_page_approval/security/document_page_security.xml
create mode 100644 document_page_approval/security/ir.model.access.csv
diff --git a/document_page_approval/__init__.py b/document_page_approval/__init__.py
new file mode 100644
index 00000000000..bd56742e7fb
--- /dev/null
+++ b/document_page_approval/__init__.py
@@ -0,0 +1,24 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 Savoir-faire Linux ().
+#
+# 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 .
+#
+##############################################################################
+
+import document_page_approval
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/document_page_approval/__openerp__.py b/document_page_approval/__openerp__.py
new file mode 100644
index 00000000000..22a9559ecb0
--- /dev/null
+++ b/document_page_approval/__openerp__.py
@@ -0,0 +1,42 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 Savoir-faire Linux ().
+#
+# 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 .
+#
+##############################################################################
+
+{
+ 'name': 'Document Page Approval',
+ 'version': '1.0',
+ "author" : "Savoir-faire Linux",
+ "website" : "http://www.savoirfairelinux.com",
+ "license" : "AGPL-3",
+ 'category': 'Knowledge Management',
+ 'description': """
+Add a workflow to approve page modification and show the approved version by default
+ """,
+ 'depends': ['document_page', 'email_template'],
+ 'update_xml': ['document_page_wkfl.xml','document_page_view.xml'],
+ 'installable': True,
+ 'auto_install': False,
+ 'images': [],
+ 'data': [
+ 'security/document_page_security.xml',
+ 'security/ir.model.access.csv',
+ ]
+}
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/document_page_approval/document_page_approval.py b/document_page_approval/document_page_approval.py
new file mode 100644
index 00000000000..20d8af0a472
--- /dev/null
+++ b/document_page_approval/document_page_approval.py
@@ -0,0 +1,197 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 Savoir-faire Linux ().
+#
+# 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 .
+#
+##############################################################################
+from openerp.osv import fields, orm
+from datetime import *
+
+class document_page_history_wkfl(orm.Model):
+ _inherit = 'document.page.history'
+
+ def page_approval_draft(self, cr, uid, ids):
+ self.write(cr, uid, ids, { 'state' : 'draft' })
+
+ template_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'document_page_approval', 'email_template_new_draft_need_approval')[1]
+ for page in self.browse(cr, uid, ids):
+ if page.is_parent_approval_required:
+ self.pool.get('email.template').send_mail(cr, uid, template_id, page.id, force_send=True)
+
+ return True
+
+ def page_approval_approved(self, cr, uid, ids):
+ self.write(cr, uid, ids, { 'state' : 'approved',
+ 'approved_date' : datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
+ 'approved_uid': uid
+ })
+ return True
+
+ def can_user_approve_page(self, cr, uid, ids, name, args, context=None):
+ user = self.pool.get('res.users').browse(cr,uid,uid)
+ res = {}
+ for page in self.browse(cr, uid, ids, context=context):
+ res[page.id]= self.can_user_approve_this_page(page.page_id, user)
+
+ return res
+
+ def can_user_approve_this_page(self, page, user):
+ if page:
+ res = page.approver_gid in user.groups_id
+ res = res or self.can_user_approve_this_page(page.parent_id, user)
+ else:
+ res=False
+
+ return res
+
+ def get_approvers_guids(self, cr, uid, ids, name, args, context=None):
+ res = {}
+ for page in self.browse(cr, uid, ids, context=context):
+ res[page.id]= self.get_approvers_guids_for_page(page.page_id)
+
+ return res
+
+ def get_approvers_guids_for_page(self, page):
+ if page:
+ if page.approver_gid:
+ res = [page.approver_gid.id]
+ else:
+ res=[]
+ res.extend(self.get_approvers_guids_for_page(page.parent_id))
+ else:
+ res=[]
+
+ return res
+
+ def get_approvers_email(self, cr, uid, ids, name, args, context):
+ res = {}
+ for id in ids:
+ emails = ''
+ guids = self.get_approvers_guids(cr, uid, ids, name, args, context=context)
+ uids = self.pool.get('res.users').search(cr, uid, [('groups_id','in',guids[id])])
+ users = self.pool.get('res.users').browse(cr, uid, uids)
+
+ for user in users:
+ if user.user_email:
+ emails += user.user_email
+ emails += ','
+ else:
+ empl_id = self.pool.get('hr.employee').search(cr, uid,[('login','=',user.login)])[0]
+ empl = self.pool.get('hr.employee').browse(cr, uid, empl_id)
+ if empl.work_email:
+ emails += empl.work_email
+ emails += ','
+
+ emails = emails[:-1]
+ res[id] = emails
+ return res
+
+ def get_page_url(self, cr, uid, ids, name, args, context):
+ res = {}
+ for id in ids:
+ base_url = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='http://localhost:8069', context=context)
+
+ res[id] = base_url + '/#db=%s&id=%s&view_type=form&model=document.page.history' % (cr.dbname, id);
+
+ return res
+
+ _columns = {
+ 'state': fields.selection([
+ ('draft','Draft'),
+ ('approved','Approved')], 'Status', readonly=True),
+ 'approved_date': fields.datetime("Approved Date"),
+ 'approved_uid': fields.many2one('res.users', "Approved By"),
+ 'is_parent_approval_required': fields.related('page_id', 'is_parent_approval_required', string="parent approval", type='boolean', store=False),
+ 'can_user_approve_page': fields.function(can_user_approve_page, string="can user approve this page", type='boolean', store=False),
+ 'get_approvers_email': fields.function(get_approvers_email, string="get all approvers email", type='text', store=False),
+ 'get_page_url': fields.function(get_page_url, string="get page url", type='text', store=False),
+ }
+
+class document_page_approval(orm.Model):
+ _inherit = 'document.page'
+ def _get_display_content(self, cr, uid, ids, name, args, context=None):
+ res = {}
+ for page in self.browse(cr, uid, ids, context=context):
+ content=""
+ if page.type == "category":
+ content = self._get_page_index(cr, uid, page, link=False)
+ else:
+ history = self.pool.get('document.page.history')
+ if self.is_approval_required(page):
+ history_ids = history.search(cr, uid,[('page_id', '=', page.id), ('state', '=', 'approved')], limit=1, order='create_date DESC')
+ for h in history.browse(cr, uid, history_ids):
+ content = h.content
+ else:
+ content = page.content
+ res[page.id] = content
+ return res
+
+ def _get_approved_date(self, cr, uid, ids, name, args, context=None):
+ res = {}
+ for page in self.browse(cr, uid, ids, context=context):
+ if self.is_approval_required(page):
+ history = self.pool.get('document.page.history')
+ history_ids = history.search(cr, uid,[('page_id', '=', page.id), ('state', '=', 'approved')], limit=1, order='create_date DESC')
+ approved_date = False
+ for h in history.browse(cr, uid, history_ids):
+ approved_date = h.approved_date
+ res[page.id] = approved_date
+ else:
+ res[page.id] = ""
+
+ return res
+
+ def _get_approved_uid(self, cr, uid, ids, name, args, context=None):
+ res = {}
+ for page in self.browse(cr, uid, ids, context=context):
+ if self.is_approval_required(page):
+ history = self.pool.get('document.page.history')
+ history_ids = history.search(cr, uid,[('page_id', '=', page.id), ('state', '=', 'approved')], limit=1, order='create_date DESC')
+ approved_uid = False
+ for h in history.browse(cr, uid, history_ids):
+ approved_uid = h.approved_uid.id
+ res[page.id] = approved_uid
+ else:
+ res[page.id] = ""
+
+ return res
+
+ def _is_parent_approval_required(self, cr, uid, ids, name, args, context=None):
+ res = {}
+ for page in self.browse(cr, uid, ids, context=context):
+ res[page.id]= self.is_approval_required(page)
+
+ return res
+
+ def is_approval_required(self, page):
+ if page:
+ res = page.approval_required
+ res = res or self.is_approval_required(page.parent_id)
+ else:
+ res=False
+
+ return res
+
+ _columns = {
+ 'display_content': fields.function(_get_display_content, string='Displayed Content', type='text'),
+ 'approved_date': fields.function(_get_approved_date, string="Approved Date", type='datetime'),
+ 'approved_uid': fields.function(_get_approved_uid, string="Approved By", type='many2one', obj='res.users'),
+ 'approval_required': fields.boolean("Require approval"),
+ 'is_parent_approval_required': fields.function(_is_parent_approval_required, string="parent approval", type='boolean'),
+ 'approver_gid': fields.many2one("res.groups", "Approver group"),
+ }
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/document_page_approval/document_page_view.xml b/document_page_approval/document_page_view.xml
new file mode 100644
index 00000000000..afaa9fbf5b6
--- /dev/null
+++ b/document_page_approval/document_page_view.xml
@@ -0,0 +1,50 @@
+
+
+
+
+ document.page.history.form
+ document.page.history
+
+
+
+
+
+
+
+
+
+ document.page.form
+ document.page
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ document.page.history.tree
+ document.page.history
+
+
+
+
+
+
+
+
+
+
diff --git a/document_page_approval/document_page_wkfl.xml b/document_page_approval/document_page_wkfl.xml
new file mode 100644
index 00000000000..4ee782c7de5
--- /dev/null
+++ b/document_page_approval/document_page_wkfl.xml
@@ -0,0 +1,66 @@
+
+
+
+
+ document.page.history.aproval.wkf
+ document.page.history
+ True
+
+
+
+
+ True
+ draft
+ function
+ page_approval_draft()
+
+
+
+
+ approved
+ function
+ page_approval_approved()
+ True
+
+
+
+
+
+ page_approval_approve
+
+
+
+
+
+ edit
+
+
+
+ Automated new draft need approval Notification Mail
+ ${object.create_uid.company_id.email or 'noreply@localhost.com'}
+ New version of "${object.page_id.name}" to approve
+ ${object.get_approvers_email}
+
+
+ ${object.employee_id.partner_id.lang}
+
+ Hello,
+
+The page "${object.page_id.name}" has been modified and need aprobation.
+
+You can view the new version there: ${object.get_page_url}
+
+ ]]>
+
+
+
+
+
+
diff --git a/document_page_approval/security/document_page_security.xml b/document_page_approval/security/document_page_security.xml
new file mode 100644
index 00000000000..7192d3f8cf3
--- /dev/null
+++ b/document_page_approval/security/document_page_security.xml
@@ -0,0 +1,9 @@
+
+
+
+
+ Document approver
+
+
+
+
diff --git a/document_page_approval/security/ir.model.access.csv b/document_page_approval/security/ir.model.access.csv
new file mode 100644
index 00000000000..e4835836f81
--- /dev/null
+++ b/document_page_approval/security/ir.model.access.csv
@@ -0,0 +1,2 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+document_page_history,document.page.history,model_document_page_history,base.group_document_approver_user,1,1,1,0
\ No newline at end of file
From cd663bac598d5c3f58638f1b82292e234728535a Mon Sep 17 00:00:00 2001
From: Maxime Chambreuil
Date: Fri, 19 Jul 2013 00:15:04 -0400
Subject: [PATCH 030/107] [IMP] Documentation [ADD] Translation file + french
[FIX] employee_id field does not exist [FIX] user_email field deprecated
[IMP] Split long lines [ADD] Images
---
document_page_approval/__init__.py | 6 +-
document_page_approval/__openerp__.py | 40 ++--
.../document_page_approval.py | 178 ++++++++++--------
document_page_approval/document_page_view.xml | 3 +-
document_page_approval/document_page_wkfl.xml | 35 ++--
.../i18n/document_page_approval.pot | 110 +++++++++++
document_page_approval/i18n/fr.po | 119 ++++++++++++
document_page_approval/images/category.png | Bin 0 -> 59644 bytes
.../images/page_history.png | Bin 0 -> 60218 bytes
.../images/page_history_list.png | Bin 0 -> 57925 bytes
10 files changed, 385 insertions(+), 106 deletions(-)
create mode 100644 document_page_approval/i18n/document_page_approval.pot
create mode 100644 document_page_approval/i18n/fr.po
create mode 100644 document_page_approval/images/category.png
create mode 100644 document_page_approval/images/page_history.png
create mode 100644 document_page_approval/images/page_history_list.png
diff --git a/document_page_approval/__init__.py b/document_page_approval/__init__.py
index bd56742e7fb..d0594cafbf7 100644
--- a/document_page_approval/__init__.py
+++ b/document_page_approval/__init__.py
@@ -1,6 +1,6 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2013 Savoir-faire Linux ().
#
@@ -15,10 +15,8 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
import document_page_approval
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/document_page_approval/__openerp__.py b/document_page_approval/__openerp__.py
index 22a9559ecb0..75bbc31d193 100644
--- a/document_page_approval/__openerp__.py
+++ b/document_page_approval/__openerp__.py
@@ -1,6 +1,6 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2013 Savoir-faire Linux ().
#
@@ -15,28 +15,42 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
{
'name': 'Document Page Approval',
'version': '1.0',
- "author" : "Savoir-faire Linux",
- "website" : "http://www.savoirfairelinux.com",
- "license" : "AGPL-3",
+ "author": "Savoir-faire Linux",
+ "website": "http://www.savoirfairelinux.com",
+ "license": "AGPL-3",
'category': 'Knowledge Management',
'description': """
-Add a workflow to approve page modification and show the approved version by default
+This module adds a workflow to approve page modification and show the approved version by default.
+
+Scenario
+========
+
+* Set a valid email address on the company settings.
+* Create a new page category and set an approver group. Make sure users belonging to that group
+ have valid email addresses.
+* Create a new page and choose the previously created category.
+* A notification is sent to the group with a link to the page history to review.
+* Depending on the review, the page history is approved or not.
+* Users reading the page see the last approved version.
""",
- 'depends': ['document_page', 'email_template'],
- 'update_xml': ['document_page_wkfl.xml','document_page_view.xml'],
- 'installable': True,
- 'auto_install': False,
- 'images': [],
+ 'depends': [
+ 'document_page',
+ 'email_template',
+ ],
'data': [
+ 'document_page_wkfl.xml',
+ 'document_page_view.xml',
'security/document_page_security.xml',
'security/ir.model.access.csv',
- ]
+ ],
+ 'installable': True,
+ 'auto_install': False,
+ 'images': ['images/category.png', 'images/page_history_list.png', 'images/page_history.png'],
}
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/document_page_approval/document_page_approval.py b/document_page_approval/document_page_approval.py
index 20d8af0a472..8feeabd9482 100644
--- a/document_page_approval/document_page_approval.py
+++ b/document_page_approval/document_page_approval.py
@@ -1,6 +1,6 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2013 Savoir-faire Linux ().
#
@@ -15,183 +15,209 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
+
+from datetime import datetime
from openerp.osv import fields, orm
-from datetime import *
+from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT
+
class document_page_history_wkfl(orm.Model):
_inherit = 'document.page.history'
-
- def page_approval_draft(self, cr, uid, ids):
- self.write(cr, uid, ids, { 'state' : 'draft' })
-
- template_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'document_page_approval', 'email_template_new_draft_need_approval')[1]
- for page in self.browse(cr, uid, ids):
+
+ def page_approval_draft(self, cr, uid, ids, context=None):
+ self.write(cr, uid, ids, {'state': 'draft'})
+
+ template_id = self.pool.get('ir.model.data').get_object_reference(
+ cr, uid,
+ 'document_page_approval', 'email_template_new_draft_need_approval')[1]
+ for page in self.browse(cr, uid, ids, context=context):
if page.is_parent_approval_required:
- self.pool.get('email.template').send_mail(cr, uid, template_id, page.id, force_send=True)
+ self.pool.get('email.template').send_mail(
+ cr, uid, template_id, page.id, force_send=True
+ )
return True
-
- def page_approval_approved(self, cr, uid, ids):
- self.write(cr, uid, ids, { 'state' : 'approved',
- 'approved_date' : datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
- 'approved_uid': uid
- })
+
+ def page_approval_approved(self, cr, uid, ids, context=None):
+ self.write(cr, uid, ids, {
+ 'state': 'approved',
+ 'approved_date': datetime.now().strftime(DEFAULT_SERVER_DATETIME_FORMAT),
+ 'approved_uid': uid
+ }, context=context)
return True
-
+
def can_user_approve_page(self, cr, uid, ids, name, args, context=None):
- user = self.pool.get('res.users').browse(cr,uid,uid)
+ user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
res = {}
for page in self.browse(cr, uid, ids, context=context):
- res[page.id]= self.can_user_approve_this_page(page.page_id, user)
-
+ res[page.id] = self.can_user_approve_this_page(page.page_id, user)
+
return res
-
+
def can_user_approve_this_page(self, page, user):
if page:
res = page.approver_gid in user.groups_id
res = res or self.can_user_approve_this_page(page.parent_id, user)
else:
- res=False
-
+ res = False
+
return res
-
+
def get_approvers_guids(self, cr, uid, ids, name, args, context=None):
res = {}
for page in self.browse(cr, uid, ids, context=context):
- res[page.id]= self.get_approvers_guids_for_page(page.page_id)
-
+ res[page.id] = self.get_approvers_guids_for_page(page.page_id)
+
return res
-
+
def get_approvers_guids_for_page(self, page):
if page:
if page.approver_gid:
res = [page.approver_gid.id]
else:
- res=[]
+ res = []
res.extend(self.get_approvers_guids_for_page(page.parent_id))
else:
- res=[]
-
+ res = []
+
return res
-
+
def get_approvers_email(self, cr, uid, ids, name, args, context):
- res = {}
+ res = {}
for id in ids:
emails = ''
guids = self.get_approvers_guids(cr, uid, ids, name, args, context=context)
- uids = self.pool.get('res.users').search(cr, uid, [('groups_id','in',guids[id])])
- users = self.pool.get('res.users').browse(cr, uid, uids)
+ uids = self.pool.get('res.users').search(cr, uid, [('groups_id', 'in', guids[id])])
+ users = self.pool.get('res.users').browse(cr, uid, uids, context=context)
for user in users:
- if user.user_email:
- emails += user.user_email
+ if user.email:
+ emails += user.email
emails += ','
else:
- empl_id = self.pool.get('hr.employee').search(cr, uid,[('login','=',user.login)])[0]
- empl = self.pool.get('hr.employee').browse(cr, uid, empl_id)
+ empl_id = self.pool.get('hr.employee').search(
+ cr, uid, [('login', '=', user.login)])[0]
+ empl = self.pool.get('hr.employee').browse(cr, uid, empl_id, context=context)
if empl.work_email:
emails += empl.work_email
emails += ','
- emails = emails[:-1]
+ emails = emails[:-1]
res[id] = emails
return res
-
+
def get_page_url(self, cr, uid, ids, name, args, context):
- res = {}
+ res = {}
for id in ids:
- base_url = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='http://localhost:8069', context=context)
-
- res[id] = base_url + '/#db=%s&id=%s&view_type=form&model=document.page.history' % (cr.dbname, id);
-
+ base_url = self.pool.get('ir.config_parameter').get_param(
+ cr, uid, 'web.base.url', default='http://localhost:8069', context=context)
+
+ res[id] = base_url + '/#db=%s&id=%s&view_type=form&model=document.page.history' % (cr.dbname, id)
+
return res
_columns = {
'state': fields.selection([
- ('draft','Draft'),
- ('approved','Approved')], 'Status', readonly=True),
+ ('draft', 'Draft'),
+ ('approved', 'Approved')], 'Status', readonly=True),
'approved_date': fields.datetime("Approved Date"),
'approved_uid': fields.many2one('res.users', "Approved By"),
- 'is_parent_approval_required': fields.related('page_id', 'is_parent_approval_required', string="parent approval", type='boolean', store=False),
- 'can_user_approve_page': fields.function(can_user_approve_page, string="can user approve this page", type='boolean', store=False),
- 'get_approvers_email': fields.function(get_approvers_email, string="get all approvers email", type='text', store=False),
- 'get_page_url': fields.function(get_page_url, string="get page url", type='text', store=False),
+ 'is_parent_approval_required': fields.related(
+ 'page_id', 'is_parent_approval_required',
+ string="parent approval", type='boolean', store=False),
+ 'can_user_approve_page': fields.function(
+ can_user_approve_page, string="can user approve this page", type='boolean', store=False),
+ 'get_approvers_email': fields.function(
+ get_approvers_email, string="get all approvers email", type='text', store=False),
+ 'get_page_url': fields.function(get_page_url, string="URL", type='text', store=False),
}
-
+
+
class document_page_approval(orm.Model):
_inherit = 'document.page'
+
def _get_display_content(self, cr, uid, ids, name, args, context=None):
res = {}
for page in self.browse(cr, uid, ids, context=context):
- content=""
+ content = ""
if page.type == "category":
- content = self._get_page_index(cr, uid, page, link=False)
+ content = self._get_page_index(cr, uid, page, link=False)
else:
history = self.pool.get('document.page.history')
if self.is_approval_required(page):
- history_ids = history.search(cr, uid,[('page_id', '=', page.id), ('state', '=', 'approved')], limit=1, order='create_date DESC')
- for h in history.browse(cr, uid, history_ids):
+ history_ids = history.search(
+ cr, uid, [
+ ('page_id', '=', page.id),
+ ('state', '=', 'approved')
+ ], limit=1, order='create_date DESC')
+ for h in history.browse(cr, uid, history_ids, context=context):
content = h.content
else:
content = page.content
- res[page.id] = content
+ res[page.id] = content
return res
-
+
def _get_approved_date(self, cr, uid, ids, name, args, context=None):
res = {}
for page in self.browse(cr, uid, ids, context=context):
if self.is_approval_required(page):
history = self.pool.get('document.page.history')
- history_ids = history.search(cr, uid,[('page_id', '=', page.id), ('state', '=', 'approved')], limit=1, order='create_date DESC')
+ history_ids = history.search(
+ cr, uid, [
+ ('page_id', '=', page.id),
+ ('state', '=', 'approved')
+ ], limit=1, order='create_date DESC')
approved_date = False
for h in history.browse(cr, uid, history_ids):
approved_date = h.approved_date
- res[page.id] = approved_date
+ res[page.id] = approved_date
else:
- res[page.id] = ""
-
+ res[page.id] = ""
+
return res
-
+
def _get_approved_uid(self, cr, uid, ids, name, args, context=None):
res = {}
for page in self.browse(cr, uid, ids, context=context):
if self.is_approval_required(page):
history = self.pool.get('document.page.history')
- history_ids = history.search(cr, uid,[('page_id', '=', page.id), ('state', '=', 'approved')], limit=1, order='create_date DESC')
+ history_ids = history.search(cr, uid, [
+ ('page_id', '=', page.id),
+ ('state', '=', 'approved')], limit=1, order='create_date DESC')
approved_uid = False
for h in history.browse(cr, uid, history_ids):
approved_uid = h.approved_uid.id
- res[page.id] = approved_uid
+ res[page.id] = approved_uid
else:
- res[page.id] = ""
-
+ res[page.id] = ""
+
return res
-
+
def _is_parent_approval_required(self, cr, uid, ids, name, args, context=None):
res = {}
for page in self.browse(cr, uid, ids, context=context):
- res[page.id]= self.is_approval_required(page)
-
+ res[page.id] = self.is_approval_required(page)
+
return res
-
+
def is_approval_required(self, page):
if page:
res = page.approval_required
res = res or self.is_approval_required(page.parent_id)
else:
- res=False
-
+ res = False
+
return res
-
+
_columns = {
'display_content': fields.function(_get_display_content, string='Displayed Content', type='text'),
'approved_date': fields.function(_get_approved_date, string="Approved Date", type='datetime'),
'approved_uid': fields.function(_get_approved_uid, string="Approved By", type='many2one', obj='res.users'),
'approval_required': fields.boolean("Require approval"),
- 'is_parent_approval_required': fields.function(_is_parent_approval_required, string="parent approval", type='boolean'),
+ 'is_parent_approval_required': fields.function(
+ _is_parent_approval_required, string="parent approval", type='boolean'),
'approver_gid': fields.many2one("res.groups", "Approver group"),
}
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/document_page_approval/document_page_view.xml b/document_page_approval/document_page_view.xml
index afaa9fbf5b6..04ef551cf27 100644
--- a/document_page_approval/document_page_view.xml
+++ b/document_page_approval/document_page_view.xml
@@ -30,7 +30,8 @@
-
+
diff --git a/document_page_approval/document_page_wkfl.xml b/document_page_approval/document_page_wkfl.xml
index 4ee782c7de5..f92d8463f72 100644
--- a/document_page_approval/document_page_wkfl.xml
+++ b/document_page_approval/document_page_wkfl.xml
@@ -1,6 +1,7 @@
+
document.page.history.aproval.wkf
document.page.history
@@ -34,6 +35,12 @@
edit
+
+
+
+
+
+
Automated new draft need approval Notification Mail
@@ -42,25 +49,29 @@
${object.get_approvers_email}
- ${object.employee_id.partner_id.lang}
-
- ${object.create_uid.partner_id.lang}
+ Hello,
-The page "${object.page_id.name}" has been modified and need aprobation.
+The page "${object.page_id.name}" has been modified and need your approval.
-You can view the new version there: ${object.get_page_url}
-
- ]]>
+You can review the new version here : ${object.get_page_url}
+
+Have a great day.
+--
+OpenERP
]]>
-
-
+Have a great day.
+--
+OpenERP]]>
+
diff --git a/document_page_approval/i18n/document_page_approval.pot b/document_page_approval/i18n/document_page_approval.pot
new file mode 100644
index 00000000000..4ddc97334a4
--- /dev/null
+++ b/document_page_approval/i18n/document_page_approval.pot
@@ -0,0 +1,110 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * document_page_approval
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 7.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-07-19 03:58+0000\n"
+"PO-Revision-Date: 2013-07-19 03:58+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: document_page_approval
+#: field:document.page.history,state:0
+msgid "Status"
+msgstr ""
+
+#. module: document_page_approval
+#: field:document.page,approval_required:0
+msgid "Require approval"
+msgstr ""
+
+#. module: document_page_approval
+#: field:document.page,is_parent_approval_required:0
+#: field:document.page.history,is_parent_approval_required:0
+msgid "parent approval"
+msgstr ""
+
+#. module: document_page_approval
+#: model:email.template,body_html:document_page_approval.email_template_new_draft_need_approval
+msgid "\n"
+"Hello,
\n"
+"\n"
+"The page \"${object.page_id.name}\" has been modified and need your approval.
\n"
+"\n"
+"You can review the new version here : ${object.get_page_url}
\n"
+" \n"
+"Have a great day. \n"
+"-- \n"
+"OpenERP
\n"
+" "
+msgstr ""
+
+#. module: document_page_approval
+#: model:ir.model,name:document_page_approval.model_document_page
+msgid "Document Page"
+msgstr ""
+
+#. module: document_page_approval
+#: field:document.page,approved_uid:0
+#: field:document.page.history,approved_uid:0
+msgid "Approved By"
+msgstr ""
+
+#. module: document_page_approval
+#: model:email.template,subject:document_page_approval.email_template_new_draft_need_approval
+msgid "New version of \"${object.page_id.name}\" to approve"
+msgstr ""
+
+#. module: document_page_approval
+#: selection:document.page.history,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: document_page_approval
+#: field:document.page.history,get_page_url:0
+msgid "URL"
+msgstr ""
+
+#. module: document_page_approval
+#: field:document.page,approved_date:0
+#: field:document.page.history,approved_date:0
+msgid "Approved Date"
+msgstr ""
+
+#. module: document_page_approval
+#: field:document.page.history,can_user_approve_page:0
+msgid "can user approve this page"
+msgstr ""
+
+#. module: document_page_approval
+#: field:document.page,approver_gid:0
+msgid "Approver group"
+msgstr ""
+
+#. module: document_page_approval
+#: model:ir.model,name:document_page_approval.model_document_page_history
+msgid "Document Page History"
+msgstr ""
+
+#. module: document_page_approval
+#: view:document.page.history:0
+msgid "Approve"
+msgstr ""
+
+#. module: document_page_approval
+#: selection:document.page.history,state:0
+msgid "Approved"
+msgstr ""
+
+#. module: document_page_approval
+#: field:document.page.history,get_approvers_email:0
+msgid "get all approvers email"
+msgstr ""
+
diff --git a/document_page_approval/i18n/fr.po b/document_page_approval/i18n/fr.po
new file mode 100644
index 00000000000..26573fa4837
--- /dev/null
+++ b/document_page_approval/i18n/fr.po
@@ -0,0 +1,119 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * document_page_approval
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 7.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-07-19 03:58+0000\n"
+"PO-Revision-Date: 2013-07-19 03:58+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: document_page_approval
+#: field:document.page.history,state:0
+msgid "Status"
+msgstr "Statut"
+
+#. module: document_page_approval
+#: field:document.page,approval_required:0
+msgid "Require approval"
+msgstr "Nécessite une approbation"
+
+#. module: document_page_approval
+#: field:document.page,is_parent_approval_required:0
+#: field:document.page.history,is_parent_approval_required:0
+msgid "parent approval"
+msgstr "Approbation parente"
+
+#. module: document_page_approval
+#: model:email.template,body_html:document_page_approval.email_template_new_draft_need_approval
+msgid "\n"
+"Hello,
\n"
+"\n"
+"The page \"${object.page_id.name}\" has been modified and need your approval.
\n"
+"\n"
+"You can review the new version here : ${object.get_page_url}
\n"
+" \n"
+"Have a great day. \n"
+"-- \n"
+"OpenERP
\n"
+" "
+msgstr "\n"
+"Bonjour,
\n"
+"\n"
+"La page \"${object.page_id.name}\" a été modifié et demande votre approbation.
\n"
+"\n"
+"Vous pouvez réviser la nouvelle version ici : ${object.get_page_url}
\n"
+" \n"
+"Bonne journée. \n"
+"-- \n"
+"OpenERP
\n"
+" "
+
+#. module: document_page_approval
+#: model:ir.model,name:document_page_approval.model_document_page
+msgid "Document Page"
+msgstr "Page"
+
+#. module: document_page_approval
+#: field:document.page,approved_uid:0
+#: field:document.page.history,approved_uid:0
+msgid "Approved By"
+msgstr "Approuvée par"
+
+#. module: document_page_approval
+#: model:email.template,subject:document_page_approval.email_template_new_draft_need_approval
+msgid "New version of \"${object.page_id.name}\" to approve"
+msgstr "Nouvelle version de \"${object.page_id.name}\" à approuver"
+
+#. module: document_page_approval
+#: selection:document.page.history,state:0
+msgid "Draft"
+msgstr "Brouillon"
+
+#. module: document_page_approval
+#: field:document.page.history,get_page_url:0
+msgid "URL"
+msgstr "URL"
+
+#. module: document_page_approval
+#: field:document.page,approved_date:0
+#: field:document.page.history,approved_date:0
+msgid "Approved Date"
+msgstr "Date d'approbation"
+
+#. module: document_page_approval
+#: field:document.page.history,can_user_approve_page:0
+msgid "can user approve this page"
+msgstr "Est-ce que l'usager peut approuver cette page ?"
+
+#. module: document_page_approval
+#: field:document.page,approver_gid:0
+msgid "Approver group"
+msgstr "Groupe approbateur"
+
+#. module: document_page_approval
+#: model:ir.model,name:document_page_approval.model_document_page_history
+msgid "Document Page History"
+msgstr "Historique de la page"
+
+#. module: document_page_approval
+#: view:document.page.history:0
+msgid "Approve"
+msgstr "Approuver"
+
+#. module: document_page_approval
+#: selection:document.page.history,state:0
+msgid "Approved"
+msgstr "Approuvée"
+
+#. module: document_page_approval
+#: field:document.page.history,get_approvers_email:0
+msgid "get all approvers email"
+msgstr "Récupérer toutes les adresses courriels des approbateurs"
diff --git a/document_page_approval/images/category.png b/document_page_approval/images/category.png
new file mode 100644
index 0000000000000000000000000000000000000000..b88e2091ad80fe09117994dd37828ba838809ef2
GIT binary patch
literal 59644
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