This commit is contained in:
Bhavesh Heliconia 2025-07-10 16:35:46 +05:30 committed by GitHub
commit 97c9a7d603
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
22 changed files with 1052 additions and 0 deletions

View File

@ -0,0 +1,88 @@
=====================
Document Page Project
=====================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:565cdaeb121a674ab9cdcfda222176693e3ee2410c692458fd450b58f4839f5f
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |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/18.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
: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
:alt: Try me on Runboat
|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 <https://github.com/OCA/knowledge/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/knowledge/issues/new?body=module:%20document_page_project%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues.
Credits
=======
Authors
-------
* ForgeFlow
Contributors
------------
- `Forgeflow <https://www.forgeflow.com>`__:
- Lois Rilo <lois.rilo@forgeflow.com>
- `Heliconia Solutions Pvt. Ltd. <https://www.heliconia.io>`__
- Bhavesh Heliconia
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 <https://github.com/OCA/knowledge/tree/18.0/document_page_project>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@ -0,0 +1,2 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from . import models

View File

@ -0,0 +1,15 @@
# 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": "18.0.1.0.0",
"category": "Project",
"author": "ForgeFlow, 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,
}

View File

@ -0,0 +1,55 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * document_page_project
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.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_terms:ir.ui.view,arch_db:document_page_project.view_project_kanban
msgid "<span class=\"o_label\">Wiki Pages</span>"
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 ""

View File

@ -0,0 +1,58 @@
# 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"
"PO-Revision-Date: 2023-10-09 07:41+0000\n"
"Last-Translator: Ivorra78 <informatica@totmaterial.es>\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.17\n"
#. module: document_page_project
#: model_terms:ir.ui.view,arch_db:document_page_project.view_project_kanban
msgid "<span class=\"o_label\">Wiki Pages</span>"
msgstr "<span class=\"o_label\">Páginas Wiki</span>"
#. 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 "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 "Página 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 "Conteo de páginas de 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 "Proyecto"
#. module: document_page_project
#: model:ir.actions.act_window,name:document_page_project.action_document_page_projects
msgid "Project Wiki"
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 "Wiki"
#. module: document_page_project
#: model_terms:ir.ui.view,arch_db:document_page_project.edit_project
msgid "Wiki Pages"
msgstr "Páginas Wiki"

View File

@ -0,0 +1,60 @@
# 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"
"PO-Revision-Date: 2020-10-19 08:08+0000\n"
"Last-Translator: Yves Goldberg <admin@ygol.com>\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"
"X-Generator: Weblate 3.10\n"
#. module: document_page_project
#: model_terms:ir.ui.view,arch_db:document_page_project.view_project_kanban
msgid "<span class=\"o_label\">Wiki Pages</span>"
msgstr "<span class=\"o_label\">Wiki דפי</span>"
#. 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 "תיקי Wiki"
#. module: document_page_project
#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_ids
#, fuzzy
msgid "Wiki"
msgstr "Wiki"
#. module: document_page_project
#: model_terms:ir.ui.view,arch_db:document_page_project.edit_project
msgid "Wiki Pages"
msgstr "דפי Wiki"

View File

@ -0,0 +1,59 @@
# 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"
"PO-Revision-Date: 2019-11-13 17:34+0000\n"
"Last-Translator: Bole <bole@dajmi5.com>\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"
"X-Generator: Weblate 3.8\n"
#. module: document_page_project
#: model_terms:ir.ui.view,arch_db:document_page_project.view_project_kanban
msgid "<span class=\"o_label\">Wiki Pages</span>"
msgstr "<span class=\"o_label\">Wiki Stranice</span>"
#. 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 "Kliknite za kreiranje nove web stranice."
#. module: document_page_project
#: model:ir.model,name:document_page_project.model_document_page
msgid "Document Page"
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 "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 "Projekt"
#. module: document_page_project
#: model:ir.actions.act_window,name:document_page_project.action_document_page_projects
msgid "Project Wiki"
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 "Wiki"
#. module: document_page_project
#: model_terms:ir.ui.view,arch_db:document_page_project.edit_project
msgid "Wiki Pages"
msgstr "Wiki stranice"

View File

@ -0,0 +1,58 @@
# 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"
"PO-Revision-Date: 2022-12-28 22:45+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\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 "<span class=\"o_label\">Wiki Pages</span>"
msgstr "<span class=\"o_label\">Pagine Wiki</span>"
#. 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 "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 "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 "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 "Progetto"
#. module: document_page_project
#: model:ir.actions.act_window,name:document_page_project.action_document_page_projects
msgid "Project Wiki"
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 "Wiki"
#. module: document_page_project
#: model_terms:ir.ui.view,arch_db:document_page_project.edit_project
msgid "Wiki Pages"
msgstr "Pagine Wiki"

View File

@ -0,0 +1,58 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * document_page_project
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-07-27 04:58+0000\n"
"Last-Translator: Peter Romão <peterromao@yahoo.co.uk>\n"
"Language-Team: none\n"
"Language: pt\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 5.6.2\n"
#. module: document_page_project
#: model_terms:ir.ui.view,arch_db:document_page_project.view_project_kanban
msgid "<span class=\"o_label\">Wiki Pages</span>"
msgstr "<span class=\"o_label\">Páginas Wiki</span>"
#. 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 "Clique para criar uma nova página web."
#. module: document_page_project
#: model:ir.model,name:document_page_project.model_document_page
msgid "Document Page"
msgstr "Página do 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 "Contagem de Páginas do 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 "Projeto"
#. module: document_page_project
#: model:ir.actions.act_window,name:document_page_project.action_document_page_projects
msgid "Project Wiki"
msgstr "Wiki do Projeto"
#. module: document_page_project
#: model:ir.model.fields,field_description:document_page_project.field_project_project__document_page_ids
msgid "Wiki"
msgstr "Wiki"
#. module: document_page_project
#: model_terms:ir.ui.view,arch_db:document_page_project.edit_project
msgid "Wiki Pages"
msgstr "Páginas Wiki"

