Skip to content
Open
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
1 change: 1 addition & 0 deletions maintenance_request_tags/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Adds tags to Maintenance Requests
1 change: 1 addition & 0 deletions maintenance_request_tags/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
21 changes: 21 additions & 0 deletions maintenance_request_tags/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright 2019 Creu Blanca
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
"name": "Maintenance Request Tags",
"summary": """
Adds tags to Maintenance Requests""",
"version": "14.0.1.0.0",
"license": "AGPL-3",
"author": "CreuBlanca,Odoo Community Association (OCA)",
"website": "https://github.com/tegin/cb-maintenance",
"depends": ["maintenance_plan", "maintenance_team_hierarchy"],
"data": [
"security/ir.model.access.csv",
"views/maintenance_equipment.xml",
"views/maintenance_plan.xml",
"views/maintenance_request_tag.xml",
"views/maintenance_request.xml",
"views/maintenance_team.xml",
],
}
116 changes: 116 additions & 0 deletions maintenance_request_tags/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * maintenance_request_tags
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-12-12 11:47+0000\n"
"PO-Revision-Date: 2019-12-12 12:50+0100\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: \n"
"Language: es\n"
"X-Generator: Poedit 2.0.6\n"

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_color
msgid "Color Index (0-15)"
msgstr "Número del Color (0-15)"

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_create_uid
msgid "Created by"
msgstr "Creado por"

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_create_date
msgid "Created on"
msgstr "Creado en"

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_display_name
msgid "Display Name"
msgstr "Nombre mostrado"

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_id
msgid "ID"
msgstr "ID (identificación)"

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag___last_update
msgid "Last Modified on"
msgstr "Última modificación en"

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_write_uid
msgid "Last Updated by"
msgstr "Última actualización de"

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_write_date
msgid "Last Updated on"
msgstr "Última actualización en"

#. module: maintenance_request_tags
#: model:ir.model,name:maintenance_request_tags.model_maintenance_request_tag
msgid "Maintenance Request Tag"
msgstr "Etiqueta de Peticiones"

#. module: maintenance_request_tags
#: model:ir.actions.act_window,name:maintenance_request_tags.maintenance_request_tag_act_window
#: model:ir.ui.menu,name:maintenance_request_tags.maintenance_request_tag_menu
msgid "Maintenance Request Tags"
msgstr "Etiquetas de Peticiones"

#. module: maintenance_request_tags
#: model:ir.model,name:maintenance_request_tags.model_maintenance_request
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_request_ids
msgid "Maintenance Requests"
msgstr "Peticiones de mantenimiento"

#. module: maintenance_request_tags
#: model:ir.model,name:maintenance_request_tags.model_maintenance_team
msgid "Maintenance Teams"
msgstr "Equipos de mantenimiento"

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_name
msgid "Request Tag"
msgstr "Etiqueta de Peticiones"

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_selectable_tags_ids
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_team_selectable_tags_ids
msgid "Selectable Tags"
msgstr "Etiquetas Seleccionables"

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_selectable_team_count
msgid "Selectable Team Count"
msgstr "Número de Etiquetas Seleccionables"

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_selectable_team_ids
msgid "Selectable Teams"
msgstr "Equipos"

#. module: maintenance_request_tags
#: sql_constraint:maintenance.request.tag:0
msgid "Tag name already exists !"
msgstr "Esta etiqueta ya existe!"

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_ids
msgid "Tags"
msgstr "Etiquetas"

#. module: maintenance_request_tags
#: model:ir.ui.view,arch_db:maintenance_request_tags.hr_equipment_request_view_form
msgid "e.g. Computers"
msgstr "p.e Ordenadores"
115 changes: 115 additions & 0 deletions maintenance_request_tags/i18n/maintenance_request_tags.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * maintenance_request_tags
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-12-12 11:46+0000\n"
"PO-Revision-Date: 2019-12-12 11:46+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_color
msgid "Color Index (0-15)"
msgstr ""

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_create_uid
msgid "Created by"
msgstr ""

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_create_date
msgid "Created on"
msgstr ""

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_display_name
msgid "Display Name"
msgstr ""

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_id
msgid "ID"
msgstr ""

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag___last_update
msgid "Last Modified on"
msgstr ""

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_write_uid
msgid "Last Updated by"
msgstr ""

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_write_date
msgid "Last Updated on"
msgstr ""

#. module: maintenance_request_tags
#: model:ir.model,name:maintenance_request_tags.model_maintenance_request_tag
msgid "Maintenance Request Tag"
msgstr ""

#. module: maintenance_request_tags
#: model:ir.actions.act_window,name:maintenance_request_tags.maintenance_request_tag_act_window
#: model:ir.ui.menu,name:maintenance_request_tags.maintenance_request_tag_menu
msgid "Maintenance Request Tags"
msgstr ""

#. module: maintenance_request_tags
#: model:ir.model,name:maintenance_request_tags.model_maintenance_request
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_request_ids
msgid "Maintenance Requests"
msgstr ""

