Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion tracking_manager/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Tracking Manager
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:6c896338ee53318978abf97b77d0ed909ea385ea96003de5630c67ecc459521b
!! source digest: sha256:21c9f7146785f3f48b472fed05f2ebd5e6d330b421bbb454300c3dfde16b0359
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
Expand Down
2 changes: 1 addition & 1 deletion tracking_manager/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"name": "Tracking Manager",
"summary": """This module tracks all fields of a model,
including one2many and many2many ones.""",
"version": "14.0.1.0.2",
"version": "14.0.1.3.0",
"category": "Tools",
"website": "https://github.com/OCA/server-tools",
"author": "Akretion, Odoo Community Association (OCA)",
Expand Down
230 changes: 230 additions & 0 deletions tracking_manager/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,230 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * tracking_manager
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-04-20 16:39+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: tracking_manager
#: model_terms:ir.ui.view,arch_db:tracking_manager.track_o2m_m2m_template
msgid "<b>Change :</b>"
msgstr "<b>Cambio :</b>"

#. module: tracking_manager
#: model_terms:ir.ui.view,arch_db:tracking_manager.track_o2m_m2m_template
msgid "<b>Delete :</b>"
msgstr "<b>Eliminar:</b>"

#. module: tracking_manager
#: model_terms:ir.ui.view,arch_db:tracking_manager.track_o2m_m2m_template
msgid "<b>New :</b>"
msgstr "<b> Nuevo: </b>"

#. module: tracking_manager
#: model_terms:ir.ui.view,arch_db:tracking_manager.view_model_form
msgid "Active"
msgstr "Activo"

#. module: tracking_manager
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model__active_custom_tracking
msgid "Active Custom Tracking"
msgstr "Seguimiento Personalizado Activo"

#. module: tracking_manager
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model__assigned_attachment_ids
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model_fields__assigned_attachment_ids
#: model:ir.model.fields,field_description:tracking_manager.field_mail_thread__assigned_attachment_ids
#: model:ir.model.fields,field_description:tracking_manager.field_mail_tracking_value__assigned_attachment_ids
msgid "Assigned Attachments"
msgstr "Archivos Adjuntos Asignados"

#. module: tracking_manager
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model__automatic_custom_tracking
msgid "Automatic Custom Tracking"
msgstr "Seguimiento Automático Personalizado"

#. module: tracking_manager
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model__automatic_custom_tracking_domain
msgid "Automatic Custom Tracking Domain"
msgstr "Dominio de Seguimiento Automático Personalizado"

#. module: tracking_manager
#: model_terms:ir.ui.view,arch_db:tracking_manager.view_model_form
msgid "Automatic configuration"
msgstr "Configuración automática"

#. module: tracking_manager
#: model:ir.model,name:tracking_manager.model_base
msgid "Base"
msgstr "Base"

#. module: tracking_manager
#: model_terms:ir.ui.view,arch_db:tracking_manager.track_o2m_m2m_template
msgid "Changed"
msgstr "Cambiado"

#. module: tracking_manager
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model__changeset_change_ids
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model_fields__changeset_change_ids
#: model:ir.model.fields,field_description:tracking_manager.field_mail_thread__changeset_change_ids
#: model:ir.model.fields,field_description:tracking_manager.field_mail_tracking_value__changeset_change_ids
msgid "Changeset Changes"
msgstr "Cambios en el Conjunto de Modificaciones"

#. module: tracking_manager
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model__changeset_ids
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model_fields__changeset_ids
#: model:ir.model.fields,field_description:tracking_manager.field_mail_thread__changeset_ids
#: model:ir.model.fields,field_description:tracking_manager.field_mail_tracking_value__changeset_ids
msgid "Changesets"
msgstr "Conjuntos de Cambios"

#. module: tracking_manager
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model__count_pending_changeset_changes
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model_fields__count_pending_changeset_changes
#: model:ir.model.fields,field_description:tracking_manager.field_mail_thread__count_pending_changeset_changes
#: model:ir.model.fields,field_description:tracking_manager.field_mail_tracking_value__count_pending_changeset_changes
msgid "Count Pending Changeset Changes"
msgstr "Recuento de Cambios Pendientes"

