pre-commit update

This commit is contained in:
OCA-git-bot 2020-03-14 12:02:31 +01:00
parent c3f016c19f
commit f3cc82a65a
No known key found for this signature in database
GPG Key ID: BCAB2555446B5B92
23 changed files with 662 additions and 671 deletions

View File

@ -7,11 +7,11 @@ indent_style = space
insert_final_newline = true insert_final_newline = true
trim_trailing_whitespace = true trim_trailing_whitespace = true
[.eslintrc,*.{json,yml,yaml,rst,md}] [*.{json,yml,yaml,rst,md}]
indent_size = 2 indent_size = 2
# Do not configure editor for libs and autogenerated content # Do not configure editor for libs and autogenerated content
[*/static/{lib,src/lib}/**,*/static/description/index.html,*/readme/../README.rst] [{*/static/{lib,src/lib}/**,*/static/description/index.html,*/readme/../README.rst}]
charset = unset charset = unset
end_of_line = unset end_of_line = unset
indent_size = unset indent_size = unset

291
.eslintrc
View File

@ -1,291 +0,0 @@
{
"globals": {
"$": false,
"_": false,
"fuzzy": false,
"jQuery": false,
"moment": false,
"odoo": false,
"openerp": false,
"self": false
},
"env": {
"browser": true
},
"rules": {
"no-alert": "warn",
"no-array-constructor": "warn",
"no-bitwise": "off",
"no-caller": "warn",
"no-case-declarations": "warn",
"no-catch-shadow": "warn",
"no-class-assign": "warn",
"no-cond-assign": "warn",
"no-confusing-arrow": "warn",
"no-console": "off",
"no-const-assign": "warn",
"no-constant-condition": "warn",
"no-continue": "off",
"no-control-regex": "warn",
"no-debugger": "warn",
"no-delete-var": "warn",
"no-div-regex": "warn",
"no-dupe-args": "warn",
"no-dupe-class-members": "warn",
"no-dupe-keys": "warn",
"no-duplicate-case": "warn",
"no-duplicate-imports": "warn",
"no-else-return": "warn",
"no-empty": "warn",
"no-empty-character-class": "warn",
"no-empty-function": "warn",
"no-empty-pattern": "warn",
"no-eq-null": "warn",
"no-eval": "warn",
"no-ex-assign": "warn",
"no-extend-native": "warn",
"no-extra-bind": "warn",
"no-extra-boolean-cast": "warn",
"no-extra-label": "warn",
"no-extra-parens": "warn",
"no-extra-semi": "warn",
"no-fallthrough": "warn",
"no-floating-decimal": "warn",
"no-func-assign": "warn",
"no-implicit-coercion": ["warn", {
"allow": ["~"]
}],
"no-implicit-globals": "warn",
"no-implied-eval": "warn",
"no-inline-comments": "warn",
"no-inner-declarations": "warn",
"no-invalid-regexp": "warn",
"no-invalid-this": "off",
"no-irregular-whitespace": "warn",
"no-iterator": "warn",
"no-label-var": "warn",
"no-labels": "warn",
"no-lone-blocks": "warn",
"no-lonely-if": "warn",
"no-loop-func": "off",
"no-magic-numbers": "off",
"no-mixed-operators": "warn",
"no-mixed-requires": "warn",
"no-mixed-spaces-and-tabs": "warn",
"no-multi-spaces": "warn",
"no-multi-str": "warn",
"no-multiple-empty-lines": "warn",
"no-native-reassign": "warn",
"no-negated-condition": "warn",
"no-negated-in-lhs": "warn",
"no-nested-ternary": "off",
"no-new": "warn",
"no-new-func": "warn",
"no-new-object": "warn",
"no-new-require": "warn",
"no-new-symbol": "warn",
"no-new-wrappers": "warn",
"no-obj-calls": "warn",
"no-octal": "warn",
"no-octal-escape": "warn",
"no-param-reassign": "warn",
"no-path-concat": "warn",
"no-plusplus": "off",
"no-process-env": "warn",
"no-process-exit": "warn",
"no-proto": "warn",
"no-prototype-builtins": "warn",
"no-redeclare": "warn",
"no-regex-spaces": "warn",
"no-restricted-globals": "warn",
"no-restricted-imports": "warn",
"no-restricted-modules": "warn",
"no-restricted-syntax": "warn",
"no-return-assign": "warn",
"no-script-url": "warn",
"no-self-assign": "warn",
"no-self-compare": "warn",
"no-sequences": "warn",
"no-shadow": "warn",
"no-shadow-restricted-names": "warn",
"no-whitespace-before-property": "warn",
"no-spaced-func": "warn",
"no-sparse-arrays": "warn",
"no-sync": "warn",
"no-tabs": "warn",
"no-ternary": "off",
"no-trailing-spaces": "warn",
"no-this-before-super": "warn",
"no-throw-literal": "warn",
"no-undef": "warn",
"no-undef-init": "warn",
"no-undefined": "off",
"no-unexpected-multiline": "warn",
"no-underscore-dangle": "off",
"no-unmodified-loop-condition": "warn",
"no-unneeded-ternary": "warn",
"no-unreachable": "warn",
"no-unsafe-finally": "warn",
"no-unused-expressions": "warn",
"no-unused-labels": "warn",
"no-unused-vars": "warn",
"no-use-before-define": "warn",
"no-useless-call": "warn",
"no-useless-computed-key": "warn",
"no-useless-concat": "warn",
"no-useless-constructor": "warn",
"no-useless-escape": "warn",
"no-useless-rename": "warn",
"no-void": "warn",
"no-var": "off",
"no-warning-comments": "off",
"no-with": "warn",
"array-bracket-spacing": "off",
"array-callback-return": "warn",
"arrow-body-style": "warn",
"arrow-parens": "warn",
"arrow-spacing": "off",
"accessor-pairs": "warn",
"block-scoped-var": "off",
"block-spacing": ["warn", "always"],
"brace-style": "warn",
"callback-return": "warn",
"camelcase": "off",
"capitalized-comments": ["warn", "always", {
"ignoreConsecutiveComments": true,
"ignoreInlineComments": true
}],
"comma-dangle": ["warn", "always-multiline"],
"comma-spacing": ["warn", {
"before": false,
"after": true
}],
"comma-style": "warn",
"complexity": [
"warn",
15
],
"computed-property-spacing": "off",
"consistent-return": "off",
"consistent-this": "off",
"constructor-super": "warn",
"curly": "warn",
"default-case": "off",
"dot-location": ["warn", "property"],
"dot-notation": "warn",
"eol-last": "warn",
"eqeqeq": "warn",
"func-names": "off",
"func-style": "off",
"generator-star-spacing": "off",
"global-require": "warn",
"guard-for-in": "off",
"handle-callback-err": "warn",
"id-blacklist": "warn",
"id-length": "off",
"id-match": "warn",
"indent": "warn",
"init-declarations": "warn",
"jsx-quotes": "warn",
"key-spacing": "off",
"keyword-spacing": "warn",
"linebreak-style": [
"warn",
"unix"
],
"lines-around-comment": "warn",
"max-depth": "warn",
"max-len": ["warn", {
"code": 88,
"ignorePattern": "odoo\\.define\\(",
"tabWidth": 4
}],
"max-lines": "off",
"max-nested-callbacks": "warn",
"max-params": "off",
"max-statements": "off",
"max-statements-per-line": "warn",
"multiline-ternary": "off",
"new-cap": "off",
"new-parens": "warn",
"newline-after-var": "off",
"newline-before-return": "off",
"newline-per-chained-call": "off",
"object-curly-newline": ["warn", { "consistent": true }],
"object-curly-spacing": ["warn", "never"],
"object-property-newline": ["warn", {
"allowAllPropertiesOnSameLine": true
}],
"object-shorthand": "off",
"one-var": "off",
"one-var-declaration-per-line": "off",
"operator-assignment": "warn",
"operator-linebreak": "warn",
"padded-blocks": "off",
"prefer-arrow-callback": "off",
"prefer-const": "warn",
"prefer-reflect": "off",
"prefer-rest-params": "off",
"prefer-spread": "off",
"prefer-template": "off",
"quote-props": "off",
"quotes": "off",
"radix": "warn",
"require-yield": "warn",
"rest-spread-spacing": "off",
"semi": [
"warn",
"always"
],
"semi-spacing": "warn",
"sort-imports": "warn",
"sort-vars": "off",
"space-before-blocks": "warn",
"space-before-function-paren": "warn",
"space-in-parens": "off",
"space-infix-ops": "off",
"space-unary-ops": "off",
"spaced-comment": ["warn", "always"],
"strict": ["warn", "function"],
"template-curly-spacing": "off",
"unicode-bom": "warn",
"use-isnan": "warn",
"valid-jsdoc": ["warn", {
"prefer": {
"arg": "param",
"argument": "param",
"augments": "extends",
"constructor": "class",
"exception": "throws",
"func": "function",
"method": "function",
"prop": "property",
"return": "returns",
"virtual": "abstract",
"yield": "yields"
},
"preferType": {
"array": "Array",
"bool": "Boolean",
"boolean": "Boolean",
"number": "Number",
"object": "Object",
"str": "String",
"string": "String"
},
"requireParamDescription": false,
"requireReturn": false,
"requireReturnDescription": false,
"requireReturnType": false
}],
"valid-typeof": "warn",
"vars-on-top": "off",
"wrap-iife": "warn",
"wrap-regex": "warn",
"yield-star-spacing": "off",
"yoda": "warn"
},
"parserOptions": {
"ecmaVersion": 2017
}
}

