diff --git a/.isort.cfg b/.isort.cfg index 5751c40dd2..9980fa124e 100644 --- a/.isort.cfg +++ b/.isort.cfg @@ -9,4 +9,4 @@ line_length=88 known_odoo=odoo known_odoo_addons=odoo.addons sections=FUTURE,STDLIB,THIRDPARTY,ODOO,ODOO_ADDONS,FIRSTPARTY,LOCALFOLDER -known_third_party= +known_third_party=openerp,werkzeug diff --git a/helpdesk_mgmt/README.rst b/helpdesk_mgmt/README.rst new file mode 100644 index 0000000000..ae7a761002 --- /dev/null +++ b/helpdesk_mgmt/README.rst @@ -0,0 +1,219 @@ +=================== +Helpdesk Management +=================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png + :target: https://odoo-community.org/page/development-status + :alt: Alpha +.. |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%2Fhelpdesk-lightgray.png?logo=github + :target: https://github.com/OCA/helpdesk/tree/12.0/helpdesk_mgmt + :alt: OCA/helpdesk +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/helpdesk-12-0/helpdesk-12-0-helpdesk_mgmt + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/282/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module adds Helpdesk functionality in Odoo. + +.. IMPORTANT:: + This is an alpha version, the data model and design can change at any time without warning. + Only for development or testing purpose, do not use in production. + `More details on development status `_ + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +To configure this module, you need to: +#. Edit or create new channels. +#. Edit or create new categories. +#. Edit or create new stages. +#. Edit or create new teams. +#. Edit or create new tags. + +Channels +~~~~~~~~ + +#. Go to *Helpdesk > Configuration > Channels* to edit or create new channels. +#. Edit or create a channel. +#. Set the name for the channel. +#. You can also Activate or Deactivate channels. + +.. figure:: https://raw.githubusercontent.com/OCA/helpdesk/12.0/helpdesk_mgmt/static/description/Channels.PNG + :alt: Channels + :width: 600 px + +Categories +~~~~~~~~~~ + +#. Go to *Helpdesk > Configuration > Categories* to edit or create new categories. +#. Edit or create a new category. +#. Set the name for the category. +#. You can also Activate or Deactivate categories. + +.. figure:: https://raw.githubusercontent.com/OCA/helpdesk/12.0/helpdesk_mgmt/static/description/Categories.PNG + :alt: Categories + :width: 600 px + +Stages +~~~~~~ + +#. Go to *Helpdesk > Configuration > Stages* to edit or create new stages. +#. Edit or create a new stage. +#. Set the name for the stage. +#. Set the sequence order for the stage. +#. You can select an Email template. +#. Mark the Unattended checkbox if the stage contains unattended tickets. +#. Mark the Closed checkbox if the stage contains closed tickets. +#. You can add a description for the stage. +#. You can also Activate or Deactivate stages. + +.. figure:: https://raw.githubusercontent.com/OCA/helpdesk/12.0/helpdesk_mgmt/static/description/Stages.PNG + :alt: Stages + :width: 600 px + +You can also sort the stage sequence if you move up or down the stages in the list view. + +Teams +~~~~~ + +#. Go to *Helpdesk > Configuration > Teams* to edit or create new teams. +#. Edit or create a new team. +#. Set the name for the team. +#. Add the teams members. +#. You can also Activate or Deactivate teams. + +.. figure:: https://raw.githubusercontent.com/OCA/helpdesk/12.0/helpdesk_mgmt/static/description/Teams.PNG + :alt: Teams + :width: 600 px + +Tags +~~~~ + +#. Go to *Helpdesk > Configuration > Ticket Tags* to edit or create new tags. +#. Edit or create a new tag. +#. Set the name for the tag. +#. Set the color index for the tag. +#. You can also Activate or Deactivate tags. + +.. figure:: https://raw.githubusercontent.com/OCA/helpdesk/12.0/helpdesk_mgmt/static/description/Tags.PNG + :alt: Ticket Tags + :width: 600 px + +Usage +===== + +#. Go to *Helpdesk* or *Helpdesk > Dashboard* to see the tickets dashboard +#. In the Kanban view, click in the kanban card of a team to see their tickets and create new ones. + +.. figure:: https://raw.githubusercontent.com/OCA/helpdesk/12.0/helpdesk_mgmt/static/description/Tickets_Kanban.PNG + :alt: Kanban view + :width: 600 px + +To create a new ticket from the kanban view: + +#. Press *Create* button or click on the plus icon at the top of the column of a stage. +#. Set the name or subject for the ticket. +#. Select the team that will manage the ticket. +#. You can select a user to assign the ticket. +#. Set the priority of the ticket. +#. Select the partner, and you can also set the partner name and email. +#. You can select a category and set tags for the ticket. +#. Add a description. +#. You can also attach files to the ticket. + +.. figure:: https://raw.githubusercontent.com/OCA/helpdesk/12.0/helpdesk_mgmt/static/description/Tickets01.PNG + :alt: Create a new ticket + :width: 600 px + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* AdaptiveCity +* C2i Change 2 Improve +* Domatix +* Factor Libre +* SDi Soluciones + +Contributors +~~~~~~~~~~~~ + +* `Domatix `_: + + * Carlos Martínez + * Catalin Airimitoaie + * Álvaro López + * Samuel Calvo + +* `Adaptive City `_: + + * Aitor Bouzas + +* `SDi Soluciones, S.L. `_: + + * Oscar Soto + * Jorge Luis Quinteros + +* `C2i Change 2 improve `_: + + * Eduardo Magdalena + +* `Factor Libre `_: + + * María Alhambra + * Daniel Cano + +* `Tecnativa `_: + + * Pedro M. Baeza + +* `ID42 Sistemas `_: + + * Marcel Savegnago + * Eduardo Aparício + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/helpdesk `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/helpdesk_mgmt/__init__.py b/helpdesk_mgmt/__init__.py new file mode 100644 index 0000000000..4e39a542f6 --- /dev/null +++ b/helpdesk_mgmt/__init__.py @@ -0,0 +1,3 @@ +from . import controllers +from . import models +from . import tests diff --git a/helpdesk_mgmt/__manifest__.py b/helpdesk_mgmt/__manifest__.py new file mode 100644 index 0000000000..827953fc07 --- /dev/null +++ b/helpdesk_mgmt/__manifest__.py @@ -0,0 +1,37 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Helpdesk Management", + "summary": """ + Helpdesk""", + "version": "13.0.1.0.0", + "license": "AGPL-3", + "category": "After-Sales", + "author": "AdaptiveCity, " + "C2i Change 2 Improve, " + "Domatix, " + "Factor Libre, " + "SDi Soluciones, " + "Odoo Community Association (OCA)", + "website": "https://github.com/OCA/helpdesk", + "depends": ["mail", "portal"], + "data": [ + "data/helpdesk_data.xml", + "security/helpdesk_security.xml", + "security/ir.model.access.csv", + "views/res_partner_view.xml", + "views/helpdesk_ticket_templates.xml", + "views/helpdesk_ticket_menu.xml", + "views/helpdesk_ticket_team_view.xml", + "views/helpdesk_ticket_stage_view.xml", + "views/helpdesk_ticket_category_view.xml", + "views/helpdesk_ticket_channel_view.xml", + "views/helpdesk_ticket_tag_view.xml", + "views/helpdesk_ticket_view.xml", + "views/helpdesk_dashboard_view.xml", + ], + "demo": ["demo/helpdesk_demo.xml"], + "development_status": "Alpha", + "application": True, + "installable": True, +} diff --git a/helpdesk_mgmt/controllers/__init__.py b/helpdesk_mgmt/controllers/__init__.py new file mode 100644 index 0000000000..69884d3bb0 --- /dev/null +++ b/helpdesk_mgmt/controllers/__init__.py @@ -0,0 +1,2 @@ +from . import main +from . import myaccount diff --git a/helpdesk_mgmt/controllers/main.py b/helpdesk_mgmt/controllers/main.py new file mode 100644 index 0000000000..adedf619c2 --- /dev/null +++ b/helpdesk_mgmt/controllers/main.py @@ -0,0 +1,74 @@ +import logging +import werkzeug +import odoo.http as http +import base64 +from odoo.http import request +_logger = logging.getLogger(__name__) + + +class HelpdeskTicketController(http.Controller): + @http.route("/ticket/close", type="http", auth="user") + def support_ticket_close(self, **kw): + """Close the support ticket""" + values = {} + for field_name, field_value in kw.items(): + if field_name.endswith("_id"): + values[field_name] = int(field_value) + else: + values[field_name] = field_value + ticket = ( + http.request.env["helpdesk.ticket"] + .with_user() + .search([("id", "=", values["ticket_id"])]) + ) + ticket.stage_id = values.get("stage_id") + + return werkzeug.utils.redirect("/my/ticket/" + str(ticket.id)) + + @http.route("/new/ticket", type="http", auth="user", website=True) + def create_new_ticket(self, **kw): + categories = http.request.env["helpdesk.ticket.category"].search( + [("active", "=", True)] + ) + email = http.request.env.user.email + name = http.request.env.user.name + return http.request.render( + "helpdesk_mgmt.portal_create_ticket", + {"categories": categories, "email": email, "name": name}, + ) + + @http.route("/submitted/ticket", type="http", auth="user", website=True, csrf=True) + def submit_ticket(self, **kw): + vals = { + "partner_name": kw.get("name"), + "company_id": http.request.env.user.company_id.id, + "category_id": kw.get("category"), + "partner_email": kw.get("email"), + "description": kw.get("description"), + "name": kw.get("subject"), + "attachment_ids": False, + "channel_id": request.env["helpdesk.ticket.channel"] + .with_user() + .search([("name", "=", "Web")]) + .id, + "partner_id": request.env["res.partner"] + .with_user() + .search([("name", "=", kw.get("name")), ("email", "=", kw.get("email"))]) + .id, + } + new_ticket = request.env["helpdesk.ticket"].with_user().create(vals) + new_ticket.message_subscribe(partner_ids=request.env.user.partner_id.ids) + if kw.get("attachment"): + for c_file in request.httprequest.files.getlist("attachment"): + data = c_file.read() + if c_file.filename: + request.env["ir.attachment"].with_user().create( + { + "name": c_file.filename, + "datas": base64.b64encode(data), + "datas_fname": c_file.filename, + "res_model": "helpdesk.ticket", + "res_id": new_ticket.id, + } + ) + return werkzeug.utils.redirect("/my/tickets") diff --git a/helpdesk_mgmt/controllers/myaccount.py b/helpdesk_mgmt/controllers/myaccount.py new file mode 100644 index 0000000000..efdeee0b6d --- /dev/null +++ b/helpdesk_mgmt/controllers/myaccount.py @@ -0,0 +1,129 @@ +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). + +from odoo import _, http +from odoo.exceptions import AccessError +from odoo.http import request + +from odoo.addons.portal.controllers.portal import CustomerPortal, pager as portal_pager + + +class CustomerPortal(CustomerPortal): + def _prepare_portal_layout_values(self): + values = super(CustomerPortal, self)._prepare_portal_layout_values() + partner = request.env.user.partner_id + ticket_count = request.env["helpdesk.ticket"].search_count( + [("partner_id", "child_of", partner.id)] + ) + values["ticket_count"] = ticket_count + return values + + def _helpdesk_ticket_check_access(self, ticket_id): + ticket = request.env["helpdesk.ticket"].browse([ticket_id]) + ticket_sudo = ticket.with_user() + try: + ticket.check_access_rights("read") + ticket.check_access_rule("read") + except AccessError: + raise + return ticket_sudo + + @http.route( + ["/my/tickets", "/my/tickets/page/"], + type="http", + auth="user", + website=True, + ) + def portal_my_tickets( + self, page=1, date_begin=None, date_end=None, sortby=None, filterby=None, **kw + ): + values = self._prepare_portal_layout_values() + HelpdesTicket = request.env["helpdesk.ticket"] + partner = request.env.user.partner_id + domain = [("partner_id", "child_of", partner.id)] + + searchbar_sortings = { + "date": {"label": _("Newest"), "order": "create_date desc"}, + "name": {"label": _("Name"), "order": "name"}, + "stage": {"label": _("Stage"), "order": "stage_id"}, + "update": { + "label": _("Last Stage Update"), + "order": "last_stage_update desc", + }, + } + searchbar_filters = {"all": {"label": _("All"), "domain": []}} + for stage in request.env["helpdesk.ticket.stage"].search([]): + searchbar_filters.update( + { + str(stage.id): { + "label": stage.name, + "domain": [("stage_id", "=", stage.id)], + } + } + ) + + # default sort by order + if not sortby: + sortby = "date" + order = searchbar_sortings[sortby]["order"] + + # default filter by value + if not filterby: + filterby = "all" + domain += searchbar_filters[filterby]["domain"] + + # count for pager + ticket_count = HelpdesTicket.search_count(domain) + # pager + pager = portal_pager( + url="/my/tickets", + url_args={}, + total=ticket_count, + page=page, + step=self._items_per_page, + ) + # content according to pager and archive selected + tickets = HelpdesTicket.search( + domain, order=order, limit=self._items_per_page, offset=pager["offset"] + ) + values.update( + { + "date": date_begin, + "tickets": tickets, + "page_name": "ticket", + "pager": pager, + "default_url": "/my/tickets", + "searchbar_sortings": searchbar_sortings, + "sortby": sortby, + "searchbar_filters": searchbar_filters, + "filterby": filterby, + } + ) + return request.render("helpdesk_mgmt.portal_my_tickets", values) + + @http.route(["/my/ticket/"], type="http", website=True) + def portal_my_ticket(self, ticket_id=None, **kw): + try: + ticket_sudo = self._helpdesk_ticket_check_access(ticket_id) + except AccessError: + return request.redirect("/my") + values = self._ticket_get_page_view_values(ticket_sudo, **kw) + return request.render("helpdesk_mgmt.portal_helpdesk_ticket_page", values) + + def _ticket_get_page_view_values(self, ticket, **kwargs): + closed_stages = request.env["helpdesk.ticket.stage"].search( + [("closed", "=", True)] + ) + values = { + "page_name": "ticket", + "ticket": ticket, + "closed_stages": closed_stages, + } + + if kwargs.get("error"): + values["error"] = kwargs["error"] + if kwargs.get("warning"): + values["warning"] = kwargs["warning"] + if kwargs.get("success"): + values["success"] = kwargs["success"] + + return values diff --git a/helpdesk_mgmt/data/helpdesk_data.xml b/helpdesk_mgmt/data/helpdesk_data.xml new file mode 100644 index 0000000000..24d3260e0a --- /dev/null +++ b/helpdesk_mgmt/data/helpdesk_data.xml @@ -0,0 +1,223 @@ + + + + + Helpdesk + Helps you handle your helpdesk security. + 9 + + + + + + Ticket Assignment + + ${object.company_id.partner_id.email} + ${object.company_id.name} Ticket Assignment (Ref ${object.number or 'n/a' }) + ${object.partner_id.id} + + ${object.partner_id.lang} + +