#. module: tracking_manager
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model__count_pending_changesets
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model_fields__count_pending_changesets
#: model:ir.model.fields,field_description:tracking_manager.field_mail_thread__count_pending_changesets
#: model:ir.model.fields,field_description:tracking_manager.field_mail_tracking_value__count_pending_changesets
msgid "Count Pending Changesets"
msgstr "Recuento de Cambios Pendientes"

#. module: tracking_manager
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model_fields__custom_tracking
#: model_terms:ir.ui.view,arch_db:tracking_manager.view_model_form
msgid "Custom Tracking"
msgstr "Seguimiento Personalizado"

#. module: tracking_manager
#: model_terms:ir.ui.view,arch_db:tracking_manager.view_model_track_fields_search
msgid "Custom Tracking OFF"
msgstr "Seguimiento Personalizado OFF"

#. module: tracking_manager
#: model_terms:ir.ui.view,arch_db:tracking_manager.view_model_track_fields_search
msgid "Custom Tracking ON"
msgstr "Seguimiento Personalizado ON"

#. module: tracking_manager
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model__display_name
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model_fields__display_name
#: model:ir.model.fields,field_description:tracking_manager.field_mail_thread__display_name
#: model:ir.model.fields,field_description:tracking_manager.field_mail_tracking_value__display_name
msgid "Display Name"
msgstr "Nombre para Mostrar"

#. module: tracking_manager
#: model_terms:ir.ui.view,arch_db:tracking_manager.view_model_form
msgid "Domain"
msgstr "Dominio"

#. module: tracking_manager
#: model:ir.model,name:tracking_manager.model_mail_thread
msgid "Email Thread"
msgstr "Hilo de Correo Electrónico"

#. module: tracking_manager
#: model:ir.model,name:tracking_manager.model_ir_model_fields
msgid "Fields"
msgstr "Campos"

#. module: tracking_manager
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model__id
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model_fields__id
#: model:ir.model.fields,field_description:tracking_manager.field_mail_thread__id
#: model:ir.model.fields,field_description:tracking_manager.field_mail_tracking_value__id
msgid "ID"
msgstr "ID (identificación)"

#. module: tracking_manager
#: model:ir.model.fields,help:tracking_manager.field_ir_model__automatic_custom_tracking
msgid "If tick new field will be automatically tracked if the domain match"
msgstr ""
"Si se marca el nuevo campo se rastreará automáticamente si el dominio "
"coincide"

#. module: tracking_manager
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model____last_update
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model_fields____last_update
#: model:ir.model.fields,field_description:tracking_manager.field_mail_thread____last_update
#: model:ir.model.fields,field_description:tracking_manager.field_mail_tracking_value____last_update
msgid "Last Modified on"
msgstr "Última Modificación el"

#. module: tracking_manager
#: model:ir.model,name:tracking_manager.model_mail_tracking_value
msgid "Mail Tracking Value"
msgstr "Valor de Seguimiento del Correo"

#. module: tracking_manager
#: model:ir.model,name:tracking_manager.model_ir_model
msgid "Models"
msgstr "Modelos"

#. module: tracking_manager
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model_fields__native_tracking
msgid "Native Tracking"
msgstr "Seguimiento Nativo"

#. module: tracking_manager
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model__smart_search
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model_fields__smart_search
#: model:ir.model.fields,field_description:tracking_manager.field_mail_thread__smart_search
#: model:ir.model.fields,field_description:tracking_manager.field_mail_tracking_value__smart_search
msgid "Smart Search"
msgstr "Búsqueda Inteligente"

#. module: tracking_manager
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model_fields__trackable
msgid "Trackable"
msgstr "Rastreable"

#. module: tracking_manager
#: model:ir.actions.act_window,name:tracking_manager.ir_model_fields_action
msgid "Trackable Fields"
msgstr "Campos Rastreables"

#. module: tracking_manager
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model__tracked_field_count
msgid "Tracked Field Count"
msgstr "Recuento de Campos Rastreados"

#. module: tracking_manager
#: model_terms:ir.ui.view,arch_db:tracking_manager.view_model_form
msgid "Tracked Fields"
msgstr "Campos Rastreados"