180
.eslintrc.yml Normal file
View File

@ -0,0 +1,180 @@
env:
browser: true
# See https://github.com/OCA/odoo-community.org/issues/37#issuecomment-470686449
parserOptions:
ecmaVersion: 2017
# Globals available in Odoo that shouldn't produce errorings
globals:
_: readonly
$: readonly
fuzzy: readonly
jQuery: readonly
moment: readonly
odoo: readonly
openerp: readonly
Promise: readonly
# Styling is handled by Prettier, so we only need to enable AST rules;
# see https://github.com/OCA/maintainer-quality-tools/pull/618#issuecomment-558576890
rules:
accessor-pairs: warn
array-callback-return: warn
callback-return: warn
capitalized-comments:
- warn
- always
- ignoreConsecutiveComments: true
ignoreInlineComments: true
complexity:
- warn
- 15
constructor-super: warn
dot-notation: warn
eqeqeq: warn
global-require: warn
handle-callback-err: warn
id-blacklist: warn
id-match: warn
init-declarations: error
max-depth: warn
max-nested-callbacks: warn
max-statements-per-line: warn
no-alert: warn
no-array-constructor: warn
no-caller: warn
no-case-declarations: warn
no-class-assign: warn
no-cond-assign: error
no-const-assign: error
no-constant-condition: warn
no-control-regex: warn
no-debugger: error
no-delete-var: warn
no-div-regex: warn
no-dupe-args: error
no-dupe-class-members: error
no-dupe-keys: error
no-duplicate-case: error
no-duplicate-imports: error
no-else-return: warn
no-empty-character-class: warn
no-empty-function: error
no-empty-pattern: error
no-empty: warn
no-eq-null: error
no-eval: error
no-ex-assign: error
no-extend-native: warn
no-extra-bind: warn
no-extra-boolean-cast: warn
no-extra-label: warn
no-fallthrough: warn
no-func-assign: error
no-global-assign: error
no-implicit-coercion:
- warn
- allow: ["~"]
no-implicit-globals: warn
no-implied-eval: warn
no-inline-comments: warn
no-inner-declarations: warn
no-invalid-regexp: warn
no-irregular-whitespace: warn
no-iterator: warn
no-label-var: warn
no-labels: warn
no-lone-blocks: warn
no-lonely-if: error
no-mixed-requires: error
no-multi-str: warn
no-native-reassign: error
no-negated-condition: warn
no-negated-in-lhs: error
no-new-func: warn
no-new-object: warn
no-new-require: warn
no-new-symbol: warn
no-new-wrappers: warn
no-new: warn
no-obj-calls: warn
no-octal-escape: warn
no-octal: warn
no-param-reassign: warn
no-path-concat: warn
no-process-env: warn
no-process-exit: warn
no-proto: warn
no-prototype-builtins: warn
no-redeclare: warn
no-regex-spaces: warn
no-restricted-globals: warn
no-restricted-imports: warn
no-restricted-modules: warn
no-restricted-syntax: warn
no-return-assign: error
no-script-url: warn
no-self-assign: warn
no-self-compare: warn
no-sequences: warn
no-shadow-restricted-names: warn
no-shadow: warn
no-sparse-arrays: warn
no-sync: warn
no-this-before-super: warn
no-throw-literal: warn
no-undef-init: warn
no-undef: error
no-unmodified-loop-condition: warn
no-unneeded-ternary: error
no-unreachable: error
no-unsafe-finally: error
no-unused-expressions: error
no-unused-labels: error
no-unused-vars: error
no-use-before-define: error
no-useless-call: warn
no-useless-computed-key: warn
no-useless-concat: warn
no-useless-constructor: warn
no-useless-escape: warn
no-useless-rename: warn
no-void: warn
no-with: warn
operator-assignment: [error, always]
prefer-const: warn
radix: warn
require-yield: warn
sort-imports: warn
spaced-comment: [error, always]
strict: [error, function]
use-isnan: error
valid-jsdoc:
- warn
- prefer:
arg: param
argument: param
augments: extends
constructor: class
exception: throws
func: function
method: function
prop: property
return: returns
virtual: abstract
yield: yields
preferType:
array: Array
bool: Boolean
boolean: Boolean
number: Number
object: Object
str: String
string: String
requireParamDescription: false
requireReturn: false
requireReturnDescription: false
requireReturnType: false
valid-typeof: warn
yoda: warn

View File

@ -9,4 +9,4 @@ line_length=88
known_odoo=odoo known_odoo=odoo
known_odoo_addons=odoo.addons known_odoo_addons=odoo.addons
sections=FUTURE,STDLIB,THIRDPARTY,ODOO,ODOO_ADDONS,FIRSTPARTY,LOCALFOLDER sections=FUTURE,STDLIB,THIRDPARTY,ODOO,ODOO_ADDONS,FIRSTPARTY,LOCALFOLDER
known_third_party=setuptools default_section=THIRDPARTY

View File