Hello ${object.user_id.name},

+

The ticket ${object.number} has been assigned to you.

+
+
+ + + Helpdesk Closed Ticket Notification Email + + ${object.company_id.partner_id.email} + The ticket ${object.number} has been closed. + ${object.partner_id.id} + + ${object.partner_id.lang} + + + + + + + + + + + + + + + + + + +
+ + + + +
+ ${object.company_id.name} +
+
+ + + + +
+

Hello ${object.user_id.name},

+

The ticket ${object.number} has been closed.

+
+
+ + + + + + +
+ ${object.company_id.phone} + + ${object.company_id.email} + + ${object.company_id.website} +
+
+ + + ]]>
+
+ + + Helpdesk Changed Stage notification Email + + ${object.company_id.partner_id.email} + The ticket ${object.number} stage has changed. + ${object.partner_id.id} + + ${object.partner_id.lang} + + + + + + + + + + + + + + + + + + +
+ + + + +
+ +
+
+ + + + +
+

Hello ${object.user_id.name},

+

The ticket ${object.number} stage has changed to ${object.stage_id.name}.

+
+
+ + + + + + +
+ ${object.company_id.phone} + + ${object.company_id.email} + + ${object.company_id.website} +
+
+ + + ]]> +
+
+ + + + Helpdesk Ticket Sequence + helpdesk.ticket.sequence + HT + 5 + + + + + 1 + New + True + False + + + + 2 + In Progress + False + False + + + + 3 + Awaiting + False + False + + + + 3 + Done + False + True + True + + + + + 4 + Cancelled + False + True + True + + + + + + Web + + + Email + + + Phone + + + Other + + + + + + + + + +
+
diff --git a/helpdesk_mgmt/demo/helpdesk_demo.xml b/helpdesk_mgmt/demo/helpdesk_demo.xml new file mode 100644 index 0000000000..b58a81a55b --- /dev/null +++ b/helpdesk_mgmt/demo/helpdesk_demo.xml @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/helpdesk_mgmt/i18n/es.po b/helpdesk_mgmt/i18n/es.po new file mode 100644 index 0000000000..937e9eca09 --- /dev/null +++ b/helpdesk_mgmt/i18n/es.po @@ -0,0 +1,1289 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * helpdesk_mgmt +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-06-17 08:43+0000\n" +"PO-Revision-Date: 2019-10-15 10:25+0000\n" +"Last-Translator: Darío Lodeiros \n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.8\n" + +#. module: helpdesk_mgmt +#: model:mail.template,subject:helpdesk_mgmt.assignment_email_template +msgid "" +"${object.company_id.name} Ticket Assignment (Ref ${object.number or 'n/a' })" +msgstr "" +"${object.company_id.name} Ticket Asignado (Ref ${object.name or 'n/a' })" + +#. module: helpdesk_mgmt +#: model:mail.template,body_html:helpdesk_mgmt.assignment_email_template +msgid "" +"\n" +"

Hello ${object.user_id.name},

\n" +"

The ticket ${object.number} has been assigned to you.

\n" +"
" +msgstr "" +"\n" +"

Hola ${object.user_id.name},

\n" +"

Te ha sido asignado el ticket ${object.number}.

\n" +"
" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_helpdesk_ticket_page +msgid "" +"
\n" +" Category:" +msgstr "" +"
\n" +" Categoría:" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_helpdesk_ticket_page +msgid "" +"
\n" +" Stage:" +msgstr "" +"
\n" +" Estado:" + +#. module: helpdesk_mgmt +#: model:mail.template,body_html:helpdesk_mgmt.closed_ticket_template +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" \"${object.company_id.name}\"\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +"
\n" +"

Hello ${object.user_id.name},

\n" +"

The ticket ${object.number} has been " +"closed.

\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" ${object.company_id.phone}\n" +" \n" +" ${object.company_id.email}\n" +" \n" +" ${object.company_id.website}\n" +"
\n" +"
\n" +" \n" +" \n" +" " +msgstr "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" \"${object.company_id.name}\"\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +"
\n" +"

Hola ${object.user_id.name},

\n" +"

El ticket ${object.number} ha sido " +"cerrado.

\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" ${object.company_id.phone}\n" +" \n" +" ${object.company_id.email}\n" +" \n" +" ${object.company_id.website}\n" +"
\n" +"
\n" +" \n" +" \n" +" " + +#. module: helpdesk_mgmt +#: model:mail.template,body_html:helpdesk_mgmt.changed_stage_template +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" \n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +"
\n" +"

Hello ${object.user_id.name},

\n" +"

The ticket ${object.number} stage has " +"changed to ${object.stage_id.name}.

\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" ${object.company_id.phone}\n" +" \n" +" ${object.company_id.email}\n" +" \n" +" ${object.company_id.website}\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" " +msgstr "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" \n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +"
\n" +"

Hola ${object.user_id.name},

\n" +"

El ticket ${object.number} ha cambiado de " +"estado a ${object.stage_id.name}.