#. module: tracking_manager
#: model_terms:ir.ui.view,arch_db:tracking_manager.view_model_form
msgid "Update"
msgstr "Actualizar"

#. module: tracking_manager
#: model_terms:ir.ui.view,arch_db:tracking_manager.view_model_form
msgid "Update fields configuration"
msgstr "Actualizar configuración de campos"

#. module: tracking_manager
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model__user_can_see_changeset
#: model:ir.model.fields,field_description:tracking_manager.field_ir_model_fields__user_can_see_changeset
#: model:ir.model.fields,field_description:tracking_manager.field_mail_thread__user_can_see_changeset
#: model:ir.model.fields,field_description:tracking_manager.field_mail_tracking_value__user_can_see_changeset
msgid "User Can See Changeset"
msgstr "Usuario Puede ver Conjunto de Cambios"
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/usr/bin/python3
# pylint: disable=print-used


def migrate(cr, version):
cr.execute(
"""
UPDATE ir_model_fields
SET custom_tracking=False
WHERE trackable=False
"""
)
21 changes: 21 additions & 0 deletions tracking_manager/migrations/14.0.1.1.1/post-migration.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from openupgradelib import openupgrade


@openupgrade.migrate()
def migrate(env, version):

openupgrade.logged_query(
env.cr,
"""
UPDATE ir_model_fields SET trackable = false;
UPDATE ir_model_fields SET trackable = true
WHERE name NOT IN (
'activity_ids',
'message_ids',
'message_last_post',
'message_main_attachment',
'message_main_attachement_id'
)
AND store AND related IS NULL;
""",
)
40 changes: 24 additions & 16 deletions tracking_manager/models/ir_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,21 +100,27 @@ def _compute_automatic_custom_tracking(self):
def _default_automatic_custom_tracking_domain_rules(self):
return {
"product.product": [
("readonly", "=", False),
"|",
("ttype", "!=", "one2many"),
("name", "in", ["barcode_ids"]),
],
"sale.order": [
("readonly", "=", False),
"|",
("ttype", "!=", "one2many"),
("name", "in", ["order_line"]),
],
"account.move": [
("readonly", "=", False),
"|",
("ttype", "!=", "one2many"),
("name", "in", ["invoice_line_ids"]),
],
"default_automatic_rule": [("ttype", "!=", "one2many")],
"default_automatic_rule": [
("ttype", "!=", "one2many"),
("readonly", "=", False),
],
}

@api.depends("automatic_custom_tracking")
Expand Down Expand Up @@ -162,12 +168,12 @@ class IrModelFields(models.Model):
store=True,
)

@api.depends("native_tracking")
@api.depends("native_tracking", "trackable")
def _compute_custom_tracking(self):
for record in self:
if record.model_id.automatic_custom_tracking:
domain = literal_eval(record.model_id.automatic_custom_tracking_domain)
record.custom_tracking = bool(record.filtered_domain(domain))
record.custom_tracking = record.filtered_domain(domain).trackable
else:
record.custom_tracking = record.native_tracking

Expand All @@ -176,22 +182,24 @@ def _compute_native_tracking(self):
for record in self:
record.native_tracking = bool(record.tracking)

@api.depends("readonly", "related", "store")
def _get_trackable_blacklist_models(self):
return [
"mail.activity.mixin",
"mail.alias.mixin",
"mail.render.mixin",
"mail.thread",
"mail.thread.blacklist",
"mail.thread.cc",
]

@api.depends("related")
def _compute_trackable(self):
blacklists = [
"activity_ids",
"message_ids",
"message_last_post",
"message_main_attachment",
"message_main_attachement_id",
blacklisted_models = self._get_trackable_blacklist_models()
blacklisted_fields = [
fname for model in blacklisted_models for fname in self.env[model]._fields
]
for rec in self:
rec.trackable = (
rec.name not in blacklists
and rec.store
and not rec.readonly
and not rec.related
)
rec.trackable = rec.name not in blacklisted_fields and not rec.related

def write(self, vals):
custom_tracking = None
Expand Down
Loading
Loading