@ -1,68 +1,99 @@
exclude: "^setup/|/static/lib/|/static/src/lib/" exclude: |
(?x)
# Files and folders generated by bots, to avoid loops
^setup/|/static/description/index\.html$|
# Maybe reactivate this when all README files include prettier ignore tags?
^README\.md$|
# Library files can have extraneous formatting (even minimized)
/static/(src/)?lib/|
# Repos using Sphinx to generate docs don't need prettying
^docs/_templates/.*\.html$|
# You don't usually want a bot to modify your legal texts
(LICENSE.*|COPYING.*)
default_language_version: default_language_version:
python: python3 python: python3
repos: repos:
- repo: https://github.com/psf/black - repo: https://github.com/psf/black
rev: 19.3b0 rev: 19.10b0
hooks: hooks:
- id: black - id: black
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/prettier/prettier
rev: v2.3.0 rev: "1.19.1"
hooks: hooks:
- id: trailing-whitespace - id: prettier
# exclude autogenerated files # TODO Avoid awebdeveloper/pre-commit-prettier if possible
exclude: /README\.rst$|\.pot?$ # HACK https://github.com/prettier/prettier/issues/7407
- id: end-of-file-fixer - repo: https://github.com/awebdeveloper/pre-commit-prettier
# exclude autogenerated files rev: v0.0.1
exclude: /README\.rst$|\.pot?$ hooks:
- id: debug-statements - id: prettier
- id: flake8 name: prettier xml plugin
name: flake8 except __init__.py additional_dependencies:
exclude: /__init__\.py$ - "prettier@1.19.1"
additional_dependencies: ["flake8-bugbear==19.8.0"] - "@prettier/plugin-xml@0.7.2"
- id: flake8 files: \.xml$
name: flake8 only __init__.py - repo: https://github.com/pre-commit/mirrors-eslint
args: ["--extend-ignore=F401"] # ignore unused imports in __init__.py rev: v6.8.0
files: /__init__\.py$ hooks:
additional_dependencies: ["flake8-bugbear==19.8.0"] - id: eslint
- id: fix-encoding-pragma verbose: true
args: ["--remove"] args:
- id: check-case-conflict - --color
- id: check-docstring-first - --fix
- id: check-executables-have-shebangs - repo: https://github.com/pre-commit/pre-commit-hooks
- id: check-merge-conflict rev: v2.4.0
- id: check-symlinks hooks:
- id: check-xml - id: trailing-whitespace
- id: mixed-line-ending # exclude autogenerated files
args: ["--fix=lf"] exclude: /README\.rst$|\.pot?$
- repo: https://github.com/pre-commit/mirrors-pylint - id: end-of-file-fixer
rev: v2.3.1 # exclude autogenerated files
hooks: exclude: /README\.rst$|\.pot?$
- id: pylint - id: debug-statements
name: pylint with optional checks - id: flake8
args: ["--rcfile=.pylintrc", "--exit-zero"] name: flake8 except __init__.py
verbose: true exclude: /__init__\.py$
additional_dependencies: ["pylint-odoo==3.0.3"] additional_dependencies: ["flake8-bugbear==19.8.0"]
- id: pylint - id: flake8
name: pylint with mandatory checks name: flake8 only __init__.py
args: ["--rcfile=.pylintrc-mandatory"] args: ["--extend-ignore=F401"] # ignore unused imports in __init__.py
additional_dependencies: ["pylint-odoo==3.0.3"] files: /__init__\.py$
- repo: https://github.com/asottile/pyupgrade additional_dependencies: ["flake8-bugbear==19.8.0"]
rev: v1.24.0 - id: fix-encoding-pragma
hooks: args: ["--remove"]
- id: pyupgrade - id: check-case-conflict
- repo: https://github.com/asottile/seed-isort-config - id: check-docstring-first
rev: v1.9.3 - id: check-executables-have-shebangs
hooks: - id: check-merge-conflict
- id: seed-isort-config # exclude files where underlines are not distinguishable from merge conflicts
- repo: https://github.com/pre-commit/mirrors-isort exclude: /README\.rst$|^docs/.*\.rst$
rev: v4.3.21 - id: check-symlinks
hooks: - id: check-xml
- id: isort - id: mixed-line-ending
name: isort except __init__.py args: ["--fix=lf"]
exclude: /__init__\.py$ - repo: https://github.com/pre-commit/mirrors-pylint
- repo: https://github.com/pre-commit/mirrors-eslint rev: v2.3.1
rev: v6.5.1 hooks:
hooks: - id: pylint
- id: eslint name: pylint with optional checks
verbose: true args: ["--rcfile=.pylintrc", "--exit-zero"]
verbose: true
additional_dependencies: ["pylint-odoo==3.1.0"]
- id: pylint
name: pylint with mandatory checks
args: ["--rcfile=.pylintrc-mandatory"]
additional_dependencies: ["pylint-odoo==3.1.0"]
- repo: https://github.com/asottile/pyupgrade
rev: v1.26.2
hooks:
- id: pyupgrade
- repo: https://github.com/pre-commit/mirrors-isort
rev: v4.3.21
hooks:
- id: isort
name: isort except __init__.py
exclude: /__init__\.py$
- repo: https://github.com/acsone/setuptools-odoo
rev: 2.5.2
hooks:
- id: setuptools-odoo-make-default

8
.prettierrc.yml Normal file
View File

@ -0,0 +1,8 @@
# Defaults for all prettier-supported languages.
# Prettier will complete this with settings from .editorconfig file.
bracketSpacing: false
printWidth: 88
proseWrap: always
semi: true
trailingComma: "es5"
xmlWhitespaceSensitivity: "ignore"

View File

@ -1,8 +1,8 @@
language: python language: python
cache: cache:
directories: directories:
- $HOME/.cache/pip - $HOME/.cache/pip
- $HOME/.cache/pre-commit - $HOME/.cache/pre-commit
python: python:
- "3.6" - "3.6"
@ -11,7 +11,7 @@ addons:
postgresql: "9.6" postgresql: "9.6"
apt: apt:
packages: packages:
- expect-dev # provides unbuffer utility - expect-dev # provides unbuffer utility
stages: stages:
- linting - linting
@ -34,10 +34,11 @@ jobs:
env: env:
global: global:
- VERSION="13.0" TESTS="0" LINT_CHECK="0" MAKEPOT="0" - VERSION="13.0" TESTS="0" LINT_CHECK="0" MAKEPOT="0"
install: install:
- git clone --depth=1 https://github.com/OCA/maintainer-quality-tools.git ${HOME}/maintainer-quality-tools - git clone --depth=1 https://github.com/OCA/maintainer-quality-tools.git
${HOME}/maintainer-quality-tools
- export PATH=${HOME}/maintainer-quality-tools/travis:${PATH} - export PATH=${HOME}/maintainer-quality-tools/travis:${PATH}
- travis_install_nightly - travis_install_nightly

View File