\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" ${object.company_id.phone}\n" +" \n" +" ${object.company_id.email}\n" +" \n" +" ${object.company_id.website}\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" " + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_kanban_view +msgid "View" +msgstr "Ver" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_helpdesk_ticket_page +msgid "Date:" +msgstr "Fecha:" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_helpdesk_ticket_page +msgid "Last Stage Update:" +msgstr "Última actualización de estado:" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_needaction +msgid "Action Needed" +msgstr "Necesita acción" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__active +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__active +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__active +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__active +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__active +msgid "Active" +msgstr "Activo" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__activity_ids +msgid "Activities" +msgstr "Actividades" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__activity_state +msgid "Activity State" +msgstr "Estado de actividad" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +msgid "Add Attachments" +msgstr "Añadir Adjuntos" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/controllers/myaccount.py:56 +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_kanban_view +#, python-format +msgid "All" +msgstr "Todos" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_category_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_channel_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_stage_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_tag_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_team_search +msgid "Archived" +msgstr "Archivado" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.ticket_view_form +msgid "Assign to me" +msgstr "Asignar a mi" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__assigned_date +msgid "Assigned Date" +msgstr "Fecha de asignación" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__user_id +msgid "Assigned user" +msgstr "Usuario asignado" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_kanban +msgid "Assigned user image" +msgstr "Imagen del usuario asignado" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_attachment_count +#, fuzzy +#| msgid "Attachments" +msgid "Attachment Count" +msgstr "Adjuntos" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.ticket_view_form +msgid "Attachments" +msgstr "Adjuntos" + +#. module: helpdesk_mgmt +#: model:helpdesk.ticket.stage,name:helpdesk_mgmt.helpdesk_ticket_stage_awaiting +msgid "Awaiting" +msgstr "En espera" + +#. module: helpdesk_mgmt +#: selection:helpdesk.ticket,kanban_state:0 +msgid "Blocked" +msgstr "Bloqueado" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "By" +msgstr "Por" + +#. module: helpdesk_mgmt +#: model:helpdesk.ticket.stage,name:helpdesk_mgmt.helpdesk_ticket_stage_cancelled +msgid "Cancelled" +msgstr "Cancelado" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_category_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_category_menu +msgid "Categories" +msgstr "Categorías" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__category_id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__category_ids +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "Category" +msgstr "Categoría" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__channel_id +msgid "Channel" +msgstr "Canal" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__channel_id +msgid "" +"Channel indicates where the source of a ticketcomes from (it could be a " +"phone call, an email...)" +msgstr "" +"El Canal indica el origen del que procede un ticket (podría ser una llamada " +"telefónica, un email...)" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_channel_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_channel_menu +msgid "Channels" +msgstr "Canales" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "Close Date" +msgstr "Fecha de cierre" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__closed +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__closed +msgid "Closed" +msgstr "Cerrado" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__closed_date +msgid "Closed Date" +msgstr "Fecha de cierre" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__color +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__color +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__color +msgid "Color Index" +msgstr "Índice de color" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__company_id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__company_id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__company_id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__company_id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__company_id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__company_id +msgid "Company" +msgstr "Compañía" + +#. module: helpdesk_mgmt +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_config_main_menu +msgid "Configuration" +msgstr "Configuración" + +#. module: helpdesk_mgmt +#: model:ir.model,name:helpdesk_mgmt.model_res_partner +msgid "Contact" +msgstr "Contacto" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "Create Date" +msgstr "Fecha de creación" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__create_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__create_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__create_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__create_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__create_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__create_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__create_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__create_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__create_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__create_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__create_date +msgid "Created on" +msgstr "Creado en" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_dashboard_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_dashboard_menu +msgid "Dashboard" +msgstr "Tablero" + +#. module: helpdesk_mgmt +#: selection:helpdesk.ticket,kanban_state:0 +msgid "Default" +msgstr "Por defecto" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_kanban +msgid "Delete" +msgstr "Eliminar" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__description +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__description +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_helpdesk_ticket_page +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.ticket_view_form +msgid "Description" +msgstr "Descripción" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__display_name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__display_name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__display_name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__display_name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__display_name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: helpdesk_mgmt +#: model:helpdesk.ticket.stage,name:helpdesk_mgmt.helpdesk_ticket_stage_done +msgid "Done" +msgstr "Hecho" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_kanban +msgid "Edit" +msgstr "Editar" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +msgid "Email" +msgstr "Email" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__mail_template_id +msgid "Email Template" +msgstr "Plantilla de correo electrónico" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__fold +msgid "Folded in Kanban" +msgstr "Plegado en vista kanban" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_follower_ids +msgid "Followers" +msgstr "Seguidores" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_channel_ids +msgid "Followers (Channels)" +msgstr "Seguidores (Canales)" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_partner_ids +msgid "Followers (Partners)" +msgstr "Seguidores (Contactos)" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Future Activities" +msgstr "Actividades futuras" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Group By" +msgstr "Agrupar por" + +#. module: helpdesk_mgmt +#: model:ir.module.category,name:helpdesk_mgmt.module_helpdesk_category +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_main_menu +msgid "Helpdesk" +msgstr "Helpdesk" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_category_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_channel_search +msgid "Helpdesk Category Search" +msgstr "Buscar categoría Helpdesk" + +#. module: helpdesk_mgmt +#: model:res.groups,name:helpdesk_mgmt.group_helpdesk_manager +msgid "Helpdesk Manager" +msgstr "Manager Helpdesk" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_team_search +msgid "Helpdesk Team Search" +msgstr "Buscar equipo Helpdesk" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.action_helpdesk_ticket_kanban_from_dashboard +#: model:ir.model,name:helpdesk_mgmt.model_helpdesk_ticket +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.ticket_view_form +msgid "Helpdesk Ticket" +msgstr "Ticket Helpdesk" + +#. module: helpdesk_mgmt +#: model:ir.model,name:helpdesk_mgmt.model_helpdesk_ticket_category +msgid "Helpdesk Ticket Category" +msgstr "Categoría de ticket Helpdesk" + +#. module: helpdesk_mgmt +#: model:ir.model,name:helpdesk_mgmt.model_helpdesk_ticket_channel +msgid "Helpdesk Ticket Channel" +msgstr "Canal de ticket Helpdesk" + +#. module: helpdesk_mgmt +#: model:ir.model,name:helpdesk_mgmt.model_helpdesk_ticket_stage +msgid "Helpdesk Ticket Stage" +msgstr "Estado de ticket Helpdesk" + +#. module: helpdesk_mgmt +#: model:ir.model,name:helpdesk_mgmt.model_helpdesk_ticket_tag +msgid "Helpdesk Ticket Tag" +msgstr "Etiqueta de ticket Helpdesk" + +#. module: helpdesk_mgmt +#: model:ir.model,name:helpdesk_mgmt.model_helpdesk_ticket_team +msgid "Helpdesk Ticket Team" +msgstr "Equipo de ticket Helpdesk" + +#. module: helpdesk_mgmt +#: model:ir.module.category,description:helpdesk_mgmt.module_helpdesk_category +#, fuzzy +msgid "Helps you handle your helpdesk security." +msgstr "Ayuda a manejar tu seguridad de Helpdesk." + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:71 +#: selection:helpdesk.ticket,priority:0 +#, python-format +msgid "High" +msgstr "Alta" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_kanban_view +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "High Priority" +msgstr "Prioridad alta" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_helpdesk_ticket_page +msgid "History" +msgstr "Historial" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__id +msgid "ID" +msgstr "ID (identificación)" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__message_unread +msgid "If checked new messages require your attention." +msgstr "Si está seleccionado nuevos mensajes necesitan tu atención." + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__message_needaction +msgid "If checked, new messages require your attention." +msgstr "Si está seleccionado nuevos mensajes necesitan tu atención." + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "Si está seleccionado, algunos mensajes tuvieron error de entrega." + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket_stage__mail_template_id +msgid "" +"If set an email will be sent to the customer when the ticketreaches this " +"step." +msgstr "" +"Si está establecido, se enviará un email al cliente cuando el ticket alcance " +"este estado." + +#. module: helpdesk_mgmt +#: model:helpdesk.ticket.stage,name:helpdesk_mgmt.helpdesk_ticket_stage_in_progress +msgid "In Progress" +msgstr "En progreso" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_is_follower +msgid "Is Follower" +msgstr "Es Seguidor" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__kanban_state +msgid "Kanban State" +msgstr "Estado Kanban" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket____last_update +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category____last_update +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel____last_update +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage____last_update +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag____last_update +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team____last_update +msgid "Last Modified on" +msgstr "Última modificación en" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/controllers/myaccount.py:53 +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__last_stage_update +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +#, python-format +msgid "Last Stage Update" +msgstr "Última actualización de la etapa" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__write_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__write_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__write_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__write_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__write_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__write_uid +msgid "Last Updated by" +msgstr "Última actualización de" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__write_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__write_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__write_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__write_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__write_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Last Week" +msgstr "Última Semana" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Late Activities" +msgstr "Actividades tardías" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:69 +#: selection:helpdesk.ticket,priority:0 +#, python-format +msgid "Low" +msgstr "Baja" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_main_attachment_id +#, fuzzy +#| msgid "Media Attachments" +msgid "Main Attachment" +msgstr "Archivos adjuntos" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__attachment_ids +msgid "Media Attachments" +msgstr "Archivos adjuntos" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:70 +#: selection:helpdesk.ticket,priority:0 +#, python-format +msgid "Medium" +msgstr "Media" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__user_ids +msgid "Members" +msgstr "Miembros" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_has_error +msgid "Message Delivery error" +msgstr "Mensaje de error de entrega" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_ids +msgid "Messages" +msgstr "Mensajes" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "My Activities" +msgstr "Mis actividades" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "My Followed Tickets" +msgstr "Tickets que sigo" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "My Tickets" +msgstr "Mis tickets" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/controllers/myaccount.py:51 +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__name +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +#, python-format +msgid "Name" +msgstr "Nombre" + +#. module: helpdesk_mgmt +#: model:helpdesk.ticket.stage,name:helpdesk_mgmt.helpdesk_ticket_stage_new +msgid "New" +msgstr "Nuevo" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_home +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "New Ticket" +msgstr "Nuevo Ticket" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/controllers/myaccount.py:50 +#, python-format +msgid "Newest" +msgstr "Más nuevo" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "Fecha límite próxima actividad" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__activity_summary +msgid "Next Activity Summary" +msgstr "Resumen próxima actividad" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__activity_type_id +msgid "Next Activity Type" +msgstr "Tipo próxima actividad" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:187 +#, python-format +msgid "No Subject" +msgstr "Sin asunto" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_needaction_counter +msgid "Number of Actions" +msgstr "Número de acciones" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_has_error_counter +msgid "Number of error" +msgstr "Número de errores" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "Número de mensajes que requieren acción" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "Número de mensajes con errores" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__todo_ticket_count +msgid "Number of tickets" +msgstr "Número de tickets" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__todo_ticket_count_high_priority +msgid "Number of tickets in high priority" +msgstr "Número de tickets en prioridad alta" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__todo_ticket_count_unassigned +msgid "Number of tickets unassigned" +msgstr "Número de tickets sin asignar" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__todo_ticket_count_unattended +msgid "Number of tickets unattended" +msgstr "Número de tickets sin atender" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__message_unread_counter +msgid "Number of unread messages" +msgstr "Número de mensajer por leer" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Open" +msgstr "Abierto" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.ticket_view_form +msgid "Other Information" +msgstr "Otra información" + +#. module: helpdesk_mgmt +#: selection:helpdesk.ticket,activity_state:0 +msgid "Overdue" +msgstr "Atrasado" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__partner_id +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Partner" +msgstr "Empresa" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:225 +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__partner_email +#, python-format +msgid "Partner Email" +msgstr "Email del cliente" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:227 +#, python-format +msgid "Partner Id" +msgstr "ID de cliente" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__partner_name +msgid "Partner Name" +msgstr "Nombre de la empresa" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_views_pivot +msgid "Pivot Analysis" +msgstr "Análisis pivot" + +#. module: helpdesk_mgmt +#: selection:helpdesk.ticket,activity_state:0 +msgid "Planned" +msgstr "Planificado" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__priority +msgid "Priority" +msgstr "Prioridad" + +#. module: helpdesk_mgmt +#: selection:helpdesk.ticket,kanban_state:0 +msgid "Ready for next stage" +msgstr "Listo para la siguiente etapa" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_partner__helpdesk_ticket_ids +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_users__helpdesk_ticket_ids +msgid "Related tickets" +msgstr "Tickets relacionados" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_reporting_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_reporting_menu +msgid "Reporting" +msgstr "Informes" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__activity_user_id +msgid "Responsible User" +msgstr "Usuario Responsable" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +msgid "Send a new ticket" +msgstr "Enviar un nuevo ticket" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__sequence +msgid "Sequence" +msgstr "Secuencia" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Show all records which has next action date is before today" +msgstr "" +"Mostrar todos los registros que tienen la próxima fecha de acción antes de " +"hoy" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/controllers/myaccount.py:52 +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__stage_id +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +#, python-format +msgid "Stage" +msgstr "Etapa" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__name +msgid "Stage Name" +msgstr "Nombre de la etapa" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_stage_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_stage_menu +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_category_form +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_channel_form +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_team_form +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_stage_form +msgid "Stages" +msgstr "Etapas" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" +"Estados basados en actividades\n" +"Atrasado: La ficha límite ya ha sido sobrepasada\n" +"Hoy: La actividad está programada para hoy\n" +"Planificado: Actividades futuras." + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +msgid "Subject" +msgstr "Asunto" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +msgid "Submit Ticket" +msgstr "Enviar Ticket" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__tag_ids +msgid "Tag" +msgstr "Tag" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_tag_form +msgid "Tags" +msgstr "Etiquetas" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__team_id +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_category_tree +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_channel_tree +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_team_tree +msgid "Team" +msgstr "Equipo" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_team_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_team_menu +msgid "Teams" +msgstr "Equipos" + +#. module: helpdesk_mgmt +#: model:mail.template,subject:helpdesk_mgmt.closed_ticket_template +msgid "The ticket ${object.number} has been closed." +msgstr "El ticket ${object.number} ha sido cerrado." + +#. module: helpdesk_mgmt +#: model:mail.template,subject:helpdesk_mgmt.changed_stage_template +msgid "The ticket ${object.number} stage has changed." +msgstr "El ticket ${object.number} ha cambiado de estado." + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "There are no tickets in your account." +msgstr "No hay tickets en tu cuenta." + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket_stage__fold +msgid "" +"This stage is folded in the kanban view when there are no records in that " +"stage to display." +msgstr "" +"Esta etapa se repliega en la vista kanban cuando no hay registros para " +"mostrar en la misma." + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_stage_search +msgid "Ticket Stage Search" +msgstr "Buscar estado de ticket" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_stage_tree +msgid "Ticket Stages" +msgstr "Estados de ticket" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_tag_search +msgid "Ticket Tag Search" +msgstr "Buscar etiqueta de ticket" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_tag_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_tag_menu +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_tag_tree +msgid "Ticket Tags" +msgstr "Etiquetas de ticket" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_partner__helpdesk_ticket_active_count +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_users__helpdesk_ticket_active_count +msgid "Ticket active count" +msgstr "Cantidad de tickets activos" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_partner__helpdesk_ticket_count +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_users__helpdesk_ticket_count +msgid "Ticket count" +msgstr "Cantidad de tickets" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__number +msgid "Ticket number" +msgstr "Número de ticket" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_action +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__ticket_ids +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_partner__helpdesk_ticket_count_string +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_users__helpdesk_ticket_count_string +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_menu +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_reporting_analysis +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_layout +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_home +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "Tickets" +msgstr "Tickets" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__name +msgid "Title" +msgstr "Título" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_kanban_view +msgid "To Do" +msgstr "Por hacer" + +#. module: helpdesk_mgmt +#: selection:helpdesk.ticket,activity_state:0 +msgid "Today" +msgstr "Hoy" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Today Activities" +msgstr "Actividades de Hoy" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__todo_ticket_ids +msgid "Todo tickets" +msgstr "Tickets por hacer" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_kanban_view +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Unassigned" +msgstr "No asignado" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__unattended +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__unattended +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_kanban_view +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Unattended" +msgstr "Sin atender" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_unread +msgid "Unread Messages" +msgstr "Mensajes por leer" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_unread_counter +msgid "Unread Messages Counter" +msgstr "Contador mensajes por leer" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_team_search +#: model:res.groups,name:helpdesk_mgmt.group_helpdesk_user +msgid "User" +msgstr "Usuario" + +#. module: helpdesk_mgmt +#: model:res.groups,name:helpdesk_mgmt.group_helpdesk_user_own +msgid "User: Personal tickets" +msgstr "Usuario: Tickets personales" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__user_ids +msgid "Users" +msgstr "Usuarios" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:72 +#: selection:helpdesk.ticket,priority:0 +#, python-format +msgid "Very High" +msgstr "Muy alta" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__website_message_ids +msgid "Website Messages" +msgstr "Mensajes de la Web" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__website_message_ids +msgid "Website communication history" +msgstr "" diff --git a/helpdesk_mgmt/i18n/helpdesk_mgmt.pot b/helpdesk_mgmt/i18n/helpdesk_mgmt.pot new file mode 100644 index 0000000000..f60473adce --- /dev/null +++ b/helpdesk_mgmt/i18n/helpdesk_mgmt.pot @@ -0,0 +1,1080 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * helpdesk_mgmt +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: helpdesk_mgmt +#: model:mail.template,subject:helpdesk_mgmt.assignment_email_template +msgid "${object.company_id.name} Ticket Assignment (Ref ${object.number or 'n/a' })" +msgstr "" + +#. module: helpdesk_mgmt +#: model:mail.template,body_html:helpdesk_mgmt.assignment_email_template +msgid "\n" +"

Hello ${object.user_id.name},

\n" +"

The ticket ${object.number} has been assigned to you.

\n" +"
" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_helpdesk_ticket_page +msgid "
\n" +" Category:" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_helpdesk_ticket_page +msgid "
\n" +" Stage:" +msgstr "" + +#. module: helpdesk_mgmt +#: model:mail.template,body_html:helpdesk_mgmt.closed_ticket_template +msgid "\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" \"${object.company_id.name}\"\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +"
\n" +"

Hello ${object.user_id.name},

\n" +"

The ticket ${object.number} has been closed.

\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" ${object.company_id.phone}\n" +" \n" +" ${object.company_id.email}\n" +" \n" +" ${object.company_id.website}\n" +"
\n" +"
\n" +" \n" +" \n" +" " +msgstr "" + +#. module: helpdesk_mgmt +#: model:mail.template,body_html:helpdesk_mgmt.changed_stage_template +msgid "\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" \n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +"
\n" +"

Hello ${object.user_id.name},

\n" +"

The ticket ${object.number} stage has changed to ${object.stage_id.name}.