#. module: maintenance_request_tags
#: model:ir.model,name:maintenance_request_tags.model_maintenance_team
msgid "Maintenance Teams"
msgstr ""

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_name
msgid "Request Tag"
msgstr ""

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_selectable_tags_ids
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_team_selectable_tags_ids
msgid "Selectable Tags"
msgstr ""

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_selectable_team_count
msgid "Selectable Team Count"
msgstr ""

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_selectable_team_ids
msgid "Selectable Teams"
msgstr ""

#. module: maintenance_request_tags
#: sql_constraint:maintenance.request.tag:0
msgid "Tag name already exists !"
msgstr ""

#. module: maintenance_request_tags
#: model:ir.model.fields,field_description:maintenance_request_tags.field_maintenance_request_tag_ids
msgid "Tags"
msgstr ""

#. module: maintenance_request_tags
#: model:ir.ui.view,arch_db:maintenance_request_tags.hr_equipment_request_view_form
msgid "e.g. Computers"
msgstr ""

5 changes: 5 additions & 0 deletions maintenance_request_tags/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from . import maintenance_team
from . import maintenance_request
from . import maintenance_request_tag
from . import maintenance_plan
from . import maintenance_equipment
16 changes: 16 additions & 0 deletions maintenance_request_tags/models/maintenance_equipment.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Copyright 2020 Creu Blanca
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import models


class MaintenanceEquipment(models.Model):

_inherit = "maintenance.equipment"

def _prepare_request_from_plan(self, maintenance_plan, next_maintenance_date):
res = super()._prepare_request_from_plan(
maintenance_plan, next_maintenance_date
)
res.update({"tag_ids": [(6, 0, maintenance_plan.tag_ids.ids)]})
return res
11 changes: 11 additions & 0 deletions maintenance_request_tags/models/maintenance_plan.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Copyright 2020 Creu Blanca
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import fields, models


class MaintenancePlan(models.Model):

_inherit = "maintenance.plan"

tag_ids = fields.Many2many("maintenance.request.tag", string="Tags")
35 changes: 35 additions & 0 deletions maintenance_request_tags/models/maintenance_request.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Copyright 2019 Creu Blanca
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import api, fields, models


class MaintenanceRequest(models.Model):

_inherit = "maintenance.request"

selectable_tags_ids = fields.Many2many(
"maintenance.request.tag",
compute="_compute_selectable_tags_ids",
readonly=True,
)

tag_ids = fields.Many2many(
"maintenance.request.tag",
"request_tag_rel",
"request_id",
"tag_id",
string="Tags",
)

@api.depends("maintenance_team_id")
def _compute_selectable_tags_ids(self):
for record in self:
record.selectable_tags_ids = [
(6, 0, record.maintenance_team_id.selectable_tags_ids.ids)
]
team_id = record.maintenance_team_id
while team_id.parent_id:
team_id = team_id.parent_id
tags = [(4, tag) for tag in team_id.selectable_tags_ids.ids]
record.selectable_tags_ids = tags
37 changes: 37 additions & 0 deletions maintenance_request_tags/models/maintenance_request_tag.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Copyright 2019 Creu Blanca
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from random import randint

from odoo import api, fields, models


class MaintenanceRequestTag(models.Model):

_name = "maintenance.request.tag"
_description = "Maintenance Request Tag"

name = fields.Char(string="Request Tag", required=True)
color = fields.Integer(string="Color Index (0-15)", default=randint(1, 15))
request_ids = fields.Many2many(
"maintenance.request",
"request_tag_rel",
"tag_id",
"request_id",
string="Maintenance Requests",
)

selectable_team_ids = fields.Many2many(
"maintenance.team", string="Selectable Teams"
)

selectable_team_count = fields.Integer(
compute="_compute_selectable_team_count", store=True, readonly=True
)

@api.depends("selectable_team_ids")
def _compute_selectable_team_count(self):
for record in self:
record.selectable_team_count = len(record.selectable_team_ids)

_sql_constraints = [("name_uniq", "unique (name)", "Tag name already exists !")]
13 changes: 13 additions & 0 deletions maintenance_request_tags/models/maintenance_team.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Copyright 2019 Creu Blanca
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import fields, models


class MaintenanceTeam(models.Model):

_inherit = "maintenance.team"

selectable_tags_ids = fields.Many2many(
"maintenance.request.tag", string="Selectable Tags"
)
3 changes: 3 additions & 0 deletions maintenance_request_tags/security/ir.model.access.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_maintenance_request_tag,access_maintenance_request_tag,model_maintenance_request_tag,base.group_user,1,0,0,0
access_maintenance_request_tag_admin,access_maintenance_request_tag_admin,model_maintenance_request_tag,maintenance.group_equipment_manager,1,1,1,1
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions maintenance_request_tags/tests/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import test_request_tags
Loading