@ -1,15 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8" ?>
<odoo noupdate="1"> <odoo noupdate="1">
<record id="base.user_demo" model="res.users">
<record id="base.user_demo" model="res.users"> <field eval="[(4, ref('knowledge.group_document_user'))]" name="groups_id" />
<field eval="[(4, ref('knowledge.group_document_user'))]" </record>
name="groups_id"/> <record id="demo_category1" model="document.page">
</record> <field name="name">Odoo Features</field>
<field name="type">category</field>
<record id="demo_category1" model="document.page"> <field name="template">
<field name="name">Odoo Features</field>
<field name="type">category</field>
<field name="template">
Summary of the feature Summary of the feature
Long explanation Long explanation
@ -19,12 +16,11 @@ Conclusion
Additional ressources Additional ressources
</field> </field>
</record> </record>
<record id="demo_page1" model="document.page">
<record id="demo_page1" model="document.page"> <field name="name">Odoo 13.0 Functional Demo</field>
<field name="name">Odoo 13.0 Functional Demo</field> <field name="parent_id" ref="demo_category1" />
<field name="parent_id" ref="demo_category1"/> <field name="content">
<field name="content">
<![CDATA[ <![CDATA[
<br> <br>
<br> <br>
@ -48,12 +44,11 @@ company, with your clients and implement it now for your business.<br>
<br> <br>
]]> ]]>
</field> </field>
</record> </record>
<record id="demo_page2" model="document.page">
<record id="demo_page2" model="document.page"> <field name="name">Personalise Dashboards</field>
<field name="name">Personalise Dashboards</field> <field name="parent_id" ref="demo_category1" />
<field name="parent_id" ref="demo_category1"/> <field name="content">
<field name="content">
<![CDATA[ <![CDATA[
<br> <br>
You like Odoo, but feel like you want to personalise it more? You can customize your You like Odoo, but feel like you want to personalise it more? You can customize your
@ -88,12 +83,11 @@ you change your mind there is a reset button to return to the default view.<br>
<br> <br>
]]> ]]>
</field> </field>
</record> </record>
<record id="demo_page3" model="document.page">
<record id="demo_page3" model="document.page"> <field name="name">Touchscreen Point of Sale</field>
<field name="name">Touchscreen Point of Sale</field> <field name="parent_id" ref="demo_category1" />
<field name="parent_id" ref="demo_category1"/> <field name="content">
<field name="content">
<![CDATA[ <![CDATA[
<br> <br>
The Odoo touchscreen point of sale available with 13.0 allows you<br> The Odoo touchscreen point of sale available with 13.0 allows you<br>
@ -125,6 +119,5 @@ Think of it as an out-of-the-box solution to boost your business' productivity.<
<br> <br>
]]> ]]>
</field> </field>
</record> </record>
</odoo> </odoo>

View File