\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" ${object.company_id.phone}\n" +" \n" +" ${object.company_id.email}\n" +" \n" +" ${object.company_id.website}\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" " +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_kanban_view +msgid "View" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_helpdesk_ticket_page +msgid "Date:" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_helpdesk_ticket_page +msgid "Last Stage Update:" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_needaction +msgid "Action Needed" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__active +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__active +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__active +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__active +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__active +msgid "Active" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__activity_ids +msgid "Activities" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__activity_state +msgid "Activity State" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +msgid "Add Attachments" +msgstr "" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/controllers/myaccount.py:56 +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_kanban_view +#, python-format +msgid "All" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_category_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_channel_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_stage_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_tag_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_team_search +msgid "Archived" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.ticket_view_form +msgid "Assign to me" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__assigned_date +msgid "Assigned Date" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__user_id +msgid "Assigned user" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_kanban +msgid "Assigned user image" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_attachment_count +msgid "Attachment Count" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.ticket_view_form +msgid "Attachments" +msgstr "" + +#. module: helpdesk_mgmt +#: model:helpdesk.ticket.stage,name:helpdesk_mgmt.helpdesk_ticket_stage_awaiting +msgid "Awaiting" +msgstr "" + +#. module: helpdesk_mgmt +#: selection:helpdesk.ticket,kanban_state:0 +msgid "Blocked" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "By" +msgstr "" + +#. module: helpdesk_mgmt +#: model:helpdesk.ticket.stage,name:helpdesk_mgmt.helpdesk_ticket_stage_cancelled +msgid "Cancelled" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_category_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_category_menu +msgid "Categories" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__category_id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__category_ids +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "Category" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__channel_id +msgid "Channel" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__channel_id +msgid "Channel indicates where the source of a ticketcomes from (it could be a phone call, an email...)" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_channel_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_channel_menu +msgid "Channels" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "Close Date" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__closed +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__closed +msgid "Closed" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__closed_date +msgid "Closed Date" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__color +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__color +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__color +msgid "Color Index" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__company_id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__company_id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__company_id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__company_id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__company_id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__company_id +msgid "Company" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_config_main_menu +msgid "Configuration" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model,name:helpdesk_mgmt.model_res_partner +msgid "Contact" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "Create Date" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__create_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__create_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__create_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__create_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__create_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__create_uid +msgid "Created by" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__create_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__create_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__create_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__create_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__create_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__create_date +msgid "Created on" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_dashboard_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_dashboard_menu +msgid "Dashboard" +msgstr "" + +#. module: helpdesk_mgmt +#: selection:helpdesk.ticket,kanban_state:0 +msgid "Default" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_kanban +msgid "Delete" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__description +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__description +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_helpdesk_ticket_page +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.ticket_view_form +msgid "Description" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__display_name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__display_name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__display_name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__display_name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__display_name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__display_name +msgid "Display Name" +msgstr "" + +#. module: helpdesk_mgmt +#: model:helpdesk.ticket.stage,name:helpdesk_mgmt.helpdesk_ticket_stage_done +msgid "Done" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_kanban +msgid "Edit" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +msgid "Email" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__mail_template_id +msgid "Email Template" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__fold +msgid "Folded in Kanban" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_follower_ids +msgid "Followers" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_channel_ids +msgid "Followers (Channels)" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_partner_ids +msgid "Followers (Partners)" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Future Activities" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Group By" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.module.category,name:helpdesk_mgmt.module_helpdesk_category +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_main_menu +msgid "Helpdesk" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_category_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_channel_search +msgid "Helpdesk Category Search" +msgstr "" + +#. module: helpdesk_mgmt +#: model:res.groups,name:helpdesk_mgmt.group_helpdesk_manager +msgid "Helpdesk Manager" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_team_search +msgid "Helpdesk Team Search" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.action_helpdesk_ticket_kanban_from_dashboard +#: model:ir.model,name:helpdesk_mgmt.model_helpdesk_ticket +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.ticket_view_form +msgid "Helpdesk Ticket" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model,name:helpdesk_mgmt.model_helpdesk_ticket_category +msgid "Helpdesk Ticket Category" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model,name:helpdesk_mgmt.model_helpdesk_ticket_channel +msgid "Helpdesk Ticket Channel" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model,name:helpdesk_mgmt.model_helpdesk_ticket_stage +msgid "Helpdesk Ticket Stage" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model,name:helpdesk_mgmt.model_helpdesk_ticket_tag +msgid "Helpdesk Ticket Tag" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model,name:helpdesk_mgmt.model_helpdesk_ticket_team +msgid "Helpdesk Ticket Team" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.module.category,description:helpdesk_mgmt.module_helpdesk_category +msgid "Helps you handle your helpdesk security." +msgstr "" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:71 +#: selection:helpdesk.ticket,priority:0 +#, python-format +msgid "High" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_kanban_view +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "High Priority" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_helpdesk_ticket_page +msgid "History" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__id +msgid "ID" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__message_unread +msgid "If checked new messages require your attention." +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__message_needaction +msgid "If checked, new messages require your attention." +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket_stage__mail_template_id +msgid "If set an email will be sent to the customer when the ticketreaches this step." +msgstr "" + +#. module: helpdesk_mgmt +#: model:helpdesk.ticket.stage,name:helpdesk_mgmt.helpdesk_ticket_stage_in_progress +msgid "In Progress" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_is_follower +msgid "Is Follower" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__kanban_state +msgid "Kanban State" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket____last_update +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category____last_update +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel____last_update +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage____last_update +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag____last_update +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team____last_update +msgid "Last Modified on" +msgstr "" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/controllers/myaccount.py:53 +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__last_stage_update +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +#, python-format +msgid "Last Stage Update" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__write_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__write_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__write_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__write_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__write_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__write_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__write_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__write_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__write_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__write_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__write_date +msgid "Last Updated on" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Last Week" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Late Activities" +msgstr "" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:69 +#: selection:helpdesk.ticket,priority:0 +#, python-format +msgid "Low" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_main_attachment_id +msgid "Main Attachment" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__attachment_ids +msgid "Media Attachments" +msgstr "" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:70 +#: selection:helpdesk.ticket,priority:0 +#, python-format +msgid "Medium" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__user_ids +msgid "Members" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_has_error +msgid "Message Delivery error" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_ids +msgid "Messages" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "My Activities" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "My Followed Tickets" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "My Tickets" +msgstr "" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/controllers/myaccount.py:51 +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__name +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +#, python-format +msgid "Name" +msgstr "" + +#. module: helpdesk_mgmt +#: model:helpdesk.ticket.stage,name:helpdesk_mgmt.helpdesk_ticket_stage_new +msgid "New" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_home +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "New Ticket" +msgstr "" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/controllers/myaccount.py:50 +#, python-format +msgid "Newest" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__activity_summary +msgid "Next Activity Summary" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__activity_type_id +msgid "Next Activity Type" +msgstr "" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:187 +#, python-format +msgid "No Subject" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_needaction_counter +msgid "Number of Actions" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_has_error_counter +msgid "Number of error" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__todo_ticket_count +msgid "Number of tickets" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__todo_ticket_count_high_priority +msgid "Number of tickets in high priority" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__todo_ticket_count_unassigned +msgid "Number of tickets unassigned" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__todo_ticket_count_unattended +msgid "Number of tickets unattended" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__message_unread_counter +msgid "Number of unread messages" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Open" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.ticket_view_form +msgid "Other Information" +msgstr "" + +#. module: helpdesk_mgmt +#: selection:helpdesk.ticket,activity_state:0 +msgid "Overdue" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__partner_id +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Partner" +msgstr "" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:225 +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__partner_email +#, python-format +msgid "Partner Email" +msgstr "" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:227 +#, python-format +msgid "Partner Id" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__partner_name +msgid "Partner Name" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_views_pivot +msgid "Pivot Analysis" +msgstr "" + +#. module: helpdesk_mgmt +#: selection:helpdesk.ticket,activity_state:0 +msgid "Planned" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__priority +msgid "Priority" +msgstr "" + +#. module: helpdesk_mgmt +#: selection:helpdesk.ticket,kanban_state:0 +msgid "Ready for next stage" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_partner__helpdesk_ticket_ids +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_users__helpdesk_ticket_ids +msgid "Related tickets" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_reporting_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_reporting_menu +msgid "Reporting" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__activity_user_id +msgid "Responsible User" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +msgid "Send a new ticket" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__sequence +msgid "Sequence" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Show all records which has next action date is before today" +msgstr "" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/controllers/myaccount.py:52 +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__stage_id +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +#, python-format +msgid "Stage" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__name +msgid "Stage Name" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_stage_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_stage_menu +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_category_form +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_channel_form +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_team_form +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_stage_form +msgid "Stages" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__activity_state +msgid "Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +msgid "Subject" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +msgid "Submit Ticket" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__tag_ids +msgid "Tag" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_tag_form +msgid "Tags" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__team_id +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_category_tree +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_channel_tree +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_team_tree +msgid "Team" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_team_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_team_menu +msgid "Teams" +msgstr "" + +#. module: helpdesk_mgmt +#: model:mail.template,subject:helpdesk_mgmt.closed_ticket_template +msgid "The ticket ${object.number} has been closed." +msgstr "" + +#. module: helpdesk_mgmt +#: model:mail.template,subject:helpdesk_mgmt.changed_stage_template +msgid "The ticket ${object.number} stage has changed." +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "There are no tickets in your account." +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket_stage__fold +msgid "This stage is folded in the kanban view when there are no records in that stage to display." +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_stage_search +msgid "Ticket Stage Search" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_stage_tree +msgid "Ticket Stages" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_tag_search +msgid "Ticket Tag Search" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_tag_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_tag_menu +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_tag_tree +msgid "Ticket Tags" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_partner__helpdesk_ticket_active_count +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_users__helpdesk_ticket_active_count +msgid "Ticket active count" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_partner__helpdesk_ticket_count +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_users__helpdesk_ticket_count +msgid "Ticket count" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__number +msgid "Ticket number" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_action +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__ticket_ids +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_partner__helpdesk_ticket_count_string +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_users__helpdesk_ticket_count_string +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_menu +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_reporting_analysis +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_layout +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_home +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "Tickets" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__name +msgid "Title" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_kanban_view +msgid "To Do" +msgstr "" + +#. module: helpdesk_mgmt +#: selection:helpdesk.ticket,activity_state:0 +msgid "Today" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Today Activities" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__todo_ticket_ids +msgid "Todo tickets" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_kanban_view +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Unassigned" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__unattended +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__unattended +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_kanban_view +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Unattended" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_unread +msgid "Unread Messages" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_unread_counter +msgid "Unread Messages Counter" +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_team_search +#: model:res.groups,name:helpdesk_mgmt.group_helpdesk_user +msgid "User" +msgstr "" + +#. module: helpdesk_mgmt +#: model:res.groups,name:helpdesk_mgmt.group_helpdesk_user_own +msgid "User: Personal tickets" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__user_ids +msgid "Users" +msgstr "" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:72 +#: selection:helpdesk.ticket,priority:0 +#, python-format +msgid "Very High" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__website_message_ids +msgid "Website Messages" +msgstr "" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__website_message_ids +msgid "Website communication history" +msgstr "" + diff --git a/helpdesk_mgmt/i18n/pt_BR.po b/helpdesk_mgmt/i18n/pt_BR.po new file mode 100644 index 0000000000..22fd81af83 --- /dev/null +++ b/helpdesk_mgmt/i18n/pt_BR.po @@ -0,0 +1,1142 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * helpdesk_mgmt +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2019-09-23 14:24+0000\n" +"Last-Translator: Rodrigo Macedo \n" +"Language-Team: none\n" +"Language: pt_BR\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 3.8\n" + +#. module: helpdesk_mgmt +#: model:mail.template,subject:helpdesk_mgmt.assignment_email_template +msgid "" +"${object.company_id.name} Ticket Assignment (Ref ${object.number or 'n/a' })" +msgstr "" +"${object.company_id.name} Chamado Atribuído (Ref ${object.number or 'n/a' })" + +#. module: helpdesk_mgmt +#: model:mail.template,body_html:helpdesk_mgmt.assignment_email_template +msgid "" +"\n" +"

Hello ${object.user_id.name},

\n" +"

The ticket ${object.number} has been assigned to you.

\n" +"
" +msgstr "" +"\n" +"

Olá ${object.user_id.name},

\n" +"

O chamado ${object.number} foi atribuído a você.

\n" +"
" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_helpdesk_ticket_page +msgid "" +"
\n" +" Category:" +msgstr "" +"
\n" +" Categoria:" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_helpdesk_ticket_page +msgid "" +"
\n" +" Stage:" +msgstr "" +"
\n" +" Estágio:" + +#. module: helpdesk_mgmt +#: model:mail.template,body_html:helpdesk_mgmt.closed_ticket_template +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" \"${object.company_id.name}\"\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +"
\n" +"

Hello ${object.user_id.name},

\n" +"

The ticket ${object.number} has been " +"closed.

\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" ${object.company_id.phone}\n" +" \n" +" ${object.company_id.email}\n" +" \n" +" ${object.company_id.website}\n" +"
\n" +"
\n" +" \n" +" \n" +" " +msgstr "" + +#. module: helpdesk_mgmt +#: model:mail.template,body_html:helpdesk_mgmt.changed_stage_template +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" \n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +"
\n" +"

Hello ${object.user_id.name},

\n" +"

The ticket ${object.number} stage has " +"changed to ${object.stage_id.name}.

