[MIG] auditlog: Migration to 12.0

pull/2268/head
sebalix 2019-04-09 12:05:11 +02:00 committed by BT-vgabor
parent e7cbf1aca3
commit efd05a2ef4
15 changed files with 571 additions and 41 deletions

View File

@ -1,14 +1,38 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg =========
:target: https://www.gnu.org/licenses/agpl-3.0-standalone.html Audit Log
:alt: License: AGPL-3 =========
================================= .. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Audit Log - Track user operations !! This file is generated by oca-gen-addon-readme !!
================================= !! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github
:target: https://github.com/OCA/server-tools/tree/12.0/auditlog
:alt: OCA/server-tools
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/server-tools-12-0/server-tools-12-0-auditlog
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/149/12.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
This module allows the administrator to log user operations performed on data This module allows the administrator to log user operations performed on data
models such as ``create``, ``read``, ``write`` and ``delete``. models such as ``create``, ``read``, ``write`` and ``delete``.
**Table of contents**
.. contents::
:local:
Usage Usage
===== =====
@ -38,41 +62,51 @@ Known issues / Roadmap
====================== ======================
* log only operations triggered by some users (currently it logs all users) * log only operations triggered by some users (currently it logs all users)
* log read operations does not work on all data models, need investigation
Bug Tracker Bug Tracker
=========== ===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-tools/issues>`_. Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-tools/issues>`_.
In case of trouble, please check there if your issue has already been reported. In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed feedback If you spotted it first, help us smashing it by providing a detailed and welcomed
`here <https://github.com/OCA/server-tools/issues/new?body=module:%20auditlog%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. `feedback <https://github.com/OCA/server-tools/issues/new?body=module:%20auditlog%0Aversion:%2012.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 Credits
======= =======
Contributors Authors
------------ ~~~~~~~
* Sebastien Alix <sebastien.alix@osiell.com> * ABF OSIELL
Contributors
~~~~~~~~~~~~
* Sebastien Alix <sebastien.alix@camptocamp.com>
* Holger Brunn <hbrunn@therp.nl> * Holger Brunn <hbrunn@therp.nl>
* Holden Rehg <holdenrehg@gmail.com> * Holden Rehg <holdenrehg@gmail.com>
Images Other credits
------ ~~~~~~~~~~~~~
* Icon: built with different icons from the `Oxygen theme <https://en.wikipedia.org/wiki/Oxygen_Project>`_ (LGPL) * Icon: built with different icons from the `Oxygen theme <https://en.wikipedia.org/wiki/Oxygen_Project>`_ (LGPL)
Maintainer Maintainers
---------- ~~~~~~~~~~~
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png .. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association :alt: Odoo Community Association
:target: https://odoo-community.org :target: https://odoo-community.org
This module is maintained by the OCA. OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
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/server-tools <https://github.com/OCA/server-tools/tree/12.0/auditlog>`_ project on GitHub.
To contribute to this module, please visit https://odoo-community.org. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@ -1,12 +1,12 @@
# © 2015 ABF OSIELL <https://osiell.com> # Copyright 2015 ABF OSIELL <https://osiell.com>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{ {
'name': "Audit Log", 'name': "Audit Log",
'version': "11.0.1.0.0", 'version': "12.0.1.0.0",
'author': "ABF OSIELL,Odoo Community Association (OCA)", 'author': "ABF OSIELL,Odoo Community Association (OCA)",
'license': "AGPL-3", 'license': "AGPL-3",
'website': "https://www.osiell.com", 'website': "https://github.com/OCA/server-tools/",
'category': "Tools", 'category': "Tools",
'depends': [ 'depends': [
'base', 'base',

View File

@ -1,4 +1,4 @@
# © 2016 ABF OSIELL <https://osiell.com> # Copyright 2016 ABF OSIELL <https://osiell.com>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
import logging import logging
from datetime import datetime, timedelta from datetime import datetime, timedelta

View File

@ -1,4 +1,4 @@
# © 2015 ABF OSIELL <https://osiell.com> # Copyright 2015 ABF OSIELL <https://osiell.com>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from psycopg2.extensions import AsIs from psycopg2.extensions import AsIs

View File

@ -1,4 +1,4 @@
# © 2015 ABF OSIELL <https://osiell.com> # Copyright 2015 ABF OSIELL <https://osiell.com>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import models, fields, api from odoo import models, fields, api

View File

@ -1,4 +1,4 @@
# © 2015 ABF OSIELL <https://osiell.com> # Copyright 2015 ABF OSIELL <https://osiell.com>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import models, fields from odoo import models, fields

View File

@ -1,4 +1,4 @@
# © 2015 ABF OSIELL <https://osiell.com> # Copyright 2015 ABF OSIELL <https://osiell.com>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import models, fields, api, modules, _ from odoo import models, fields, api, modules, _
@ -44,32 +44,40 @@ class AuditlogRule(models.Model):
_name = 'auditlog.rule' _name = 'auditlog.rule'
_description = "Auditlog - Rule" _description = "Auditlog - Rule"
name = fields.Char("Name", size=32, required=True) name = fields.Char(
"Name", required=True,
states={'subscribed': [('readonly', True)]})
model_id = fields.Many2one( model_id = fields.Many2one(
'ir.model', "Model", required=True, 'ir.model', "Model", required=True,
help="Select model for which you want to generate log.") help="Select model for which you want to generate log.",
states={'subscribed': [('readonly', True)]})
user_ids = fields.Many2many( user_ids = fields.Many2many(
'res.users', 'res.users',
'audittail_rules_users', 'audittail_rules_users',
'user_id', 'rule_id', 'user_id', 'rule_id',
string="Users", string="Users",
help="if User is not added then it will applicable for all users") help="if User is not added then it will applicable for all users",
states={'subscribed': [('readonly', True)]})
log_read = fields.Boolean( log_read = fields.Boolean(
"Log Reads", "Log Reads",
help=("Select this if you want to keep track of read/open on any " help=("Select this if you want to keep track of read/open on any "
"record of the model of this rule")) "record of the model of this rule"),
states={'subscribed': [('readonly', True)]})
log_write = fields.Boolean( log_write = fields.Boolean(
"Log Writes", default=True, "Log Writes", default=True,
help=("Select this if you want to keep track of modification on any " help=("Select this if you want to keep track of modification on any "
"record of the model of this rule")) "record of the model of this rule"),
states={'subscribed': [('readonly', True)]})
log_unlink = fields.Boolean( log_unlink = fields.Boolean(
"Log Deletes", default=True, "Log Deletes", default=True,
help=("Select this if you want to keep track of deletion on any " help=("Select this if you want to keep track of deletion on any "
"record of the model of this rule")) "record of the model of this rule"),
states={'subscribed': [('readonly', True)]})
log_create = fields.Boolean( log_create = fields.Boolean(
"Log Creates", default=True, "Log Creates", default=True,
help=("Select this if you want to keep track of creation on any " help=("Select this if you want to keep track of creation on any "
"record of the model of this rule")) "record of the model of this rule"),
states={'subscribed': [('readonly', True)]})
log_type = fields.Selection( log_type = fields.Selection(
[('full', "Full log"), [('full', "Full log"),
('fast', "Fast log"), ('fast', "Fast log"),
@ -79,7 +87,8 @@ class AuditlogRule(models.Model):
"the operation (log more info like computed fields which were " "the operation (log more info like computed fields which were "
"updated, but it is slower)\n" "updated, but it is slower)\n"
"Fast log: only log the changes made through the create and " "Fast log: only log the changes made through the create and "
"write operations (less information, but it is faster)")) "write operations (less information, but it is faster)"),
states={'subscribed': [('readonly', True)]})
# log_action = fields.Boolean( # log_action = fields.Boolean(
# "Log Action", # "Log Action",
# help=("Select this if you want to keep track of actions on the " # help=("Select this if you want to keep track of actions on the "
@ -92,7 +101,8 @@ class AuditlogRule(models.Model):
[('draft', "Draft"), ('subscribed', "Subscribed")], [('draft', "Draft"), ('subscribed', "Subscribed")],
string="State", required=True, default='draft') string="State", required=True, default='draft')
action_id = fields.Many2one( action_id = fields.Many2one(
'ir.actions.act_window', string="Action") 'ir.actions.act_window', string="Action",
states={'subscribed': [('readonly', True)]})
_sql_constraints = [ _sql_constraints = [
('model_uniq', 'unique(model_id)', ('model_uniq', 'unique(model_id)',

View File

@ -0,0 +1,3 @@
* Sebastien Alix <sebastien.alix@camptocamp.com>
* Holger Brunn <hbrunn@therp.nl>
* Holden Rehg <holdenrehg@gmail.com>

View File

@ -0,0 +1 @@
* Icon: built with different icons from the `Oxygen theme <https://en.wikipedia.org/wiki/Oxygen_Project>`_ (LGPL)

View File

@ -0,0 +1,2 @@
This module allows the administrator to log user operations performed on data
models such as ``create``, ``read``, ``write`` and ``delete``.

View File

@ -0,0 +1,2 @@
* log only operations triggered by some users (currently it logs all users)
* log read operations does not work on all data models, need investigation

View File

@ -0,0 +1,21 @@
Go to `Settings / Technical / Audit / Rules` to subscribe rules. A rule defines
which operations to log for a given data model.
.. image:: /auditlog/static/description/rule.png
Then, check logs in the `Settings / Technical / Audit / Logs` menu. You can
group them by user sessions, date, data model or HTTP requests:
.. image:: /auditlog/static/description/logs.png
Get the details:
.. image:: /auditlog/static/description/log.png
A scheduled action exists to delete logs older than 6 months (180 days)
automatically but is not enabled by default.
To activate it and/or change the delay, go to the
`Configuration / Technical / Automation / Scheduled Actions` menu and edit the
`Auto-vacuum audit logs` entry:
.. image:: /auditlog/static/description/autovacuum.png

View File

@ -0,0 +1,457 @@
<?xml version="1.0" encoding="utf-8" ?>
<!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 0.14: http://docutils.sourceforge.net/" />
<title>Audit Log</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
See http://docutils.sf.net/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: grey; } /* 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 {
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="audit-log">
<h1 class="title">Audit Log</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external" 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" 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" href="https://github.com/OCA/server-tools/tree/12.0/auditlog"><img alt="OCA/server-tools" src="https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/server-tools-12-0/server-tools-12-0-auditlog"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/149/12.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>This module allows the administrator to log user operations performed on data
models such as <tt class="docutils literal">create</tt>, <tt class="docutils literal">read</tt>, <tt class="docutils literal">write</tt> and <tt class="docutils literal">delete</tt>.</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="id1">Usage</a></li>
<li><a class="reference internal" href="#known-issues-roadmap" id="id2">Known issues / Roadmap</a></li>
<li><a class="reference internal" href="#bug-tracker" id="id3">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="id4">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="id5">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="id6">Contributors</a></li>
<li><a class="reference internal" href="#other-credits" id="id7">Other credits</a></li>
<li><a class="reference internal" href="#maintainers" id="id8">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#id1">Usage</a></h1>
<p>Go to <cite>Settings / Technical / Audit / Rules</cite> to subscribe rules. A rule defines
which operations to log for a given data model.</p>
<img alt="/auditlog/static/description/rule.png" src="/auditlog/static/description/rule.png" />
<p>Then, check logs in the <cite>Settings / Technical / Audit / Logs</cite> menu. You can
group them by user sessions, date, data model or HTTP requests:</p>
<img alt="/auditlog/static/description/logs.png" src="/auditlog/static/description/logs.png" />
<p>Get the details:</p>
<img alt="/auditlog/static/description/log.png" src="/auditlog/static/description/log.png" />
<p>A scheduled action exists to delete logs older than 6 months (180 days)
automatically but is not enabled by default.
To activate it and/or change the delay, go to the
<cite>Configuration / Technical / Automation / Scheduled Actions</cite> menu and edit the
<cite>Auto-vacuum audit logs</cite> entry:</p>
<img alt="/auditlog/static/description/autovacuum.png" src="/auditlog/static/description/autovacuum.png" />
</div>
<div class="section" id="known-issues-roadmap">
<h1><a class="toc-backref" href="#id2">Known issues / Roadmap</a></h1>
<blockquote>
<ul class="simple">
<li>log only operations triggered by some users (currently it logs all users)</li>
<li>log read operations does not work on all data models, need investigation</li>
</ul>
</blockquote>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#id3">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/server-tools/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 smashing it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/server-tools/issues/new?body=module:%20auditlog%0Aversion:%2012.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="#id4">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#id5">Authors</a></h2>
<ul class="simple">
<li>ABF OSIELL</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#id6">Contributors</a></h2>
<ul class="simple">
<li>Sebastien Alix &lt;<a class="reference external" href="mailto:sebastien.alix&#64;camptocamp.com">sebastien.alix&#64;camptocamp.com</a>&gt;</li>
<li>Holger Brunn &lt;<a class="reference external" href="mailto:hbrunn&#64;therp.nl">hbrunn&#64;therp.nl</a>&gt;</li>
<li>Holden Rehg &lt;<a class="reference external" href="mailto:holdenrehg&#64;gmail.com">holdenrehg&#64;gmail.com</a>&gt;</li>
</ul>
</div>
<div class="section" id="other-credits">
<h2><a class="toc-backref" href="#id7">Other credits</a></h2>
<ul class="simple">
<li>Icon: built with different icons from the <a class="reference external" href="https://en.wikipedia.org/wiki/Oxygen_Project">Oxygen theme</a> (LGPL)</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#id8">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/server-tools/tree/12.0/auditlog">OCA/server-tools</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

@ -1,9 +1,9 @@
# © 2015 Therp BV <https://therp.nl> # Copyright 2015 Therp BV <https://therp.nl>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo.tests.common import TransactionCase from odoo.tests.common import TransactionCase
class TestAuditlog(object): class AuditlogCommon(object):
def test_LogCreation(self): def test_LogCreation(self):
"""First test, caching some data.""" """First test, caching some data."""
@ -81,7 +81,7 @@ class TestAuditlog(object):
]).ensure_one()) ]).ensure_one())
class TestAuditlogFull(TransactionCase, TestAuditlog): class TestAuditlogFull(TransactionCase, AuditlogCommon):
def setUp(self): def setUp(self):
super(TestAuditlogFull, self).setUp() super(TestAuditlogFull, self).setUp()
@ -101,7 +101,7 @@ class TestAuditlogFull(TransactionCase, TestAuditlog):
super(TestAuditlogFull, self).tearDown() super(TestAuditlogFull, self).tearDown()
class TestAuditlogFast(TransactionCase, TestAuditlog): class TestAuditlogFast(TransactionCase, AuditlogCommon):
def setUp(self): def setUp(self):
super(TestAuditlogFast, self).setUp() super(TestAuditlogFast, self).setUp()

View File

@ -1,4 +1,4 @@
# © 2016 ABF OSIELL <https://osiell.com> # Copyright 2016 ABF OSIELL <https://osiell.com>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
import time import time