View File

@ -0,0 +1,3 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from . import document_page
from . import project_project

View File

@ -0,0 +1,10 @@
# 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
class DocumentPage(models.Model):
_inherit = "document.page"
project_id = fields.Many2one(string="Project", comodel_name="project.project")

View File

@ -0,0 +1,17 @@
# 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
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")
def _compute_document_page_count(self):
for rec in self:
rec.document_page_count = len(rec.document_page_ids)

View File

@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"

View File

@ -0,0 +1,4 @@
- [Forgeflow](https://www.forgeflow.com):
- Lois Rilo \<<lois.rilo@forgeflow.com>\>
- [Heliconia Solutions Pvt. Ltd.](https://www.heliconia.io)
- Bhavesh Heliconia

View File

@ -0,0 +1 @@
This module allow to link document pages to projects.

View File

@ -0,0 +1,2 @@
- Go to to a project and click on "Wiki Pages" to see linked documents
or to create new ones.

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -0,0 +1,438 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
<title>Document Page Project</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic, pre.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="document-page-project">
<h1 class="title">Document Page Project</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:565cdaeb121a674ab9cdcfda222176693e3ee2410c692458fd450b58f4839f5f
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/knowledge/tree/18.0/document_page_project"><img alt="OCA/knowledge" src="https://img.shields.io/badge/github-OCA%2Fknowledge-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/knowledge-18-0/knowledge-18-0-document_page_project"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/knowledge&amp;target_branch=18.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>This module allow to link document pages to projects.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#usage" id="toc-entry-1">Usage</a></li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-2">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-3">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-4">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-5">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-6">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#toc-entry-1">Usage</a></h1>
<ul class="simple">
<li>Go to to a project and click on “Wiki Pages” to see linked documents
or to create new ones.</li>
</ul>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#toc-entry-2">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/knowledge/issues">GitHub Issues</a>.
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
<a class="reference external" href="https://github.com/OCA/knowledge/issues/new?body=module:%20document_page_project%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h1><a class="toc-backref" href="#toc-entry-3">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#toc-entry-4">Authors</a></h2>
<ul class="simple">
<li>ForgeFlow</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#toc-entry-5">Contributors</a></h2>
<ul class="simple">
<li><a class="reference external" href="https://www.forgeflow.com">Forgeflow</a>:<ul>
<li>Lois Rilo &lt;<a class="reference external" href="mailto:lois.rilo&#64;forgeflow.com">lois.rilo&#64;forgeflow.com</a>&gt;</li>
</ul>
</li>
<li><a class="reference external" href="https://www.heliconia.io">Heliconia Solutions Pvt. Ltd.</a><ul>
<li>Bhavesh Heliconia</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-6">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org">
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
</a>
<p>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.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/knowledge/tree/18.0/document_page_project">OCA/knowledge</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,2 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from . import test_project_project

View File

@ -0,0 +1,35 @@
# 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.TransactionCase):
@classmethod
def setUpClass(cls):
super().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",
)

View File

@ -0,0 +1,36 @@
<?xml version="1.0" ?>
<odoo>
<record id="view_wiki_form" model="ir.ui.view">
<field name="name">document.page.form - document_page_project</field>
<field name="model">document.page</field>
<field name="inherit_id" ref="document_page.view_wiki_form" />
<field name="arch" type="xml">
<field name="parent_id" position="after">
<field name="project_id" />
</field>
</field>
</record>
<record id="action_document_page_projects" model="ir.actions.act_window">
<field name="name">Project Wiki</field>
<field name="res_model">document.page</field>
<field
name="domain"
>[('type','=','content'), ('project_id', '=', active_id)]</field>
<field name="context">{
'default_type': 'content',
'default_project_id': active_id}</field>
<field name="view_mode">list,form</field>
<field
name="view_ids"
eval="[Command.clear(),
Command.create({'view_mode':'list', 'view_id': ref('document_page.view_wiki_tree')}),
Command.create({'view_mode':'form', 'view_id': ref('document_page.view_wiki_form')})]"
/>
<field name="search_view_id" ref="document_page.view_wiki_filter" />
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create a new web page.
</p>
</field>
</record>
</odoo>

View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="view_project_kanban" model="ir.ui.view">
<field name="model">project.project</field>
<field name="inherit_id" ref="project.view_project_kanban" />
<field name="arch" type="xml">
<xpath expr="//div[hasclass('o_project_kanban_boxes')]" position="inside">
<a
class="o_project_kanban_box"
name="%(action_document_page_projects)d"
type="action"
>
<div>
<b>
<field
name="document_page_count"
nolabel="1"
class="o_value"
/>
</b>
<span class="o_label">Wiki Pages</span>
</div>
</a>
</xpath>
</field>
</record>
<record id="edit_project" model="ir.ui.view">
<field name="name">project.project.form - document_page_project</field>
<field name="model">project.project</field>
<field name="inherit_id" ref="project.edit_project" />
<field name="arch" type="xml">
<div name="button_box" position="inside">
<button
class="oe_stat_button"
type="action"
name="%(action_document_page_projects)d"
icon="fa-book"
>
<field
string="Wiki Pages"
name="document_page_count"
widget="statinfo"
/>
</button>
</div>
</field>
</record>
</odoo>