\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"
\n" +" ${object.company_id.phone}\n" +" \n" +" ${object.company_id.email}\n" +" \n" +" ${object.company_id.website}\n" +"
\n" +"
\n" +" \n" +" \n" +" \n" +" " +msgstr "" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_kanban_view +msgid "View" +msgstr "Ver" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_helpdesk_ticket_page +msgid "Date:" +msgstr "Data:" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_helpdesk_ticket_page +msgid "Last Stage Update:" +msgstr "Última Atualização de Estágio:" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_needaction +msgid "Action Needed" +msgstr "Ação Necessária" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__active +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__active +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__active +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__active +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__active +msgid "Active" +msgstr "Ativo" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__activity_ids +msgid "Activities" +msgstr "Atividades" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__activity_state +msgid "Activity State" +msgstr "Situação da Atividade" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +msgid "Add Attachments" +msgstr "Adicionar Anexos" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/controllers/myaccount.py:56 +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_kanban_view +#, python-format +msgid "All" +msgstr "Tudo" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_category_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_channel_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_stage_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_tag_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_team_search +msgid "Archived" +msgstr "Arquivado" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.ticket_view_form +msgid "Assign to me" +msgstr "Atribuído a mim" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__assigned_date +msgid "Assigned Date" +msgstr "Data de Atribuição" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__user_id +msgid "Assigned user" +msgstr "Usuário atribuído" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_kanban +msgid "Assigned user image" +msgstr "Imagem de usuário atribuída" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_attachment_count +msgid "Attachment Count" +msgstr "Número de Anexos" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.ticket_view_form +msgid "Attachments" +msgstr "Anexos" + +#. module: helpdesk_mgmt +#: model:helpdesk.ticket.stage,name:helpdesk_mgmt.helpdesk_ticket_stage_awaiting +msgid "Awaiting" +msgstr "Aguardando" + +#. module: helpdesk_mgmt +#: selection:helpdesk.ticket,kanban_state:0 +msgid "Blocked" +msgstr "Bloqueado" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "By" +msgstr "Por" + +#. module: helpdesk_mgmt +#: model:helpdesk.ticket.stage,name:helpdesk_mgmt.helpdesk_ticket_stage_cancelled +msgid "Cancelled" +msgstr "Cancelado" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_category_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_category_menu +msgid "Categories" +msgstr "Categorias" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__category_id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__category_ids +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "Category" +msgstr "Categoria" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__channel_id +msgid "Channel" +msgstr "Canal" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__channel_id +msgid "" +"Channel indicates where the source of a ticketcomes from (it could be a " +"phone call, an email...)" +msgstr "Canal indica a origem do chamado (ligação telefônica, e-mail, etc.)" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_channel_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_channel_menu +msgid "Channels" +msgstr "Canais" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "Close Date" +msgstr "Data Final" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__closed +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__closed +msgid "Closed" +msgstr "Encerrado" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__closed_date +msgid "Closed Date" +msgstr "Data de Encerramento" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__color +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__color +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__color +msgid "Color Index" +msgstr "Índice de Cor" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__company_id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__company_id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__company_id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__company_id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__company_id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__company_id +msgid "Company" +msgstr "Empresa" + +#. module: helpdesk_mgmt +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_config_main_menu +msgid "Configuration" +msgstr "Configuração" + +#. module: helpdesk_mgmt +#: model:ir.model,name:helpdesk_mgmt.model_res_partner +msgid "Contact" +msgstr "Contato" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "Create Date" +msgstr "Data de Criação" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__create_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__create_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__create_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__create_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__create_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__create_uid +msgid "Created by" +msgstr "Criado por" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__create_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__create_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__create_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__create_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__create_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__create_date +msgid "Created on" +msgstr "Criado em" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_dashboard_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_dashboard_menu +msgid "Dashboard" +msgstr "Painel" + +#. module: helpdesk_mgmt +#: selection:helpdesk.ticket,kanban_state:0 +msgid "Default" +msgstr "Padrão" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_kanban +msgid "Delete" +msgstr "Apagar" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__description +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__description +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_helpdesk_ticket_page +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.ticket_view_form +msgid "Description" +msgstr "Descrição" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__display_name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__display_name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__display_name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__display_name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__display_name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__display_name +msgid "Display Name" +msgstr "Nome de Exibição" + +#. module: helpdesk_mgmt +#: model:helpdesk.ticket.stage,name:helpdesk_mgmt.helpdesk_ticket_stage_done +msgid "Done" +msgstr "Concluído" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_kanban +msgid "Edit" +msgstr "Editar" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +msgid "Email" +msgstr "Email" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__mail_template_id +msgid "Email Template" +msgstr "Modelo de E-mail" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__fold +msgid "Folded in Kanban" +msgstr "Dobrado no Kanban" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_follower_ids +msgid "Followers" +msgstr "Seguidores" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_channel_ids +msgid "Followers (Channels)" +msgstr "Seguidores (Canais)" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_partner_ids +msgid "Followers (Partners)" +msgstr "Seguidores (Parceiros)" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Future Activities" +msgstr "Atividades Futuras" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Group By" +msgstr "Agrupar Por" + +#. module: helpdesk_mgmt +#: model:ir.module.category,name:helpdesk_mgmt.module_helpdesk_category +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_main_menu +msgid "Helpdesk" +msgstr "Central de Ajuda" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_category_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_channel_search +msgid "Helpdesk Category Search" +msgstr "Buscar em Categorias da Central de Ajuda" + +#. module: helpdesk_mgmt +#: model:res.groups,name:helpdesk_mgmt.group_helpdesk_manager +msgid "Helpdesk Manager" +msgstr "Gerente de Atendimento" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_team_search +msgid "Helpdesk Team Search" +msgstr "Buscar em Equipe de Atendimento" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.action_helpdesk_ticket_kanban_from_dashboard +#: model:ir.model,name:helpdesk_mgmt.model_helpdesk_ticket +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.ticket_view_form +msgid "Helpdesk Ticket" +msgstr "Chamado" + +#. module: helpdesk_mgmt +#: model:ir.model,name:helpdesk_mgmt.model_helpdesk_ticket_category +msgid "Helpdesk Ticket Category" +msgstr "Categoria do Chamado" + +#. module: helpdesk_mgmt +#: model:ir.model,name:helpdesk_mgmt.model_helpdesk_ticket_channel +msgid "Helpdesk Ticket Channel" +msgstr "Canal do Chamado" + +#. module: helpdesk_mgmt +#: model:ir.model,name:helpdesk_mgmt.model_helpdesk_ticket_stage +msgid "Helpdesk Ticket Stage" +msgstr "Estágio do Chamado" + +#. module: helpdesk_mgmt +#: model:ir.model,name:helpdesk_mgmt.model_helpdesk_ticket_tag +msgid "Helpdesk Ticket Tag" +msgstr "Marcador do Chamado" + +#. module: helpdesk_mgmt +#: model:ir.model,name:helpdesk_mgmt.model_helpdesk_ticket_team +msgid "Helpdesk Ticket Team" +msgstr "Equipe do Chamado" + +#. module: helpdesk_mgmt +#: model:ir.module.category,description:helpdesk_mgmt.module_helpdesk_category +msgid "Helps you handle your helpdesk security." +msgstr "Auxilia a gerir a segurança do seu atendimento." + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:71 +#: selection:helpdesk.ticket,priority:0 +#, python-format +msgid "High" +msgstr "Alta" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_kanban_view +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "High Priority" +msgstr "Alta Prioridade" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_helpdesk_ticket_page +msgid "History" +msgstr "Histórico" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__id +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__id +msgid "ID" +msgstr "ID" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__message_unread +msgid "If checked new messages require your attention." +msgstr "Se marcada, novas mensagens requerem sua atenção." + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__message_needaction +msgid "If checked, new messages require your attention." +msgstr "Se marcada, novas mensagens requerem sua atenção." + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__message_has_error +msgid "If checked, some messages have a delivery error." +msgstr "Se marcado, algumas mensagens têm um erro de entrega." + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket_stage__mail_template_id +msgid "" +"If set an email will be sent to the customer when the ticketreaches this " +"step." +msgstr "" +"Se configurado, um e-mail será enviado ao cliente quando o chamado atingir " +"esta etapa." + +#. module: helpdesk_mgmt +#: model:helpdesk.ticket.stage,name:helpdesk_mgmt.helpdesk_ticket_stage_in_progress +msgid "In Progress" +msgstr "Em Andamento" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_is_follower +msgid "Is Follower" +msgstr "É Seguidor" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__kanban_state +msgid "Kanban State" +msgstr "Estado Kanban" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket____last_update +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category____last_update +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel____last_update +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage____last_update +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag____last_update +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team____last_update +msgid "Last Modified on" +msgstr "Última Modificação em" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/controllers/myaccount.py:53 +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__last_stage_update +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +#, python-format +msgid "Last Stage Update" +msgstr "Última Atualização de Estágio" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__write_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__write_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__write_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__write_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__write_uid +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__write_uid +msgid "Last Updated by" +msgstr "Ultima atualização por" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__write_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__write_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__write_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__write_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__write_date +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__write_date +msgid "Last Updated on" +msgstr "Ultima Atualização em" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Last Week" +msgstr "Última Semana" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Late Activities" +msgstr "Atividades Atrasadas" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:69 +#: selection:helpdesk.ticket,priority:0 +#, python-format +msgid "Low" +msgstr "Baixa" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_main_attachment_id +msgid "Main Attachment" +msgstr "Anexo Principal" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__attachment_ids +msgid "Media Attachments" +msgstr "Mídias Anexadas" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:70 +#: selection:helpdesk.ticket,priority:0 +#, python-format +msgid "Medium" +msgstr "Média" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__user_ids +msgid "Members" +msgstr "Membros" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_has_error +msgid "Message Delivery error" +msgstr "Erro de entrega de mensagem" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_ids +msgid "Messages" +msgstr "Mensagens" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "My Activities" +msgstr "Minhas Atividades" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "My Followed Tickets" +msgstr "Chamados Seguidos por Mim" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "My Tickets" +msgstr "Meus Chamados" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/controllers/myaccount.py:51 +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_category__name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_channel__name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_tag__name +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__name +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +#, python-format +msgid "Name" +msgstr "Nome" + +#. module: helpdesk_mgmt +#: model:helpdesk.ticket.stage,name:helpdesk_mgmt.helpdesk_ticket_stage_new +msgid "New" +msgstr "Novo" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_home +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "New Ticket" +msgstr "Novo Chamado" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/controllers/myaccount.py:50 +#, python-format +msgid "Newest" +msgstr "Mais Recente" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "Próximo Prazo de Atividade" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__activity_summary +msgid "Next Activity Summary" +msgstr "Relatório de Próximas Atividades" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__activity_type_id +msgid "Next Activity Type" +msgstr "Tipo da Próxima Atividade" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:187 +#, python-format +msgid "No Subject" +msgstr "Sem Assunto" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_needaction_counter +msgid "Number of Actions" +msgstr "Número de Ações" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_has_error_counter +msgid "Number of error" +msgstr "Número do erro" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "Número de mensagens que requerem uma ação" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "Número de mensagens com erro de entrega" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__todo_ticket_count +msgid "Number of tickets" +msgstr "Número de chamados" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__todo_ticket_count_high_priority +msgid "Number of tickets in high priority" +msgstr "Número de chamados de Alta Prioridade" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__todo_ticket_count_unassigned +msgid "Number of tickets unassigned" +msgstr "Número de chamados não atribuídos" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__todo_ticket_count_unattended +msgid "Number of tickets unattended" +msgstr "Número de chamados não atendidos" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__message_unread_counter +msgid "Number of unread messages" +msgstr "Número de mensagens não lidas" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Open" +msgstr "Abrir" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.ticket_view_form +msgid "Other Information" +msgstr "Outras informações" + +#. module: helpdesk_mgmt +#: selection:helpdesk.ticket,activity_state:0 +msgid "Overdue" +msgstr "Atrasado" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__partner_id +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Partner" +msgstr "Parceiro" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:225 +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__partner_email +#, python-format +msgid "Partner Email" +msgstr "E-mail do Parceiro" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:227 +#, python-format +msgid "Partner Id" +msgstr "Id do Parceiro" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__partner_name +msgid "Partner Name" +msgstr "Nome do Parceiro" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_views_pivot +msgid "Pivot Analysis" +msgstr "Análise Pivô" + +#. module: helpdesk_mgmt +#: selection:helpdesk.ticket,activity_state:0 +msgid "Planned" +msgstr "Planejado" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__priority +msgid "Priority" +msgstr "Prioridade" + +#. module: helpdesk_mgmt +#: selection:helpdesk.ticket,kanban_state:0 +msgid "Ready for next stage" +msgstr "Pronto para o próximo estágio" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_partner__helpdesk_ticket_ids +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_users__helpdesk_ticket_ids +msgid "Related tickets" +msgstr "Chamados Relacionados" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_reporting_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_reporting_menu +msgid "Reporting" +msgstr "Relatórios" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__activity_user_id +msgid "Responsible User" +msgstr "Usuário Responsável" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +msgid "Send a new ticket" +msgstr "Enviar um novo chamado" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__sequence +msgid "Sequence" +msgstr "Sequência" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Show all records which has next action date is before today" +msgstr "Exibir todos os registros com data da próxima ação anterior a hoje" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/controllers/myaccount.py:52 +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__stage_id +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +#, python-format +msgid "Stage" +msgstr "Estágio" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__name +msgid "Stage Name" +msgstr "Nome do Estágio" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_stage_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_stage_menu +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_category_form +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_channel_form +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_team_form +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_stage_form +msgid "Stages" +msgstr "Estágios" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" +"Status baseado em atividades\n" +"Em atraso: A data de vencimento já passou\n" +"Hoje: A data da atividade é hoje\n" +"Planejado: Atividades Futuras." + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +msgid "Subject" +msgstr "Assunto" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_create_ticket +msgid "Submit Ticket" +msgstr "Enviar Chamados" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__tag_ids +msgid "Tag" +msgstr "Marcador" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_tag_form +msgid "Tags" +msgstr "Marcadores" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__team_id +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_category_tree +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_channel_tree +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_team_tree +msgid "Team" +msgstr "Equipe" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_team_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_team_menu +msgid "Teams" +msgstr "Equipes" + +#. module: helpdesk_mgmt +#: model:mail.template,subject:helpdesk_mgmt.closed_ticket_template +msgid "The ticket ${object.number} has been closed." +msgstr "O ticket ${object.number} foi fechado." + +#. module: helpdesk_mgmt +#: model:mail.template,subject:helpdesk_mgmt.changed_stage_template +msgid "The ticket ${object.number} stage has changed." +msgstr "O estágio do ticket ${object.number} foi alterado." + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "There are no tickets in your account." +msgstr "Não há chamados na sua conta." + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket_stage__fold +msgid "" +"This stage is folded in the kanban view when there are no records in that " +"stage to display." +msgstr "" +"Este estágio fica dobrado na visão Kanban quando não houver registros para " +"exibir." + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_stage_search +msgid "Ticket Stage Search" +msgstr "Buscar Estágio do Chamado" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_stage_tree +msgid "Ticket Stages" +msgstr "Estágios do Chamado" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_tag_search +msgid "Ticket Tag Search" +msgstr "Buscar Marcadores do Chamado" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_tag_action +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_tag_menu +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_tag_tree +msgid "Ticket Tags" +msgstr "Marcadores do Chamado" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_partner__helpdesk_ticket_active_count +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_users__helpdesk_ticket_active_count +msgid "Ticket active count" +msgstr "Número de Chamados Ativos" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_partner__helpdesk_ticket_count +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_users__helpdesk_ticket_count +msgid "Ticket count" +msgstr "Número de Chamados" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__number +msgid "Ticket number" +msgstr "Número do Chamado" + +#. module: helpdesk_mgmt +#: model:ir.actions.act_window,name:helpdesk_mgmt.helpdesk_ticket_action +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__ticket_ids +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_partner__helpdesk_ticket_count_string +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_res_users__helpdesk_ticket_count_string +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_menu +#: model:ir.ui.menu,name:helpdesk_mgmt.helpdesk_ticket_reporting_analysis +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_layout +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_home +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.portal_my_tickets +msgid "Tickets" +msgstr "Chamados" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__name +msgid "Title" +msgstr "Título" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_kanban_view +msgid "To Do" +msgstr "A Fazer" + +#. module: helpdesk_mgmt +#: selection:helpdesk.ticket,activity_state:0 +msgid "Today" +msgstr "Hoje" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Today Activities" +msgstr "Atividades de Hoje" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_team__todo_ticket_ids +msgid "Todo tickets" +msgstr "Chamados para Atender" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_kanban_view +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Unassigned" +msgstr "Não Atribuído" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__unattended +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket_stage__unattended +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_kanban_view +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +msgid "Unattended" +msgstr "Não Atendido" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_unread +msgid "Unread Messages" +msgstr "Mensagens Não Lidas" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__message_unread_counter +msgid "Unread Messages Counter" +msgstr "Contador de Mensagens Não Lidas" + +#. module: helpdesk_mgmt +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.helpdesk_ticket_view_search +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt.view_helpdesk_ticket_team_search +#: model:res.groups,name:helpdesk_mgmt.group_helpdesk_user +msgid "User" +msgstr "Usuário" + +#. module: helpdesk_mgmt +#: model:res.groups,name:helpdesk_mgmt.group_helpdesk_user_own +msgid "User: Personal tickets" +msgstr "Usuário: Chamados Pessoais" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__user_ids +msgid "Users" +msgstr "Usuários" + +#. module: helpdesk_mgmt +#: code:addons/helpdesk_mgmt/models/helpdesk_ticket.py:72 +#: selection:helpdesk.ticket,priority:0 +#, python-format +msgid "Very High" +msgstr "Muito Alta" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,field_description:helpdesk_mgmt.field_helpdesk_ticket__website_message_ids +msgid "Website Messages" +msgstr "Mensagens do Website" + +#. module: helpdesk_mgmt +#: model:ir.model.fields,help:helpdesk_mgmt.field_helpdesk_ticket__website_message_ids +msgid "Website communication history" +msgstr "Histórico de comunicações do Website" diff --git a/helpdesk_mgmt/models/__init__.py b/helpdesk_mgmt/models/__init__.py new file mode 100644 index 0000000000..30482a0c57 --- /dev/null +++ b/helpdesk_mgmt/models/__init__.py @@ -0,0 +1,7 @@ +from . import helpdesk_ticket +from . import helpdesk_ticket_stage +from . import helpdesk_ticket_tag +from . import helpdesk_ticket_channel +from . import helpdesk_ticket_category +from . import helpdesk_ticket_team +from . import res_partner diff --git a/helpdesk_mgmt/models/helpdesk_ticket.py b/helpdesk_mgmt/models/helpdesk_ticket.py new file mode 100644 index 0000000000..e77d7271f4 --- /dev/null +++ b/helpdesk_mgmt/models/helpdesk_ticket.py @@ -0,0 +1,242 @@ +from odoo import _, api, fields, models, tools + + +class HelpdeskTicket(models.Model): + + _name = "helpdesk.ticket" + _description = "Helpdesk Ticket" + _rec_name = "number" + _order = "number desc" + _inherit = ["mail.thread", "mail.activity.mixin"] + + def _get_default_stage_id(self): + return self.env["helpdesk.ticket.stage"].search([], limit=1).id + + number = fields.Char(string="Ticket number", default="/", readonly=True) + name = fields.Char(string="Title", required=True) + description = fields.Text(required=True) + user_id = fields.Many2one("res.users", string="Assigned user") + + user_ids = fields.Many2many( + comodel_name="res.users", related="team_id.user_ids", string="Users" + ) + + @api.model + def _read_group_stage_ids(self, stages, domain, order): + stage_ids = self.env["helpdesk.ticket.stage"].search([]) + return stage_ids + + stage_id = fields.Many2one( + "helpdesk.ticket.stage", + string="Stage", + group_expand="_read_group_stage_ids", + default=_get_default_stage_id, + track_visibility="onchange", + ) + partner_id = fields.Many2one("res.partner") + partner_name = fields.Char() + partner_email = fields.Char() + + last_stage_update = fields.Datetime( + string="Last Stage Update", default=fields.Datetime.now + ) + assigned_date = fields.Datetime(string="Assigned Date") + closed_date = fields.Datetime(string="Closed Date") + closed = fields.Boolean(related="stage_id.closed") + unattended = fields.Boolean(related="stage_id.unattended") + tag_ids = fields.Many2many("helpdesk.ticket.tag") + company_id = fields.Many2one( + "res.company", + string="Company", + required=True, + default=lambda self: self.env.company + ) + channel_id = fields.Many2one( + "helpdesk.ticket.channel", + string="Channel", + help="Channel indicates where the source of a ticket" + "comes from (it could be a phone call, an email...)", + ) + category_id = fields.Many2one("helpdesk.ticket.category", string="Category") + team_id = fields.Many2one("helpdesk.ticket.team") + priority = fields.Selection( + selection=[ + ("0", _("Low")), + ("1", _("Medium")), + ("2", _("High")), + ("3", _("Very High")), + ], + string="Priority", + default="1", + ) + attachment_ids = fields.One2many( + "ir.attachment", + "res_id", + domain=[("res_model", "=", "helpdesk.ticket")], + string="Media Attachments", + ) + color = fields.Integer(string="Color Index") + kanban_state = fields.Selection( + [ + ("normal", "Default"), + ("done", "Ready for next stage"), + ("blocked", "Blocked"), + ], + string="Kanban State", + ) + + def send_user_mail(self): + self.env.ref("helpdesk_mgmt.assignment_email_template").send_mail(self.id) + + def assign_to_me(self): + self.write({"user_id": self.env.user.id}) + + @api.onchange("partner_id") + def _onchange_partner_id(self): + if self.partner_id: + self.partner_name = self.partner_id.name + self.partner_email = self.partner_id.email + + @api.onchange("team_id", "user_id") + def _onchange_dominion_user_id(self): + if self.user_id: + if self.user_id and self.user_ids and self.user_id not in self.user_ids: + self.update({"user_id": False}) + return {"domain": {"user_id": []}} + if self.team_id: + return {"domain": {"user_id": [("id", "in", self.user_ids.ids)]}} + else: + return {"domain": {"user_id": []}} + + # --------------------------------------------------- + # CRUD + # --------------------------------------------------- + + @api.model + def create(self, vals): + if vals.get("number", "/") == "/": + seq = self.env["ir.sequence"] + if "company_id" in vals: + seq = seq.with_context(force_company=vals["company_id"]) + vals["number"] = seq.next_by_code("helpdesk.ticket.sequence") or "/" + res = super().create(vals) + + # Check if mail to the user has to be sent + if vals.get("user_id") and res: + res.send_user_mail() + return res + + def copy(self, default=None): + self.ensure_one() + if default is None: + default = {} + if "number" not in default: + default["number"] = ( + self.env["ir.sequence"].next_by_code("helpdesk.ticket.sequence") or "/" + ) + res = super(HelpdeskTicket, self).copy(default) + return res + + def write(self, vals): + for _ticket in self: + now = fields.Datetime.now() + if vals.get("stage_id"): + stage_obj = self.env["helpdesk.ticket.stage"].browse([vals["stage_id"]]) + vals["last_stage_update"] = now + if stage_obj.closed: + vals["closed_date"] = now + if vals.get("user_id"): + vals["assigned_date"] = now + + res = super(HelpdeskTicket, self).write(vals) + + # Check if mail to the user has to be sent + for ticket in self: + if vals.get("user_id"): + ticket.send_user_mail() + return res + + # --------------------------------------------------- + # Mail gateway + # --------------------------------------------------- + + def _track_template(self, tracking): + res = super(HelpdeskTicket, self)._track_template(tracking) + ticket = self[0] + if 'stage_id' in tracking and ticket.stage_id.mail_template_id: + res['stage_id'] = (ticket.stage_id.mail_template_id, { + 'auto_delete_message': True, + 'subtype_id': self.env['ir.model.data'].xmlid_to_res_id('mail.mt_note'), + 'email_layout_xmlid': 'mail.mail_notification_light' + }) + return res + + @api.model + def message_new(self, msg, custom_values=None): + """ Override message_new from mail gateway so we can set correct + default values. + """ + if custom_values is None: + custom_values = {} + defaults = { + "name": msg.get("subject") or _("No Subject"), + "description": msg.get("body"), + "partner_email": msg.get("from"), + "partner_id": msg.get("author_id"), + } + defaults.update(custom_values) + + # Write default values coming from msg + ticket = super().message_new(msg, custom_values=defaults) + + # Use mail gateway tools to search for partners to subscribe + email_list = tools.email_split( + (msg.get("to") or "") + "," + (msg.get("cc") or "") + ) + partner_ids = [ + p + for p in self.env['mail.thread']._mail_find_partner_from_emails( + email_list, + records=ticket, + force_create=False) + if p + ] + ticket.message_subscribe(partner_ids) + + return ticket + + def message_update(self, msg, update_vals=None): + """ Override message_update to subscribe partners """ + email_list = tools.email_split( + (msg.get("to") or "") + "," + (msg.get("cc") or "") + ) + partner_ids = [ + p + for p in self.env['mail.thread']._mail_find_partner_from_emails( + email_list, + records=self, + force_create=False) + if p + ] + self.message_subscribe(partner_ids) + return super().message_update(msg, update_vals=update_vals) + + def message_get_suggested_recipients(self): + recipients = super().message_get_suggested_recipients() + + for ticket in self: + reason = ( + _("Partner Email") + if ticket.partner_id and ticket.partner_id.email + else _("Partner Id") + ) + + if ticket.partner_id and ticket.partner_id.email: + ticket._message_add_suggested_recipient( + recipients, partner=ticket.partner_id, reason=reason + ) + elif ticket.partner_email: + ticket._message_add_suggested_recipient( + recipients, email=ticket.partner_email, reason=reason + ) + return recipients diff --git a/helpdesk_mgmt/models/helpdesk_ticket_category.py b/helpdesk_mgmt/models/helpdesk_ticket_category.py new file mode 100644 index 0000000000..191c02c907 --- /dev/null +++ b/helpdesk_mgmt/models/helpdesk_ticket_category.py @@ -0,0 +1,17 @@ +from odoo import fields, models + + +class HelpdeskCategory(models.Model): + + _name = "helpdesk.ticket.category" + _description = "Helpdesk Ticket Category" + + active = fields.Boolean(string="Active", default=True) + name = fields.Char(string="Name", required=True) + company_id = fields.Many2one( + "res.company", + string="Company", + default=lambda self: self.env["res.company"]._company_default_get( + "helpdesk.ticket" + ), + ) diff --git a/helpdesk_mgmt/models/helpdesk_ticket_channel.py b/helpdesk_mgmt/models/helpdesk_ticket_channel.py new file mode 100644 index 0000000000..826b488d1d --- /dev/null +++ b/helpdesk_mgmt/models/helpdesk_ticket_channel.py @@ -0,0 +1,17 @@ +from odoo import fields, models + + +class HelpdeskTicketChannel(models.Model): + + _name = "helpdesk.ticket.channel" + _description = "Helpdesk Ticket Channel" + + name = fields.Char(required=True) + active = fields.Boolean(default=True) + company_id = fields.Many2one( + "res.company", + string="Company", + default=lambda self: self.env["res.company"]._company_default_get( + "helpdesk.ticket" + ), + ) diff --git a/helpdesk_mgmt/models/helpdesk_ticket_stage.py b/helpdesk_mgmt/models/helpdesk_ticket_stage.py new file mode 100644 index 0000000000..05fe7c12f3 --- /dev/null +++ b/helpdesk_mgmt/models/helpdesk_ticket_stage.py @@ -0,0 +1,35 @@ +from odoo import fields, models + + +class HelpdeskTicketStage(models.Model): + _name = "helpdesk.ticket.stage" + _description = "Helpdesk Ticket Stage" + _order = "sequence, id" + + name = fields.Char(string="Stage Name", required=True, translate=True) + description = fields.Text(translate=True) + sequence = fields.Integer(default=1) + active = fields.Boolean(default=True) + unattended = fields.Boolean(string="Unattended") + closed = fields.Boolean(string="Closed") + mail_template_id = fields.Many2one( + "mail.template", + string="Email Template", + domain=[("model", "=", "helpdesk.ticket")], + help="If set an email will be sent to the " + "customer when the ticket" + "reaches this step.", + ) + fold = fields.Boolean( + string="Folded in Kanban", + help="This stage is folded in the kanban view " + "when there are no records in that stage " + "to display.", + ) + company_id = fields.Many2one( + "res.company", + string="Company", + default=lambda self: self.env["res.company"]._company_default_get( + "helpdesk.ticket" + ), + ) diff --git a/helpdesk_mgmt/models/helpdesk_ticket_tag.py b/helpdesk_mgmt/models/helpdesk_ticket_tag.py new file mode 100644 index 0000000000..3928e40222 --- /dev/null +++ b/helpdesk_mgmt/models/helpdesk_ticket_tag.py @@ -0,0 +1,17 @@ +from odoo import fields, models + + +class HelpdeskTicketTag(models.Model): + _name = "helpdesk.ticket.tag" + _description = "Helpdesk Ticket Tag" + + name = fields.Char(string="Name") + color = fields.Integer(string="Color Index") + active = fields.Boolean(default=True) + company_id = fields.Many2one( + "res.company", + string="Company", + default=lambda self: self.env["res.company"]._company_default_get( + "helpdesk.ticket" + ), + ) diff --git a/helpdesk_mgmt/models/helpdesk_ticket_team.py b/helpdesk_mgmt/models/helpdesk_ticket_team.py new file mode 100644 index 0000000000..75296489ca --- /dev/null +++ b/helpdesk_mgmt/models/helpdesk_ticket_team.py @@ -0,0 +1,75 @@ +from odoo import api, fields, models +from odoo.tools.safe_eval import safe_eval + + +class HelpdeskTeam(models.Model): + + _name = "helpdesk.ticket.team" + _description = "Helpdesk Ticket Team" + _inherit = ['mail.thread', 'mail.alias.mixin'] + + name = fields.Char(string="Name", required=True) + user_ids = fields.Many2many(comodel_name="res.users", string="Members") + active = fields.Boolean(default=True) + category_ids = fields.Many2many( + comodel_name="helpdesk.ticket.category", string="Category" + ) + company_id = fields.Many2one( + "res.company", + string="Company", + default=lambda self: self.env.company, + ) + user_id = fields.Many2one('res.users', string='Team Leader', + check_company=True) + alias_id = fields.Many2one('mail.alias', string='Alias', + ondelete="restrict", required=True, + help="The email address associated with \ + this channel. New emails received will \ + automatically create new tickets assigned \ + to the channel.") + color = fields.Integer("Color Index", default=0) + ticket_ids = fields.One2many("helpdesk.ticket", "team_id", + string="Tickets") + todo_ticket_ids = fields.One2many( + "helpdesk.ticket", "team_id", string="Todo tickets" + ) + todo_ticket_count = fields.Integer( + string="Number of tickets", compute="_compute_todo_tickets" + ) + todo_ticket_count_unassigned = fields.Integer( + string="Number of tickets unassigned", compute="_compute_todo_tickets" + ) + todo_ticket_count_unattended = fields.Integer( + string="Number of tickets unattended", compute="_compute_todo_tickets" + ) + todo_ticket_count_high_priority = fields.Integer( + string="Number of tickets in high priority", + compute="_compute_todo_tickets" + ) + + @api.depends("ticket_ids", "ticket_ids.stage_id") + def _compute_todo_tickets(self): + for record in self: + record.todo_ticket_ids = record.ticket_ids.filtered( + lambda ticket: not ticket.closed + ) + record.todo_ticket_count = len(record.todo_ticket_ids) + record.todo_ticket_count_unassigned = len( + record.todo_ticket_ids.filtered(lambda ticket: not ticket.user_id) + ) + record.todo_ticket_count_unattended = len( + record.todo_ticket_ids.filtered(lambda ticket: ticket.unattended) + ) + record.todo_ticket_count_high_priority = len( + record.todo_ticket_ids.filtered(lambda ticket: ticket.priority == "3") + ) + + def get_alias_model_name(self, vals): + return 'helpdesk.ticket' + + def get_alias_values(self): + values = super(HelpdeskTeam, self).get_alias_values() + values['alias_defaults'] = defaults = safe_eval( + self.alias_defaults or "{}") + defaults['team_id'] = self.id + return values diff --git a/helpdesk_mgmt/models/res_partner.py b/helpdesk_mgmt/models/res_partner.py new file mode 100644 index 0000000000..51cb48f246 --- /dev/null +++ b/helpdesk_mgmt/models/res_partner.py @@ -0,0 +1,47 @@ +from odoo import fields, models + + +class Partner(models.Model): + _inherit = "res.partner" + + helpdesk_ticket_ids = fields.One2many( + comodel_name="helpdesk.ticket", + inverse_name="partner_id", + string="Related tickets", + ) + + helpdesk_ticket_count = fields.Integer( + compute="_compute_helpdesk_ticket_count", string="Ticket count" + ) + + helpdesk_ticket_active_count = fields.Integer( + compute="_compute_helpdesk_ticket_count", string="Ticket active count" + ) + + helpdesk_ticket_count_string = fields.Char( + compute="_compute_helpdesk_ticket_count", string="Tickets" + ) + + def _compute_helpdesk_ticket_count(self): + for record in self: + ticket_ids = self.env["helpdesk.ticket"].search( + [("partner_id", "child_of", record.id)] + ) + record.helpdesk_ticket_count = len(ticket_ids) + record.helpdesk_ticket_active_count = len( + ticket_ids.filtered(lambda ticket: not ticket.stage_id.closed) + ) + count_active = record.helpdesk_ticket_active_count + count = record.helpdesk_ticket_count + record.helpdesk_ticket_count_string = "{} / {}".format(count_active, count) + + def action_view_helpdesk_tickets(self): + return { + "name": self.name, + "view_type": "form", + "view_mode": "tree,form", + "res_model": "helpdesk.ticket", + "type": "ir.actions.act_window", + "domain": [("partner_id", "child_of", self.id)], + "context": self.env.context, + } diff --git a/helpdesk_mgmt/readme/CONFIGURE.rst b/helpdesk_mgmt/readme/CONFIGURE.rst new file mode 100644 index 0000000000..9d5a73211f --- /dev/null +++ b/helpdesk_mgmt/readme/CONFIGURE.rst @@ -0,0 +1,75 @@ +To configure this module, you need to: +#. Edit or create new channels. +#. Edit or create new categories. +#. Edit or create new stages. +#. Edit or create new teams. +#. Edit or create new tags. + +Channels +~~~~~~~~ + +#. Go to *Helpdesk > Configuration > Channels* to edit or create new channels. +#. Edit or create a channel. +#. Set the name for the channel. +#. You can also Activate or Deactivate channels. + +.. figure:: ../static/description/Channels.PNG + :alt: Channels + :width: 600 px + +Categories +~~~~~~~~~~ + +#. Go to *Helpdesk > Configuration > Categories* to edit or create new categories. +#. Edit or create a new category. +#. Set the name for the category. +#. You can also Activate or Deactivate categories. + +.. figure:: ../static/description/Categories.PNG + :alt: Categories + :width: 600 px + +Stages +~~~~~~ + +#. Go to *Helpdesk > Configuration > Stages* to edit or create new stages. +#. Edit or create a new stage. +#. Set the name for the stage. +#. Set the sequence order for the stage. +#. You can select an Email template. +#. Mark the Unattended checkbox if the stage contains unattended tickets. +#. Mark the Closed checkbox if the stage contains closed tickets. +#. You can add a description for the stage. +#. You can also Activate or Deactivate stages. + +.. figure:: ../static/description/Stages.PNG + :alt: Stages + :width: 600 px + +You can also sort the stage sequence if you move up or down the stages in the list view. + +Teams +~~~~~ + +#. Go to *Helpdesk > Configuration > Teams* to edit or create new teams. +#. Edit or create a new team. +#. Set the name for the team. +#. Add the teams members. +#. You can also Activate or Deactivate teams. + +.. figure:: ../static/description/Teams.PNG + :alt: Teams + :width: 600 px + +Tags +~~~~ + +#. Go to *Helpdesk > Configuration > Ticket Tags* to edit or create new tags. +#. Edit or create a new tag. +#. Set the name for the tag. +#. Set the color index for the tag. +#. You can also Activate or Deactivate tags. + +.. figure:: ../static/description/Tags.PNG + :alt: Ticket Tags + :width: 600 px diff --git a/helpdesk_mgmt/readme/CONTRIBUTORS.rst b/helpdesk_mgmt/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..83907fbd04 --- /dev/null +++ b/helpdesk_mgmt/readme/CONTRIBUTORS.rst @@ -0,0 +1,33 @@ +* `Domatix `_: + + * Carlos Martínez + * Catalin Airimitoaie + * Álvaro López + * Samuel Calvo + +* `Adaptive City `_: + + * Aitor Bouzas + +* `SDi Soluciones, S.L. `_: + + * Oscar Soto + * Jorge Luis Quinteros + +* `C2i Change 2 improve `_: + + * Eduardo Magdalena + +* `Factor Libre `_: + + * María Alhambra + * Daniel Cano + +* `Tecnativa `_: + + * Pedro M. Baeza + +* `ID42 Sistemas `_: + + * Marcel Savegnago + * Eduardo Aparício diff --git a/helpdesk_mgmt/readme/DESCRIPTION.rst b/helpdesk_mgmt/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..f613d002ce --- /dev/null +++ b/helpdesk_mgmt/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module adds Helpdesk functionality in Odoo. diff --git a/helpdesk_mgmt/readme/USAGE.rst b/helpdesk_mgmt/readme/USAGE.rst new file mode 100644 index 0000000000..9f22d3ff0e --- /dev/null +++ b/helpdesk_mgmt/readme/USAGE.rst @@ -0,0 +1,22 @@ +#. Go to *Helpdesk* or *Helpdesk > Dashboard* to see the tickets dashboard +#. In the Kanban view, click in the kanban card of a team to see their tickets and create new ones. + +.. figure:: ../static/description/Tickets_Kanban.PNG + :alt: Kanban view + :width: 600 px + +To create a new ticket from the kanban view: + +#. Press *Create* button or click on the plus icon at the top of the column of a stage. +#. Set the name or subject for the ticket. +#. Select the team that will manage the ticket. +#. You can select a user to assign the ticket. +#. Set the priority of the ticket. +#. Select the partner, and you can also set the partner name and email. +#. You can select a category and set tags for the ticket. +#. Add a description. +#. You can also attach files to the ticket. + +.. figure:: ../static/description/Tickets01.PNG + :alt: Create a new ticket + :width: 600 px diff --git a/helpdesk_mgmt/security/helpdesk_security.xml b/helpdesk_mgmt/security/helpdesk_security.xml new file mode 100644 index 0000000000..cb1cc4f666 --- /dev/null +++ b/helpdesk_mgmt/security/helpdesk_security.xml @@ -0,0 +1,94 @@ + + + + + + User: Personal tickets + + + + + + User + + + + + + Helpdesk Manager + + + + + + + + + + + + Personal Tickets + + ['|',('user_id','=',user.id),('user_id','=',False)] + + + + + All Tickets + + [(1,'=',1)] + + + + + + Helpdesk Ticket Company Rule + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + + + Helpdesk Category Company Rule + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + + + Helpdesk Channel Company Rule + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + + + Helpdesk Stage Company Rule + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + + + Helpdesk Tag Company Rule + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + + + Helpdesk Team Company Rule + + + ['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] + + + + + Portal Personal Tickets + + [('message_partner_ids','child_of',[user.commercial_partner_id.id])] + + + + diff --git a/helpdesk_mgmt/security/ir.model.access.csv b/helpdesk_mgmt/security/ir.model.access.csv new file mode 100644 index 0000000000..e9ce03d73a --- /dev/null +++ b/helpdesk_mgmt/security/ir.model.access.csv @@ -0,0 +1,19 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_helpdesk_ticket_manager,helpdesk.ticket.manager,model_helpdesk_ticket,group_helpdesk_manager,1,1,1,1 +access_helpdesk_ticket_user,helpdesk.ticket.user,model_helpdesk_ticket,group_helpdesk_user,1,1,1,0 +access_helpdesk_ticket_user_personal,helpdesk.ticket.user.personal,model_helpdesk_ticket,group_helpdesk_user_own,1,1,1,0 +access_helpdesk_ticket_portal,helpdesk.ticket.portal,model_helpdesk_ticket,base.group_portal,1,0,0,0 +access_helpdesk_ticket_stage_manager,helpdesk.ticket.stage.manager,model_helpdesk_ticket_stage,group_helpdesk_manager,1,1,1,1 +access_helpdesk_ticket_stage_user,helpdesk.ticket.stage.user,model_helpdesk_ticket_stage,base.group_user,1,0,0,0 +access_helpdesk_ticket_stage_portal,helpdesk.ticket.stage.portal,model_helpdesk_ticket_stage,base.group_portal,1,0,0,0 +access_helpdesk_ticket_stage_public,helpdesk.ticket.stage.public,model_helpdesk_ticket_stage,base.group_public,1,1,0,0 +access_helpdesk_ticket_tag_manager,helpdesk.ticket.tag.manager,model_helpdesk_ticket_tag,group_helpdesk_manager,1,1,1,1 +access_helpdesk_ticket_tag_user,helpdesk.ticket.tag.user,model_helpdesk_ticket_tag,base.group_user,1,0,0,0 +access_helpdesk_ticket_team_manager,helpdesk.ticket.team.manager,model_helpdesk_ticket_team,group_helpdesk_manager,1,1,1,1 +access_helpdesk_ticket_team_user,helpdesk.ticket.team.user,model_helpdesk_ticket_team,base.group_user,1,0,0,0 +access_helpdesk_ticket_channel_manager,helpdesk.ticket.channel.manager,model_helpdesk_ticket_channel,group_helpdesk_manager,1,1,1,1 +access_helpdesk_ticket_channel_user,helpdesk.ticket.channel.user,model_helpdesk_ticket_channel,base.group_user,1,0,0,0 +access_helpdesk_ticket_category_manager,helpdesk.ticket.category.manager,model_helpdesk_ticket_category,group_helpdesk_manager,1,1,1,1 +access_helpdesk_ticket_category_user,helpdesk.ticket.category.user,model_helpdesk_ticket_category,base.group_user,1,0,0,0 +access_helpdesk_ticket_category_portal,helpdesk.ticket.category.portal,model_helpdesk_ticket_category,base.group_portal,1,0,0,0 +access_helpdesk_ticket_category_public,helpdesk.ticket.category.public,model_helpdesk_ticket_category,base.group_public,1,0,0,0 diff --git a/helpdesk_mgmt/static/description/Categories.PNG b/helpdesk_mgmt/static/description/Categories.PNG new file mode 100644 index 0000000000..2ec697db5c Binary files /dev/null and b/helpdesk_mgmt/static/description/Categories.PNG differ diff --git a/helpdesk_mgmt/static/description/Channels.PNG b/helpdesk_mgmt/static/description/Channels.PNG new file mode 100644 index 0000000000..9cc63d8601 Binary files /dev/null and b/helpdesk_mgmt/static/description/Channels.PNG differ diff --git a/helpdesk_mgmt/static/description/Stage.PNG b/helpdesk_mgmt/static/description/Stage.PNG new file mode 100644 index 0000000000..b1798eaa95 Binary files /dev/null and b/helpdesk_mgmt/static/description/Stage.PNG differ diff --git a/helpdesk_mgmt/static/description/Tags.PNG b/helpdesk_mgmt/static/description/Tags.PNG new file mode 100644 index 0000000000..8de98101a5 Binary files /dev/null and b/helpdesk_mgmt/static/description/Tags.PNG differ diff --git a/helpdesk_mgmt/static/description/Teams.PNG b/helpdesk_mgmt/static/description/Teams.PNG new file mode 100644 index 0000000000..0a0ae524c8 Binary files /dev/null and b/helpdesk_mgmt/static/description/Teams.PNG differ diff --git a/helpdesk_mgmt/static/description/Tickets01.PNG b/helpdesk_mgmt/static/description/Tickets01.PNG new file mode 100644 index 0000000000..ad5a88b805 Binary files /dev/null and b/helpdesk_mgmt/static/description/Tickets01.PNG differ diff --git a/helpdesk_mgmt/static/description/Tickets02.PNG b/helpdesk_mgmt/static/description/Tickets02.PNG new file mode 100644 index 0000000000..ceff0f5dbf Binary files /dev/null and b/helpdesk_mgmt/static/description/Tickets02.PNG differ diff --git a/helpdesk_mgmt/static/description/Tickets03.PNG b/helpdesk_mgmt/static/description/Tickets03.PNG new file mode 100644 index 0000000000..adb728d498 Binary files /dev/null and b/helpdesk_mgmt/static/description/Tickets03.PNG differ diff --git a/helpdesk_mgmt/static/description/Tickets_Kanban.PNG b/helpdesk_mgmt/static/description/Tickets_Kanban.PNG new file mode 100644 index 0000000000..a194660eb3 Binary files /dev/null and b/helpdesk_mgmt/static/description/Tickets_Kanban.PNG differ diff --git a/helpdesk_mgmt/static/description/helpdesk.svg b/helpdesk_mgmt/static/description/helpdesk.svg new file mode 100644 index 0000000000..3da308d77e --- /dev/null +++ b/helpdesk_mgmt/static/description/helpdesk.svg @@ -0,0 +1,206 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/helpdesk_mgmt/static/description/icon.png b/helpdesk_mgmt/static/description/icon.png new file mode 100755 index 0000000000..414262152f Binary files /dev/null and b/helpdesk_mgmt/static/description/icon.png differ diff --git a/helpdesk_mgmt/static/description/index.html b/helpdesk_mgmt/static/description/index.html new file mode 100644 index 0000000000..84e04d3354 --- /dev/null +++ b/helpdesk_mgmt/static/description/index.html @@ -0,0 +1,573 @@ + + + + + + +Helpdesk Management + + + +
+