@ -1,31 +1,30 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<record id="group_document_editor" model="res.groups"> <record id="group_document_editor" model="res.groups">
<field name="name">Editor</field> <field name="name">Editor</field>
<field name="category_id" ref="knowledge.module_category_knowledge"/> <field name="category_id" ref="knowledge.module_category_knowledge" />
<field name="implied_ids" eval="[(4, ref('knowledge.group_document_user'))]"/> <field name="implied_ids" eval="[(4, ref('knowledge.group_document_user'))]" />
</record> </record>
<record id="group_document_manager" model="res.groups"> <record id="group_document_manager" model="res.groups">
<field name="name">Manager</field> <field name="name">Manager</field>
<field name="category_id" ref="knowledge.module_category_knowledge"/> <field name="category_id" ref="knowledge.module_category_knowledge" />
<field name="implied_ids" eval="[(4, ref('group_document_editor'))]"/> <field name="implied_ids" eval="[(4, ref('group_document_editor'))]" />
<field name="users" eval="[(4, ref('base.user_admin'))]"/> <field name="users" eval="[(4, ref('base.user_admin'))]" />
</record> </record>
<record model="ir.rule" id="document_page_rule"> <record model="ir.rule" id="document_page_rule">
<field name="name">document_page multi-company</field> <field name="name">document_page multi-company</field>
<field name="model_id" ref="model_document_page"/> <field name="model_id" ref="model_document_page" />
<field name="global" eval="True"/> <field name="global" eval="True" />
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field
name="domain_force"
>['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record model="ir.rule" id="document_page_history_rule"> <record model="ir.rule" id="document_page_history_rule">
<field name="name">document_page_history multi-company</field> <field name="name">document_page_history multi-company</field>
<field name="model_id" ref="model_document_page_history"/> <field name="model_id" ref="model_document_page_history" />
<field name="global" eval="True"/> <field name="global" eval="True" />
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field
name="domain_force"
>['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
</odoo> </odoo>

View File

@ -3,26 +3,26 @@ table.diff {
border: medium; border: medium;
.diff_header { .diff_header {
background-color: #e0e0e0 background-color: #e0e0e0;
} }
td.diff_header { td.diff_header {
text-align: right text-align: right;
} }
.diff_next { .diff_next {
background-color:#c0c0c0 background-color: #c0c0c0;
} }
.diff_add { .diff_add {
background-color:#aaffaa background-color: #aaffaa;
} }
.diff_chg { .diff_chg {
background-color:#ffff77 background-color: #ffff77;
} }
.diff_sub { .diff_sub {
background-color:#ffaaaa background-color: #ffaaaa;
} }
} }

View File

@ -1,6 +1,5 @@
<?xml version="1.0"?> <?xml version="1.0" ?>
<odoo> <odoo>
<!-- wiki tree view --> <!-- wiki tree view -->
<record id="view_wiki_tree_children" model="ir.ui.view"> <record id="view_wiki_tree_children" model="ir.ui.view">
<field name="name">document.page.tree</field> <field name="name">document.page.tree</field>
@ -9,29 +8,27 @@
<field name="priority">100</field> <field name="priority">100</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="Document Page"> <tree string="Document Page">
<field name="name"/> <field name="name" />
<field name="content_uid"/> <field name="content_uid" />
<field name="content_date"/> <field name="content_date" />
</tree> </tree>
</field> </field>
</record> </record>
<!-- wiki list view --> <!-- wiki list view -->
<record id="view_wiki_tree" model="ir.ui.view"> <record id="view_wiki_tree" model="ir.ui.view">
<field name="name">document.page.list</field> <field name="name">document.page.list</field>
<field name="model">document.page</field> <field name="model">document.page</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="Document Page"> <tree string="Document Page">
<field name="name"/> <field name="name" />
<field name="parent_id"/> <field name="parent_id" />
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company" />
<field name="create_uid" invisible="1"/> <field name="create_uid" invisible="1" />
<field name="content_uid"/> <field name="content_uid" />
<field name="content_date"/> <field name="content_date" />
</tree> </tree>
</field> </field>
</record> </record>
<!-- wiki Form view --> <!-- wiki Form view -->
<record id="view_wiki_form" model="ir.ui.view"> <record id="view_wiki_form" model="ir.ui.view">
<field name="name">document.page.form</field> <field name="name">document.page.form</field>
@ -39,90 +36,132 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Document Page"> <form string="Document Page">
<sheet> <sheet>
<widget name="web_ribbon" text="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/> <widget
<field name="active" invisible="1"/> name="web_ribbon"
<field name="type" invisible="1"/> text="Archived"
bg_color="bg-danger"
attrs="{'invisible': [('active', '=', True)]}"
/>
<field name="active" invisible="1" />
<field name="type" invisible="1" />
<h1> <h1>
<field name="name" placeholder="Name"/> <field name="name" placeholder="Name" />
</h1> </h1>
<group> <group>
<div> <div>
<field name="content" widget="html" placeholder="e.g. Once upon a time..." required="1" options="{'safe': True}"/> <field
name="content"
widget="html"
placeholder="e.g. Once upon a time..."
required="1"
options="{'safe': True}"
/>
</div> </div>
</group> </group>
<notebook> <notebook>
<page name="info" string="Information"> <page name="info" string="Information">
<group> <group>
<group> <group>
<field name="parent_id" string="Category" context="{'default_type':'category'}"/> <field
<field name="company_id" groups="base.group_multi_company"/> name="parent_id"
<field name="content_uid"/> string="Category"
<field name="content_date"/> context="{'default_type':'category'}"
<field name="menu_id" readonly="1" attrs="{'invisible': [('menu_id','=',False)]}"/> />
<field
name="company_id"
groups="base.group_multi_company"
/>
<field name="content_uid" />
<field name="content_date" />
<field
name="menu_id"
readonly="1"
attrs="{'invisible': [('menu_id','=',False)]}"
/>
</group> </group>
<group string="Revision"> <group string="Revision">
<field name="draft_name" placeholder="Rev 01" /> <field name="draft_name" placeholder="Rev 01" />
<field name="draft_summary" placeholder="eg: Changed ... for ..." /> <field
name="draft_summary"
placeholder="eg: Changed ... for ..."
/>
</group> </group>
</group> </group>
</page> </page>
<page name="history" string="History"> <page name="history" string="History">
<field name="history_ids"> <field name="history_ids">
<tree> <tree>
<field name="id"/> <field name="id" />
<field name="create_date"/> <field name="create_date" />
<field name="name"/> <field name="name" />
<field name="summary"/> <field name="summary" />
<field name="create_uid"/> <field name="create_uid" />
</tree> </tree>
</field> </field>
</page> </page>
</notebook> </notebook>
</sheet> </sheet>
<div class="oe_chatter"> <div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/> <field name="message_follower_ids" widget="mail_followers" />
<field name="activity_ids" widget="mail_activity"/> <field name="activity_ids" widget="mail_activity" />
<field name="message_ids" widget="mail_thread"/> <field name="message_ids" widget="mail_thread" />
</div> </div>
</form> </form>
</field> </field>
</record> </record>
<record id="view_wiki_menu_form" model="ir.ui.view"> <record id="view_wiki_menu_form" model="ir.ui.view">
<field name="name">document.page.menu.form</field> <field name="name">document.page.menu.form</field>
<field name="model">document.page</field> <field name="model">document.page</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Document Page" create="0"> <form string="Document Page" create="0">
<field name="type" invisible="1"/> <field name="type" invisible="1" />
<h1> <h1>
<field name="name" placeholder="Name"/> <field name="name" placeholder="Name" />
</h1> </h1>
<field name="content" widget="html" class="oe_view_only" required="1" options='{"safe": True}'/> <field
name="content"
widget="html"
class="oe_view_only"
required="1"
options='{"safe": True}'
/>
</form> </form>
</field> </field>
</record> </record>
<!-- page Search view --> <!-- page Search view -->
<record id="view_wiki_filter" model="ir.ui.view"> <record id="view_wiki_filter" model="ir.ui.view">
<field name="name">document.page.search</field> <field name="name">document.page.search</field>
<field name="model">document.page</field> <field name="model">document.page</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<search string="Document Page"> <search string="Document Page">
<field name="name" string="Content" <field
filter_domain="['|', ('name','ilike',self), ('content','ilike',self)]"/> name="name"
<field name="parent_id"/> string="Content"
<field name="create_uid"/> filter_domain="['|', ('name','ilike',self), ('content','ilike',self)]"
<field name="content_uid"/> />
<field name="parent_id" />
<field name="create_uid" />
<field name="content_uid" />
<group expand="0" string="Group By..."> <group expand="0" string="Group By...">
<filter name="group_by_category" string="Category" context="{'group_by':'parent_id'}"/> <filter
<filter name="group_by_author" string="Author" context="{'group_by':'create_uid'}"/> name="group_by_category"
<filter name="group_by_last_contributor" string="Last Contributor" context="{'group_by':'content_uid'}"/> string="Category"
context="{'group_by':'parent_id'}"
/>
<filter
name="group_by_author"
string="Author"
context="{'group_by':'create_uid'}"
/>
<filter
name="group_by_last_contributor"
string="Last Contributor"
context="{'group_by':'content_uid'}"
/>
</group> </group>
</search> </search>
</field> </field>
</record> </record>
<!-- page action --> <!-- page action -->
<record id="action_page" model="ir.actions.act_window"> <record id="action_page" model="ir.actions.act_window">
<field name="name">Pages</field> <field name="name">Pages</field>
@ -130,40 +169,37 @@
<field name="domain">[('type','=','content')]</field> <field name="domain">[('type','=','content')]</field>
<field name="context">{'default_type': 'content'}</field> <field name="context">{'default_type': 'content'}</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form</field>
<field name="view_id" ref="view_wiki_tree"/> <field name="view_id" ref="view_wiki_tree" />
<field name="search_view_id" ref="view_wiki_filter"/> <field name="search_view_id" ref="view_wiki_filter" />
<field name="help" type="html"> <field name="help" type="html">
<p class="oe_view_nocontent_create"> <p class="oe_view_nocontent_create">
Click to create a new web page. Click to create a new web page.
</p> </p>
</field> </field>
</record> </record>
<record id="action_page_view_tree" model="ir.actions.act_window.view"> <record id="action_page_view_tree" model="ir.actions.act_window.view">
<field name="sequence" eval="0"/> <field name="sequence" eval="0" />
<field name="view_mode">tree</field> <field name="view_mode">tree</field>
<field name="view_id" ref="view_wiki_tree"/> <field name="view_id" ref="view_wiki_tree" />
<field name="act_window_id" ref="action_page"/> <field name="act_window_id" ref="action_page" />
</record> </record>
<record id="action_page_view_form" model="ir.actions.act_window.view"> <record id="action_page_view_form" model="ir.actions.act_window.view">
<field name="sequence" eval="5"/> <field name="sequence" eval="5" />
<field name="view_mode">form</field> <field name="view_mode">form</field>
<field name="view_id" ref="view_wiki_form"/> <field name="view_id" ref="view_wiki_form" />
<field name="act_window_id" ref="action_page"/> <field name="act_window_id" ref="action_page" />
</record> </record>
<menuitem
id="menu_wiki"
<menuitem id="menu_wiki" name="Pages"
name="Pages" parent="knowledge.menu_document_root"
parent="knowledge.menu_document_root" sequence="10"
sequence="10"/> />
<menuitem
id="menu_page"
<menuitem id="menu_page" name="Pages"
name="Pages" parent="menu_wiki"
parent="menu_wiki" action="action_page"
action="action_page" sequence="20"
sequence="20"/> />
</odoo> </odoo>

View File

@ -1,10 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8" ?>
<odoo> <odoo>
<template
<template id="assets_backend" name="document_page assets" inherit_id="web.assets_backend"> id="assets_backend"
name="document_page assets"
inherit_id="web.assets_backend"
>
<xpath expr="." position="inside"> <xpath expr="." position="inside">
<link rel="stylesheet" type="text/scss" href="/document_page/static/src/scss/document_page.scss"/> <link
rel="stylesheet"
type="text/scss"
href="/document_page/static/src/scss/document_page.scss"
/>
</xpath> </xpath>
</template> </template>
</odoo> </odoo>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8" ?>
<odoo> <odoo>
<!-- Category Views --> <!-- Category Views -->
<record id="view_category_form" model="ir.ui.view"> <record id="view_category_form" model="ir.ui.view">
<field name="name">document.page.category.form</field> <field name="name">document.page.category.form</field>
@ -8,68 +7,94 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Category"> <form string="Category">
<sheet> <sheet>
<field name="type" invisible="1"/> <field name="type" invisible="1" />
<h1><field name="name" placeholder="Name"/></h1> <h1>
<field name="name" placeholder="Name" />
</h1>
<group> <group>
<group> <group>
<field name="parent_id" string="Category" context="{'default_type':'category'}"/> <field
name="parent_id"
string="Category"
context="{'default_type':'category'}"
/>
</group> </group>
<group> <group>
<field name="write_uid" groups="base.group_no_one"/> <field name="write_uid" groups="base.group_no_one" />
<field name="write_date" groups="base.group_no_one"/> <field name="write_date" groups="base.group_no_one" />
<field name="menu_id" groups="base.group_no_one"/> <field name="menu_id" groups="base.group_no_one" />
</group> </group>
</group> </group>
<notebook> <notebook>
<page string="Template" name="template"> <page string="Template" name="template">
<field name="template" placeholder="e.g. Once upon a time..." /> <field
name="template"
placeholder="e.g. Once upon a time..."
/>
</page> </page>
<page string="Documents" name="documents"> <page string="Documents" name="documents">
<field name="content" widget="html" class="oe_view_only" options='{"safe": True}' /> <field
name="content"
widget="html"
class="oe_view_only"
options='{"safe": True}'
/>
</page> </page>
</notebook> </notebook>
</sheet> </sheet>
<div class="oe_chatter"> <div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/> <field name="message_follower_ids" widget="mail_followers" />
<field name="message_ids" widget="mail_thread"/> <field name="message_ids" widget="mail_thread" />
</div> </div>
</form> </form>
</field> </field>
</record> </record>
<record id="view_category_tree" model="ir.ui.view"> <record id="view_category_tree" model="ir.ui.view">
<field name="name">document.page.category.tree</field> <field name="name">document.page.category.tree</field>
<field name="model">document.page</field> <field name="model">document.page</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="Categories"> <tree string="Categories">
<field name="name"/> <field name="name" />
<field name="parent_id"/> <field name="parent_id" />
<field name="create_uid" invisible="1"/> <field name="create_uid" invisible="1" />
<field name="write_uid"/> <field name="write_uid" />
<field name="write_date"/> <field name="write_date" />
</tree> </tree>
</field> </field>
</record> </record>
<record id="view_document_category_filter" model="ir.ui.view"> <record id="view_document_category_filter" model="ir.ui.view">
<field name="name">document.page.category.search</field> <field name="name">document.page.category.search</field>
<field name="model">document.page</field> <field name="model">document.page</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<search string="Document Category"> <search string="Document Category">
<field name="name" string="Content" <field
filter_domain="['|', ('name','ilike',self), ('template','ilike',self)]"/> name="name"
<field name="parent_id"/> string="Content"
<field name="create_uid"/> filter_domain="['|', ('name','ilike',self), ('template','ilike',self)]"
<field name="content_uid"/> />
<field name="parent_id" />
<field name="create_uid" />
<field name="content_uid" />
<group expand="0" string="Group By..."> <group expand="0" string="Group By...">
<filter name="group_by_category" string="Category" context="{'group_by':'parent_id'}"/> <filter
<filter name="group_by_author" string="Author" context="{'group_by':'create_uid'}"/> name="group_by_category"
<filter name="group_by_last_contributor" string="Last Contributor" context="{'group_by':'content_uid'}"/> string="Category"
context="{'group_by':'parent_id'}"
/>
<filter
name="group_by_author"
string="Author"
context="{'group_by':'create_uid'}"
/>
<filter
name="group_by_last_contributor"
string="Last Contributor"
context="{'group_by':'content_uid'}"
/>
</group> </group>
</search> </search>
</field> </field>
</record> </record>
<!-- Category Action --> <!-- Category Action -->
<record id="action_category" model="ir.actions.act_window"> <record id="action_category" model="ir.actions.act_window">
<field name="name">Category</field> <field name="name">Category</field>
@ -77,29 +102,26 @@
<field name="domain">[('type','=','category')]</field> <field name="domain">[('type','=','category')]</field>
<field name="context">{'default_type': 'category'}</field> <field name="context">{'default_type': 'category'}</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form</field>
<field name="view_id" ref="view_category_tree"/> <field name="view_id" ref="view_category_tree" />
<field name="search_view_id" ref="view_document_category_filter"/> <field name="search_view_id" ref="view_document_category_filter" />
</record> </record>
<record id="action_category_view_tree" model="ir.actions.act_window.view"> <record id="action_category_view_tree" model="ir.actions.act_window.view">
<field name="sequence" eval="0" /> <field name="sequence" eval="0" />
<field name="view_mode">tree</field> <field name="view_mode">tree</field>
<field name="view_id" ref="view_category_tree"/> <field name="view_id" ref="view_category_tree" />
<field name="act_window_id" ref="action_category"/> <field name="act_window_id" ref="action_category" />
</record> </record>
<record id="action_category_view_form" model="ir.actions.act_window.view"> <record id="action_category_view_form" model="ir.actions.act_window.view">
<field name="sequence" eval="5" /> <field name="sequence" eval="5" />
<field name="view_mode">form</field> <field name="view_mode">form</field>
<field name="view_id" ref="view_category_form"/> <field name="view_id" ref="view_category_form" />
<field name="act_window_id" ref="action_category"/> <field name="act_window_id" ref="action_category" />
</record> </record>
<menuitem
<menuitem id="menu_category" id="menu_category"
parent="menu_wiki" parent="menu_wiki"
name="Categories" name="Categories"
action="action_category" action="action_category"
sequence="20"/> sequence="20"
/>
</odoo> </odoo>

View File

@ -1,38 +1,39 @@
<?xml version="1.0"?> <?xml version="1.0" ?>
<odoo> <odoo>
<!-- History Tree view --> <!-- History Tree view -->
<record model="ir.ui.view" id="view_wiki_history_tree"> <record model="ir.ui.view" id="view_wiki_history_tree">
<field name="name">document.page.history.tree</field> <field name="name">document.page.history.tree</field>
<field name="model">document.page.history</field> <field name="model">document.page.history</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="Document History"> <tree string="Document History">
<field name="id"/> <field name="id" />
<field name="page_id"/> <field name="page_id" />
<field name="name"/> <field name="name" />
<field name="summary"/> <field name="summary" />
<field name="create_uid"/> <field name="create_uid" />
<field name="create_date"/> <field name="create_date" />
</tree> </tree>
</field> </field>
</record> </record>
<!-- History Search view --> <!-- History Search view -->
<record id="view_wiki_history_filter" model="ir.ui.view"> <record id="view_wiki_history_filter" model="ir.ui.view">
<field name="name">document.page.history.search</field> <field name="name">document.page.history.search</field>
<field name="model">document.page.history</field> <field name="model">document.page.history</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<search string="Document Page History"> <search string="Document Page History">
<field name="page_id"/> <field name="page_id" />
<field name="content"/> <field name="content" />
<field name="create_uid"/> <field name="create_uid" />
<group expand="0" string="Group By..."> <group expand="0" string="Group By...">
<filter name="group_by_author" string="Author" context="{'group_by':'create_uid'}" /> <filter
name="group_by_author"
string="Author"
context="{'group_by':'create_uid'}"
/>
</group> </group>
</search> </search>
</field> </field>
</record> </record>
<!-- History Form view --> <!-- History Form view -->
<record model="ir.ui.view" id="wiki_history_form"> <record model="ir.ui.view" id="wiki_history_form">
<field name="name">document.page.history.form</field> <field name="name">document.page.history.form</field>
@ -40,50 +41,60 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Document Page History"> <form string="Document Page History">
<sheet> <sheet>
<h1><field name="page_id" readonly="1"/></h1> <h1>
<field name="page_id" readonly="1" />
</h1>
<group> <group>
<group> <group>
<field name="create_uid" readonly="1"/> <field name="create_uid" readonly="1" />
<field name="create_date" readonly="1"/> <field name="create_date" readonly="1" />
</group> </group>
</group> </group>
<group> <group>
<field name="name" placeholder="Rev 01"/> <field name="name" placeholder="Rev 01" />
<field name="summary" placeholder="eg: Changed ... for ..."/> <field name="summary" placeholder="eg: Changed ... for ..." />
</group> </group>
<notebook> <notebook>
<page name="content" string="Content"> <page name="content" string="Content">
<field name="content" widget="html" placeholder="e.g. Once upon a time..." options="{'safe': True}"/> <field
name="content"
widget="html"
placeholder="e.g. Once upon a time..."
options="{'safe': True}"
/>
</page> </page>
<page name="diff" string="Changes"> <page name="diff" string="Changes">
<field name="diff" widget="html" style="overflow-x: scroll" /> <field
name="diff"
widget="html"
style="overflow-x: scroll"
/>
</page> </page>
</notebook> </notebook>
</sheet> </sheet>
</form> </form>
</field> </field>
</record> </record>
<!-- History Action --> <!-- History Action -->
<record model="ir.actions.act_window" id="action_history"> <record model="ir.actions.act_window" id="action_history">
<field name="name">Page history</field> <field name="name">Page history</field>
<field name="res_model">document.page.history</field> <field name="res_model">document.page.history</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form</field>
</record> </record>
<menuitem
<menuitem id="menu_page_history" id="menu_page_history"
parent="menu_wiki" parent="menu_wiki"
name="Pages history" name="Pages history"
action="action_history" action="action_history"
sequence="30" sequence="30"
groups="base.group_no_one" /> groups="base.group_no_one"
/>
<act_window id="action_related_page_history" <act_window
id="action_related_page_history"
context="{'search_default_page_id': [active_id], 'default_page_id': active_id}" context="{'search_default_page_id': [active_id], 'default_page_id': active_id}"
domain="[('page_id','=',active_id)]" domain="[('page_id','=',active_id)]"
name="Page History" name="Page History"
res_model="document.page.history" res_model="document.page.history"
binding_model="document.page"/> binding_model="document.page"
/>
</odoo> </odoo>

View File

@ -1,16 +1,13 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<template id="report_documentpage_doc"> <template id="report_documentpage_doc">
<t t-call="web.external_layout"> <t t-call="web.external_layout">
<div class="page"> <div class="page">
<h1 t-field="doc.name" /> <h1 t-field="doc.name" />
<div t-raw="doc.content" /> <div t-raw="doc.content" />
</div> </div>
</t> </t>
</template> </template>
<template id="report_documentpage"> <template id="report_documentpage">
<t t-call="web.html_container"> <t t-call="web.html_container">
<t t-foreach="docs" t-as="doc"> <t t-foreach="docs" t-as="doc">
@ -18,7 +15,6 @@
</t> </t>
</t> </t>
</template> </template>
<report <report
id="report_document_page" id="report_document_page"
string="Document Page" string="Document Page"
@ -27,5 +23,4 @@
file="document_page.report_documentpage" file="document_page.report_documentpage"
name="document_page.report_documentpage" name="document_page.report_documentpage"
/> />
</odoo> </odoo>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<!-- Create Menu From view --> <!-- Create Menu From view -->
<record id="view_wiki_create_menu" model="ir.ui.view"> <record id="view_wiki_create_menu" model="ir.ui.view">
<field name="name">Create Menu</field> <field name="name">Create Menu</field>
@ -12,25 +11,24 @@
<field name="menu_parent_id" /> <field name="menu_parent_id" />
</group> </group>
<footer> <footer>
<button name="document_page_menu_create" <button
string="Create Menu" name="document_page_menu_create"
type="object" string="Create Menu"
class="oe_highlight" /> type="object"
class="oe_highlight"
/>
or or
<button string="Cancel" <button string="Cancel" class="oe_link" special="cancel" />
class="oe_link"
special="cancel" />
</footer> </footer>
</form> </form>
</field> </field>
</record> </record>
<act_window <act_window
id="action_related_page_create_menu" id="action_related_page_create_menu"
name="Create Menu" name="Create Menu"
res_model="document.page.create.menu" res_model="document.page.create.menu"
target="new" target="new"
view_mode="form" view_mode="form"
binding_model="document.page"/> binding_model="document.page"
/>
</odoo> </odoo>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<!-- Create Index Form view --> <!-- Create Index Form view -->
<record id="view_wiki_show_diff" model="ir.ui.view"> <record id="view_wiki_show_diff" model="ir.ui.view">
<field name="name">Show Difference</field> <field name="name">Show Difference</field>
@ -14,14 +13,13 @@
</form> </form>
</field> </field>
</record> </record>
<!-- Create Index Action Window --> <!-- Create Index Action Window -->
<act_window <act_window
id="action_view_wiki_show_diff_values" id="action_view_wiki_show_diff_values"
name="Difference" name="Difference"
res_model="wizard.document.page.history.show_diff" res_model="wizard.document.page.history.show_diff"
binding_model="document.page.history" binding_model="document.page.history"
view_mode="form" view_mode="form"
target="new"/> target="new"
/>
</odoo> </odoo>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<record model="ir.module.category" id="module_category_knowledge"> <record model="ir.module.category" id="module_category_knowledge">
<field name="name">Knowledge</field> <field name="name">Knowledge</field>
<field name="description">Manage documents and knowledge-related <field name="description">Manage documents and knowledge-related
@ -8,5 +7,4 @@
</field> </field>
<field name="sequence">30</field> <field name="sequence">30</field>
</record> </record>
</odoo> </odoo>

View File

@ -1,8 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<record id="base.user_admin" model="res.users"> <record id="base.user_admin" model="res.users">
<field name="groups_id" eval="[(4,ref('knowledge.group_document_user'))]"/> <field name="groups_id" eval="[(4,ref('knowledge.group_document_user'))]" />
</record> </record>
</odoo> </odoo>

View File

@ -1,8 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1"> <odoo noupdate="1">
<record id="base.user_demo" model="res.users"> <record id="base.user_demo" model="res.users">
<field name="groups_id" eval="[(4,ref('knowledge.group_document_user'))]"/> <field name="groups_id" eval="[(4,ref('knowledge.group_document_user'))]" />
</record> </record>
</odoo> </odoo>

View File

@ -1,16 +1,13 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<record id="group_document_user" model="res.groups"> <record id="group_document_user" model="res.groups">
<field name="name">Knowledge user</field> <field name="name">Knowledge user</field>
<field name="category_id" ref="module_category_knowledge"/> <field name="category_id" ref="module_category_knowledge" />
<field name="users" eval="[(4, ref('base.user_root'))]"/> <field name="users" eval="[(4, ref('base.user_root'))]" />
</record> </record>
<record id="group_ir_attachment_user" model="res.groups"> <record id="group_ir_attachment_user" model="res.groups">
<field name="name">Central access to Documents</field> <field name="name">Central access to Documents</field>
<field name="category_id" ref="base.module_category_hidden"/> <field name="category_id" ref="base.module_category_hidden" />
<field name="implied_ids" eval="[(4, ref('group_document_user'))]"/> <field name="implied_ids" eval="[(4, ref('group_document_user'))]" />
</record> </record>
</odoo> </odoo>

View File

@ -1,51 +1,54 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<record id="knowledge_action_documents" model="ir.actions.act_window"> <record id="knowledge_action_documents" model="ir.actions.act_window">
<field name="name">Documents</field> <field name="name">Documents</field>
<field name="res_model">ir.attachment</field> <field name="res_model">ir.attachment</field>
<field name="view_mode">kanban,tree,form</field> <field name="view_mode">kanban,tree,form</field>
<field name="context">{'search_default_user_documents': True}</field> <field name="context">{'search_default_user_documents': True}</field>
</record> </record>
<record id="ir_attachment_view_user_documents" model="ir.ui.view"> <record id="ir_attachment_view_user_documents" model="ir.ui.view">
<field name="name">Documents search view: additional filters</field> <field name="name">Documents search view: additional filters</field>
<field name="model">ir.attachment</field> <field name="model">ir.attachment</field>
<field name="inherit_id" ref="base.view_attachment_search"/> <field name="inherit_id" ref="base.view_attachment_search" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<search> <search>
<field name="res_model"/> <field name="res_model" />
<field name="index_content"/> <field name="index_content" />
<filter name="user_documents" string="Documents" <filter
domain="[('res_model', 'not like', 'ir.%'), ('res_model', '!=', False)]"/> name="user_documents"
string="Documents"
domain="[('res_model', 'not like', 'ir.%'), ('res_model', '!=', False)]"
/>
<group string="Group by"> <group string="Group by">
<filter name="group_model" string="Model" <filter
context="{'group_by': 'res_model'}"/> name="group_model"
string="Model"
context="{'group_by': 'res_model'}"
/>
</group> </group>
</search> </search>
</field> </field>
</record> </record>
<!-- Top menu item --> <!-- Top menu item -->
<menuitem <menuitem
id="menu_document_root" id="menu_document_root"
name="Knowledge" name="Knowledge"
groups="knowledge.group_document_user" groups="knowledge.group_document_user"
web_icon="knowledge,static/description/icon.png" web_icon="knowledge,static/description/icon.png"
sequence="116"/> sequence="116"
/>
<menuitem <menuitem
id="menu_document_section" id="menu_document_section"
name="Documents" name="Documents"
groups="knowledge.group_ir_attachment_user" groups="knowledge.group_ir_attachment_user"
parent="menu_document_root" parent="menu_document_root"
sequence="150"/> sequence="150"
/>
<menuitem <menuitem
id="menu_document" id="menu_document"
name="Documents" name="Documents"
action="knowledge_action_documents" action="knowledge_action_documents"
parent="menu_document_section" parent="menu_document_section"
sequence="0"/> sequence="0"
/>
</odoo> </odoo>

View File

@ -1,68 +1,75 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<record id="view_knowledge_configuration" model="ir.ui.view"> <record id="view_knowledge_configuration" model="ir.ui.view">
<field name="name">res.config.settings.view.form.inherit.knowledge</field> <field name="name">res.config.settings.view.form.inherit.knowledge</field>
<field name="model">res.config.settings</field> <field name="model">res.config.settings</field>
<field name="inherit_id" ref="base.res_config_settings_view_form"/> <field name="inherit_id" ref="base.res_config_settings_view_form" />
<field name="priority" eval="90"/> <field name="priority" eval="90" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//div[hasclass('settings')]" position="inside"> <xpath expr="//div[hasclass('settings')]" position="inside">
<div class="app_settings_block" data-string="Knowledge" <div
string="Knowledge" data-key="knowledge"> class="app_settings_block"
data-string="Knowledge"
string="Knowledge"
data-key="knowledge"
>
<h2>Knowledge and Documents Management</h2> <h2>Knowledge and Documents Management</h2>
<div class="row mt16 o_settings_container" <div
id="maintenance_mode_setting"> class="row mt16 o_settings_container"
id="maintenance_mode_setting"
>
<div class="col-xs-12 col-md-12 o_setting_box"> <div class="col-xs-12 col-md-12 o_setting_box">
<div class="o_setting_left_pane"> <div class="o_setting_left_pane">
<field name="module_attachment_indexation"/> <field name="module_attachment_indexation" />
</div> </div>
<div class="o_setting_right_pane"> <div class="o_setting_right_pane">
<label for="module_attachment_indexation"/> <label for="module_attachment_indexation" />
</div> </div>
</div> </div>
<div class="col-xs-12 col-md-12 o_setting_box"> <div class="col-xs-12 col-md-12 o_setting_box">
<div class="o_setting_left_pane"> <div class="o_setting_left_pane">
<field name="group_ir_attachment_user"/> <field name="group_ir_attachment_user" />
</div> </div>
<div class="o_setting_right_pane"> <div class="o_setting_right_pane">
<label for="group_ir_attachment_user"/> <label for="group_ir_attachment_user" />
</div> </div>
</div> </div>
<div class="col-xs-12 col-md-12 o_setting_box"> <div class="col-xs-12 col-md-12 o_setting_box">
<div class="o_setting_left_pane"> <div class="o_setting_left_pane">
<field name="module_document_page"/> <field name="module_document_page" />
</div> </div>
<div class="o_setting_right_pane"> <div class="o_setting_right_pane">
<label for="module_document_page"/> <label for="module_document_page" />
</div> </div>
</div> </div>
<div class="col-xs-12 col-md-12 o_setting_box"> <div class="col-xs-12 col-md-12 o_setting_box">
<div class="o_setting_left_pane"> <div class="o_setting_left_pane">
<field name="module_document_page_approval"/> <field name="module_document_page_approval" />
</div> </div>
<div class="o_setting_right_pane"> <div class="o_setting_right_pane">
<label for="module_document_page_approval"/> <label for="module_document_page_approval" />
</div> </div>
</div> </div>
</div> </div>
<h2>Connect with an external DMS</h2> <h2>Connect with an external DMS</h2>
<div class="row mt16 o_settings_container" <div
id="maintenance_notification_setting"> class="row mt16 o_settings_container"
id="maintenance_notification_setting"
>
<div class="col-xs-12 col-md-12 o_setting_box"> <div class="col-xs-12 col-md-12 o_setting_box">
<div class="o_setting_left_pane"> <div class="o_setting_left_pane">
<field name="module_cmis_read"/> <field name="module_cmis_read" />
</div> </div>
<div class="o_setting_right_pane"> <div class="o_setting_right_pane">
<label for="module_cmis_read"/> <label for="module_cmis_read" />
</div> </div>
</div> </div>
<div class="col-xs-12 col-md-12 o_setting_box"> <div class="col-xs-12 col-md-12 o_setting_box">
<div class="o_setting_left_pane"> <div class="o_setting_left_pane">
<field name="module_cmis_write"/> <field name="module_cmis_write" />
</div> </div>
<div class="o_setting_right_pane"> <div class="o_setting_right_pane">
<label for="module_cmis_write"/> <label for="module_cmis_write" />
</div> </div>
</div> </div>
</div> </div>
@ -74,20 +81,23 @@
<field name="name">Settings</field> <field name="name">Settings</field>
<field name="type">ir.actions.act_window</field> <field name="type">ir.actions.act_window</field>
<field name="res_model">res.config.settings</field> <field name="res_model">res.config.settings</field>
<field name="view_id" ref="view_knowledge_configuration"/> <field name="view_id" ref="view_knowledge_configuration" />
<field name="view_mode">form</field> <field name="view_mode">form</field>
<field name="target">inline</field> <field name="target">inline</field>
<field name="context">{'module': 'knowledge'}</field> <field name="context">{'module': 'knowledge'}</field>
</record> </record>
<menuitem id="menu_document_configuration" <menuitem
name="Configuration" id="menu_document_configuration"
parent="menu_document_root" name="Configuration"
groups="base.group_system" parent="menu_document_root"
sequence="200"/> groups="base.group_system"
<menuitem id="menu_knowledge_configuration" sequence="200"
name="Settings" />
parent="menu_document_configuration" <menuitem
sequence="0" id="menu_knowledge_configuration"
action="action_knowledge_configuration"/> name="Settings"
parent="menu_document_configuration"
sequence="0"
action="action_knowledge_configuration"
/>
</odoo> </odoo>