Helpdesk Management

+ + +

Alpha License: AGPL-3 OCA/helpdesk Translate me on Weblate Try me on Runbot

+

This module adds Helpdesk functionality in Odoo.

+
+

Important

+

This is an alpha version, the data model and design can change at any time without warning. +Only for development or testing purpose, do not use in production. +More details on development status

+
+

Table of contents

+ +
+

Configuration

+

To configure this module, you need to: +#. Edit or create new channels. +#. Edit or create new categories. +#. Edit or create new stages. +#. Edit or create new teams. +#. Edit or create new tags.

+
+

Channels

+
    +
  1. Go to Helpdesk > Configuration > Channels to edit or create new channels.
  2. +
  3. Edit or create a channel.
  4. +
  5. Set the name for the channel.
  6. +
  7. You can also Activate or Deactivate channels.
  8. +
+
+Channels +
+
+
+

Categories

+
    +
  1. Go to Helpdesk > Configuration > Categories to edit or create new categories.
  2. +
  3. Edit or create a new category.
  4. +
  5. Set the name for the category.
  6. +
  7. You can also Activate or Deactivate categories.
  8. +
+
+Categories +
+
+
+

Stages

+
    +
  1. Go to Helpdesk > Configuration > Stages to edit or create new stages.
  2. +
  3. Edit or create a new stage.
  4. +
  5. Set the name for the stage.
  6. +
  7. Set the sequence order for the stage.
  8. +
  9. You can select an Email template.
  10. +
  11. Mark the Unattended checkbox if the stage contains unattended tickets.
  12. +
  13. Mark the Closed checkbox if the stage contains closed tickets.
  14. +
  15. You can add a description for the stage.
  16. +
  17. You can also Activate or Deactivate stages.
  18. +
+
+Stages +
+

You can also sort the stage sequence if you move up or down the stages in the list view.

+
+
+

Teams

+
    +
  1. Go to Helpdesk > Configuration > Teams to edit or create new teams.
  2. +
  3. Edit or create a new team.
  4. +
  5. Set the name for the team.
  6. +
  7. Add the teams members.
  8. +
  9. You can also Activate or Deactivate teams.
  10. +
+
+Teams +
+
+
+

Tags

+
    +
  1. Go to Helpdesk > Configuration > Ticket Tags to edit or create new tags.
  2. +
  3. Edit or create a new tag.
  4. +
  5. Set the name for the tag.
  6. +
  7. Set the color index for the tag.
  8. +
  9. You can also Activate or Deactivate tags.
  10. +
+
+Ticket Tags +
+
+
+
+

Usage

+
    +
  1. Go to Helpdesk or Helpdesk > Dashboard to see the tickets dashboard
  2. +
  3. In the Kanban view, click in the kanban card of a team to see their tickets and create new ones.
  4. +
+
+Kanban view +
+

To create a new ticket from the kanban view:

+
    +
  1. Press Create button or click on the plus icon at the top of the column of a stage.
  2. +
  3. Set the name or subject for the ticket.
  4. +
  5. Select the team that will manage the ticket.
  6. +
  7. You can select a user to assign the ticket.
  8. +
  9. Set the priority of the ticket.
  10. +
  11. Select the partner, and you can also set the partner name and email.
  12. +
  13. You can select a category and set tags for the ticket.
  14. +
  15. Add a description.
  16. +
  17. You can also attach files to the ticket.
  18. +
+
+Create a new ticket +
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +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.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • AdaptiveCity
  • +
  • C2i Change 2 Improve
  • +
  • Domatix
  • +
  • Factor Libre
  • +
  • SDi Soluciones
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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/helpdesk project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/helpdesk_mgmt/tests/__init__.py b/helpdesk_mgmt/tests/__init__.py new file mode 100644 index 0000000000..a9c3be8140 --- /dev/null +++ b/helpdesk_mgmt/tests/__init__.py @@ -0,0 +1,3 @@ +from . import test_helpdesk_ticket +from . import test_helpdesk_ticket_team +from . import test_res_partner diff --git a/helpdesk_mgmt/tests/test_helpdesk_ticket.py b/helpdesk_mgmt/tests/test_helpdesk_ticket.py new file mode 100644 index 0000000000..6daafa6b4a --- /dev/null +++ b/helpdesk_mgmt/tests/test_helpdesk_ticket.py @@ -0,0 +1,72 @@ +import time + +from odoo.tests import common + + +class TestHelpdeskTicket(common.SavepointCase): + @classmethod + def setUpClass(cls): + super(TestHelpdeskTicket, cls).setUpClass() + helpdesk_ticket = cls.env["helpdesk.ticket"] + cls.user_admin = cls.env.ref("base.user_root") + cls.user_demo = cls.env.ref("base.user_demo") + cls.stage_closed = cls.env.ref("helpdesk_mgmt.helpdesk_ticket_stage_done") + + cls.ticket = helpdesk_ticket.create( + {"name": "Test 1", "description": "Ticket test"} + ) + + def test_helpdesk_ticket_datetimes(self): + old_stage_update = self.ticket.last_stage_update + + self.assertTrue( + self.ticket.last_stage_update, + "Helpdesk Ticket: Helpdesk ticket should " + "have a last_stage_update at all times.", + ) + + self.assertFalse( + self.ticket.closed_date, + "Helpdesk Ticket: No closed date " + "should be set for a non closed " + "ticket.", + ) + + time.sleep(1) + + self.ticket.write({"stage_id": self.stage_closed.id}) + + self.assertTrue( + self.ticket.closed_date, + "Helpdesk Ticket: A closed ticket " "should have a closed_date value.", + ) + self.assertTrue( + old_stage_update < self.ticket.last_stage_update, + "Helpdesk Ticket: The last_stage_update " + "should be updated at every stage_id " + "change.", + ) + + self.ticket.write({"user_id": self.user_admin.id}) + self.assertTrue( + self.ticket.assigned_date, + "Helpdesk Ticket: An assigned ticket " "should contain a assigned_date.", + ) + + def test_helpdesk_ticket_number(self): + self.assertNotEquals( + self.ticket.number, + "/", + "Helpdesk Ticket: A ticket should have " "a number.", + ) + + def test_helpdesk_ticket_copy(self): + old_ticket_number = self.ticket.number + + copy_ticket_number = self.ticket.copy().number + + self.assertTrue( + copy_ticket_number != "/" and old_ticket_number != copy_ticket_number, + "Helpdesk Ticket: A new ticket can not " + "have the same number than the origin ticket.", + ) diff --git a/helpdesk_mgmt/tests/test_helpdesk_ticket_team.py b/helpdesk_mgmt/tests/test_helpdesk_ticket_team.py new file mode 100644 index 0000000000..184bca15c9 --- /dev/null +++ b/helpdesk_mgmt/tests/test_helpdesk_ticket_team.py @@ -0,0 +1,69 @@ +from odoo.tests import common + + +class TestHelpdeskTicketTeam(common.SavepointCase): + @classmethod + def setUpClass(cls): + super(TestHelpdeskTicketTeam, cls).setUpClass() + helpdesk_ticket = cls.env["helpdesk.ticket"] + helpdesk_ticket_team = cls.env["helpdesk.ticket.team"] + cls.user_demo = cls.env.ref("base.user_demo") + cls.stage_closed = cls.env.ref("helpdesk_mgmt.helpdesk_ticket_stage_done") + cls.team_id = helpdesk_ticket_team.create({"name": "Team 1"}) + cls.helpdesk_ticket_1 = helpdesk_ticket.create( + { + "name": "Ticket 1", + "description": "Description", + "team_id": cls.team_id.id, + "priority": "3", + } + ) + cls.helpdesk_ticket_2 = helpdesk_ticket.create( + { + "name": "Ticket 2", + "description": "Description", + "team_id": cls.team_id.id, + "user_id": cls.user_demo.id, + "priority": "1", + } + ) + + def test_helpdesk_ticket_todo(self): + self.assertEqual( + self.team_id.todo_ticket_count, + 2, + "Helpdesk Ticket: Helpdesk ticket team should " "have two tickets to do.", + ) + self.assertEqual( + self.team_id.todo_ticket_count_unassigned, + 1, + "Helpdesk Ticket: Helpdesk ticket team should " + "have one tickets unassigned.", + ) + self.assertEqual( + self.team_id.todo_ticket_count_high_priority, + 1, + "Helpdesk Ticket: Helpdesk ticket team should " + "have two tickets with high priority.", + ) + self.assertEqual( + self.team_id.todo_ticket_count_unattended, + 2, + "Helpdesk Ticket: Helpdesk ticket team should " + "have two tickets unattended.", + ) + + self.helpdesk_ticket_1.write({"stage_id": self.stage_closed.id}) + + self.assertEqual( + self.team_id.todo_ticket_count_unattended, + 1, + "Helpdesk Ticket: Helpdesk ticket team should " + "have one ticket unattended.", + ) + + self.assertEqual( + self.team_id.todo_ticket_count, + 1, + "Helpdesk Ticket: Helpdesk ticket team should " "have one ticket to do.", + ) diff --git a/helpdesk_mgmt/tests/test_res_partner.py b/helpdesk_mgmt/tests/test_res_partner.py new file mode 100644 index 0000000000..f5c6c2f452 --- /dev/null +++ b/helpdesk_mgmt/tests/test_res_partner.py @@ -0,0 +1,43 @@ +from odoo.tests.common import SavepointCase + + +class TestPartner(SavepointCase): + def setUp(self): + super(TestPartner, self).setUp() + self.partner_obj = self.env["res.partner"] + self.ticket_obj = self.env["helpdesk.ticket"] + self.stage_id_closed = self.env.ref("helpdesk_mgmt.helpdesk_ticket_stage_done") + self.parent_id = self.partner_obj.create({"name": "Parent 1"}) + self.child_id_1 = self.partner_obj.create({"name": "Child 1"}) + self.child_id_2 = self.partner_obj.create({"name": "Child 2"}) + self.child_id_3 = self.partner_obj.create({"name": "Child 3"}) + self.tickets = [] + self.parent_id.child_ids = [ + (4, self.child_id_1.id), + (4, self.child_id_2.id), + (4, self.child_id_3.id), + ] + for i in [69, 155, 314, 420]: + self.tickets.append( + self.ticket_obj.create( + { + "name": "Nice ticket {}".format(i), + "description": "Nice ticket {} description".format(i), + } + ) + ) + self.parent_id.helpdesk_ticket_ids = [(4, self.tickets[0].id)] + self.child_id_1.helpdesk_ticket_ids = [(4, self.tickets[1].id)] + self.child_id_2.helpdesk_ticket_ids = [(4, self.tickets[2].id)] + self.child_id_3.helpdesk_ticket_ids = [(4, self.tickets[3].id)] + self.child_id_3.helpdesk_ticket_ids[-1].stage_id = self.stage_id_closed + + def test_ticket_count(self): + self.assertEqual(self.parent_id.helpdesk_ticket_count, 4) + + def test_ticket_active_count(self): + self.assertEqual(self.parent_id.helpdesk_ticket_active_count, 3) + + def test_ticket_string(self): + + self.assertEqual(self.parent_id.helpdesk_ticket_count_string, "3 / 4") diff --git a/helpdesk_mgmt/views/helpdesk_dashboard_view.xml b/helpdesk_mgmt/views/helpdesk_dashboard_view.xml new file mode 100644 index 0000000000..fcdddbfd30 --- /dev/null +++ b/helpdesk_mgmt/views/helpdesk_dashboard_view.xml @@ -0,0 +1,96 @@ + + + + + helpdesk.ticket.team.kanban + helpdesk.ticket.team + + + + + + + + + + + +
+
+
+ +
+
+ +
+
+
+
+ +
+
+
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+
+
+ +
+
+
+
+
+
+
+
diff --git a/helpdesk_mgmt/views/helpdesk_ticket_category_view.xml b/helpdesk_mgmt/views/helpdesk_ticket_category_view.xml new file mode 100644 index 0000000000..992000ae38 --- /dev/null +++ b/helpdesk_mgmt/views/helpdesk_ticket_category_view.xml @@ -0,0 +1,51 @@ + + + + + helpdesk.ticket.category.search + helpdesk.ticket.category + + + + + + + + + + + view.helpdesk_category.form + helpdesk.ticket.category + +
+
+
+ +
+ +
+
+
+ + + +
+
+
+
+ + + view.helpdesk_category.tree + helpdesk.ticket.category + + + + + + + +
diff --git a/helpdesk_mgmt/views/helpdesk_ticket_channel_view.xml b/helpdesk_mgmt/views/helpdesk_ticket_channel_view.xml new file mode 100644 index 0000000000..1279a00f13 --- /dev/null +++ b/helpdesk_mgmt/views/helpdesk_ticket_channel_view.xml @@ -0,0 +1,51 @@ + + + + + helpdesk.ticket.channel.search + helpdesk.ticket.channel + + + + + + + + + + + view.helpdesk_channel.form + helpdesk.ticket.channel + +
+
+
+ +
+ +
+
+
+ + + +
+
+
+
+ + + view.helpdesk_channel.tree + helpdesk.ticket.channel + + + + + + + +
diff --git a/helpdesk_mgmt/views/helpdesk_ticket_menu.xml b/helpdesk_mgmt/views/helpdesk_ticket_menu.xml new file mode 100644 index 0000000000..9a55163284 --- /dev/null +++ b/helpdesk_mgmt/views/helpdesk_ticket_menu.xml @@ -0,0 +1,113 @@ + + + + + + + Dashboard + ir.actions.act_window + helpdesk.ticket.team + kanban,tree,form,pivot + + + + Tickets + ir.actions.act_window + helpdesk.ticket + tree,kanban,form,pivot + + + + Reporting + ir.actions.act_window + helpdesk.ticket + pivot,graph + + + + Channels + ir.actions.act_window + helpdesk.ticket.channel + tree,form + + + + Categories + ir.actions.act_window + helpdesk.ticket.category + tree,form + + + + Teams + ir.actions.act_window + helpdesk.ticket.team + tree,form + + + + Stages + ir.actions.act_window + helpdesk.ticket.stage + tree,form + + + + Ticket Tags + ir.actions.act_window + helpdesk.ticket.tag + tree,form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/helpdesk_mgmt/views/helpdesk_ticket_stage_view.xml b/helpdesk_mgmt/views/helpdesk_ticket_stage_view.xml new file mode 100644 index 0000000000..8e2ee07377 --- /dev/null +++ b/helpdesk_mgmt/views/helpdesk_ticket_stage_view.xml @@ -0,0 +1,62 @@ + + + + + helpdesk.ticket.stage.search + helpdesk.ticket.stage + + + + + + + + + + + helpdesk.ticket.stage.form + helpdesk.ticket.stage + +
+
+
+ +
+ +
+
+
+ + + + + + + + + + + + +
+
+
+
+ + + helpdesk.ticket.stage.tree + helpdesk.ticket.stage + + + + + + + + + +
diff --git a/helpdesk_mgmt/views/helpdesk_ticket_tag_view.xml b/helpdesk_mgmt/views/helpdesk_ticket_tag_view.xml new file mode 100644 index 0000000000..16e6b43541 --- /dev/null +++ b/helpdesk_mgmt/views/helpdesk_ticket_tag_view.xml @@ -0,0 +1,49 @@ + + + + helpdesk.ticket.tag.search + helpdesk.ticket.tag + + + + + + + + + + helpdesk.ticket.tag.form + helpdesk.ticket.tag + +
+
+
+ +
+ +
+
+
+ + + +
+
+
+
+ + helpdesk.ticket.tag.tree + helpdesk.ticket.tag + + + + + + +
diff --git a/helpdesk_mgmt/views/helpdesk_ticket_team_view.xml b/helpdesk_mgmt/views/helpdesk_ticket_team_view.xml new file mode 100644 index 0000000000..e52ddfec97 --- /dev/null +++ b/helpdesk_mgmt/views/helpdesk_ticket_team_view.xml @@ -0,0 +1,94 @@ + + + + + helpdesk.ticket.team.search + helpdesk.ticket.team + + + + + + + + + + + + view.helpdesk_team.form + helpdesk.ticket.team + +
+ +
+ +
+