From e67936c2f1677a487f28ec2e584894da731e7852 Mon Sep 17 00:00:00 2001 From: hparfr Date: Mon, 22 Feb 2021 22:53:19 +0100 Subject: [PATCH 01/22] fieldservice_calendar: add module --- fieldservice_calendar/README.rst | 87 ++++ fieldservice_calendar/__init__.py | 1 + fieldservice_calendar/__manifest__.py | 24 + .../i18n/fieldservice_calendar.pot | 74 +++ fieldservice_calendar/models/__init__.py | 3 + fieldservice_calendar/models/calendar.py | 52 +++ fieldservice_calendar/models/fsm_order.py | 116 +++++ fieldservice_calendar/models/fsm_team.py | 14 + fieldservice_calendar/readme/CONFIGURE.rst | 2 + fieldservice_calendar/readme/CONTRIBUTORS.rst | 1 + fieldservice_calendar/readme/DESCRIPTION.rst | 1 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 427 ++++++++++++++++++ fieldservice_calendar/tests/__init__.py | 1 + .../tests/test_fsm_calendar.py | 93 ++++ fieldservice_calendar/views/fsm_order.xml | 12 + fieldservice_calendar/views/fsm_team.xml | 13 + 17 files changed, 921 insertions(+) create mode 100644 fieldservice_calendar/README.rst create mode 100644 fieldservice_calendar/__init__.py create mode 100644 fieldservice_calendar/__manifest__.py create mode 100644 fieldservice_calendar/i18n/fieldservice_calendar.pot create mode 100644 fieldservice_calendar/models/__init__.py create mode 100644 fieldservice_calendar/models/calendar.py create mode 100644 fieldservice_calendar/models/fsm_order.py create mode 100644 fieldservice_calendar/models/fsm_team.py create mode 100644 fieldservice_calendar/readme/CONFIGURE.rst create mode 100644 fieldservice_calendar/readme/CONTRIBUTORS.rst create mode 100644 fieldservice_calendar/readme/DESCRIPTION.rst create mode 100644 fieldservice_calendar/static/description/icon.png create mode 100644 fieldservice_calendar/static/description/index.html create mode 100644 fieldservice_calendar/tests/__init__.py create mode 100644 fieldservice_calendar/tests/test_fsm_calendar.py create mode 100644 fieldservice_calendar/views/fsm_order.xml create mode 100644 fieldservice_calendar/views/fsm_team.xml diff --git a/fieldservice_calendar/README.rst b/fieldservice_calendar/README.rst new file mode 100644 index 0000000000..3c27e3c8d2 --- /dev/null +++ b/fieldservice_calendar/README.rst @@ -0,0 +1,87 @@ +======================== +Field Service - Calendar +======================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Ffield--service-lightgray.png?logo=github + :target: https://github.com/OCA/field-service/tree/14.0/fieldservice_calendar + :alt: OCA/field-service +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/field-service-14-0/field-service-14-0-fieldservice_calendar + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/264/14.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This modules creates calendar event from FSM Orders. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +A "calendar" user should be set on FSM Team. Events will be added to his calendar. +Then the FSM Order' person_id (worker) will be an attendee of the calendar's event (Meeting). + +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 +~~~~~~~ + +* Akretion + +Contributors +~~~~~~~~~~~~ + +* Raphaël Reverdy + +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. + +.. |maintainer-hparfr| image:: https://github.com/hparfr.png?size=40px + :target: https://github.com/hparfr + :alt: hparfr + +Current `maintainer `__: + +|maintainer-hparfr| + +This module is part of the `OCA/field-service `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/fieldservice_calendar/__init__.py b/fieldservice_calendar/__init__.py new file mode 100644 index 0000000000..0650744f6b --- /dev/null +++ b/fieldservice_calendar/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/fieldservice_calendar/__manifest__.py b/fieldservice_calendar/__manifest__.py new file mode 100644 index 0000000000..f8f40033a4 --- /dev/null +++ b/fieldservice_calendar/__manifest__.py @@ -0,0 +1,24 @@ +# Copyright (C) 2021 Raphaël Reverdy +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ + "name": "Field Service - Calendar", + "summary": "Add calendar to FSM Orders", + "author": "Akretion, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/field-service", + "category": "Field Service", + "license": "AGPL-3", + "version": "14.0.1.0.0", + "depends": [ + "calendar", + "fieldservice", + ], + "data": [ + "views/fsm_order.xml", + "views/fsm_team.xml", + ], + "installable": True, + "development_status": "Beta", + "maintainers": [ + "hparfr", + ], +} diff --git a/fieldservice_calendar/i18n/fieldservice_calendar.pot b/fieldservice_calendar/i18n/fieldservice_calendar.pot new file mode 100644 index 0000000000..98c29a78ce --- /dev/null +++ b/fieldservice_calendar/i18n/fieldservice_calendar.pot @@ -0,0 +1,74 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fieldservice_calendar +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.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: fieldservice_calendar +#: model:ir.model,name:fieldservice_calendar.model_calendar_event +msgid "Calendar Event" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__display_name +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__display_name +msgid "Display Name" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model,name:fieldservice_calendar.model_fsm_order +msgid "Field Service Order" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model,name:fieldservice_calendar.model_fsm_team +msgid "Field Service Team" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__id +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__id +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__id +msgid "ID" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event____last_update +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order____last_update +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team____last_update +msgid "Last Modified on" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__calendar_event_id +msgid "Meeting" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__display_name +msgid "Order" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__fsm_order_id +msgid "Order id" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,help:fieldservice_calendar.field_fsm_team__calendar_user_id +msgid "Responsible for orders's calendar" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__calendar_user_id +msgid "Team's calendar" +msgstr "" diff --git a/fieldservice_calendar/models/__init__.py b/fieldservice_calendar/models/__init__.py new file mode 100644 index 0000000000..8ba83cde4d --- /dev/null +++ b/fieldservice_calendar/models/__init__.py @@ -0,0 +1,3 @@ +from . import calendar +from . import fsm_order +from . import fsm_team diff --git a/fieldservice_calendar/models/calendar.py b/fieldservice_calendar/models/calendar.py new file mode 100644 index 0000000000..ec7d2866d9 --- /dev/null +++ b/fieldservice_calendar/models/calendar.py @@ -0,0 +1,52 @@ +# Copyright (C) 2021 Raphaël Reverdy +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class Meeting(models.Model): + _inherit = "calendar.event" + + fsm_order_id = fields.One2many( + string="Order id", + comodel_name="fsm.order", + inverse_name="calendar_event_id", + ) + + def _update_fsm_order_date(self): + self.ensure_one() + if self._context.get("recurse_order_calendar"): + # avoid recursion + return + to_apply = {} + to_apply["scheduled_date_start"] = self.start + to_apply["scheduled_duration"] = self.duration + self.fsm_order_id.with_context(recurse_order_calendar=True).write(to_apply) + + def _update_fsm_assigned(self): + # update back fsm_order when an attenndee is member of a team + self.ensure_one() + if self._context.get("recurse_order_calendar"): + # avoid recursion + return + person_id = None + for partner in self.partner_ids: + if partner.fsm_person: + person_id = ( + self.env["fsm.person"] + .search([["partner_id", "=", partner.id]], limit=1) + .id + ) + break + self.fsm_order_id.with_context(recurse_order_calendar=True).write( + {"person_id": person_id} + ) + + def write(self, values): + res = super().write(values) + if self.fsm_order_id: + if "start" in values or "duration" in values: + self._update_fsm_order_date() + if "partner_ids" in values: + self._update_fsm_assigned() + return res diff --git a/fieldservice_calendar/models/fsm_order.py b/fieldservice_calendar/models/fsm_order.py new file mode 100644 index 0000000000..6ec6c9f74c --- /dev/null +++ b/fieldservice_calendar/models/fsm_order.py @@ -0,0 +1,116 @@ +# Copyright (C) 2021 Raphaël Reverdy +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class FSMOrder(models.Model): + _inherit = "fsm.order" + + calendar_event_id = fields.Many2one( + "calendar.event", + string="Meeting", + readonly=True, + ) + + @api.model_create_multi + def create(self, vals_list): + res = super().create(vals_list) + res._create_calendar_event() + return res + + def _create_calendar_event(self): + """ Create entry in calendar of the team""" + for order in self._should_have_calendar_event(): + order.calendar_event_id = ( + self.env["calendar.event"] + .with_context(no_mail_to_attendees=True) + .create(order._prepare_calendar_event()) + ) + + def _should_have_calendar_event(self): + return self.filtered("team_id.calendar_user_id").filtered( + "scheduled_date_start" + ) + + def _prepare_calendar_event(self): + model_id = self.env.ref("fieldservice.model_fsm_order").id + vals = { + "name": self.name, + "description": self.description, + "start": self.scheduled_date_start, + "stop": self.scheduled_date_end, + "allday": False, + "res_model_id": model_id, # link back with "Document" button + "res_id": self.id, # link back with "Document" button + "location": self._serialize_location(), + "user_id": self.team_id.calendar_user_id.id, + } + vals["partner_ids"] = [(4, self.team_id.calendar_user_id.partner_id.id, False)] + # we let calendar_user has a partner_ids in order + # to have the meeting in the team's calendar + return vals + + def write(self, vals): + old_persons = {} + for rec in self: + old_persons[rec.id] = rec.person_id + res = super().write(vals) + to_update = self.create_or_delete_calendar() + with_calendar = to_update.filtered("calendar_event_id") + if "scheduled_date_start" in vals or "scheduled_date_end" in vals: + with_calendar.update_calendar_date(vals) + if "location_id" in vals: + with_calendar.update_calendar_location() + if "person_id" in vals: + with_calendar.update_calendar_person(old_persons) + return res + + def unlink(self): + self._rm_calendar_event() + return super().unlink() + + def create_or_delete_calendar(self): + to_update = self._should_have_calendar_event() + to_rm = self - to_update + to_create = to_update.filtered(lambda x: x.calendar_event_id.id is False) + to_create._create_calendar_event() + to_rm._rm_calendar_event() + return to_update + + def _rm_calendar_event(self): + # it can be archived instead if desired + self.calendar_event_id.unlink() + + def update_calendar_date(self, vals): + if self._context.get("recurse_order_calendar"): + # avoid recursion + return + to_apply = {} + to_apply["start"] = self.scheduled_date_start + to_apply["stop"] = self.scheduled_date_end + # always write start and stop in order to calc duration + self.mapped("calendar_event_id").with_context( + recurse_order_calendar=True + ).write(to_apply) + + def update_calendar_location(self): + for rec in self: + rec.calendar_event_id.location = rec._serialize_location() + + def _serialize_location(self): + partner_id = self.location_id.partner_id + return f"{partner_id.name} {partner_id._display_address()}" + + def update_calendar_person(self, old_persons): + if self._context.get("recurse_order_calendar"): + # avoid recursion + return + for rec in self: + with_ctx = rec.calendar_event_id.with_context(recurse_order_calendar=True) + if old_persons.get(rec.id): + # remove buddy + with_ctx.partner_ids = [(3, old_persons[rec.id].partner_id.id, False)] + if rec.person_id: + # add the new one + with_ctx.partner_ids = [(4, rec.person_id.partner_id.id, False)] diff --git a/fieldservice_calendar/models/fsm_team.py b/fieldservice_calendar/models/fsm_team.py new file mode 100644 index 0000000000..7099726a29 --- /dev/null +++ b/fieldservice_calendar/models/fsm_team.py @@ -0,0 +1,14 @@ +# Copyright (C) 2021 Raphaël Reverdy +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class FSMTeam(models.Model): + _inherit = "fsm.team" + + calendar_user_id = fields.Many2one( + "res.users", + string="Team's calendar", + help="Responsible for orders's calendar", + ) diff --git a/fieldservice_calendar/readme/CONFIGURE.rst b/fieldservice_calendar/readme/CONFIGURE.rst new file mode 100644 index 0000000000..035a718f5e --- /dev/null +++ b/fieldservice_calendar/readme/CONFIGURE.rst @@ -0,0 +1,2 @@ +A "calendar" user should be set on FSM Team. Events will be added to his calendar. +Then the FSM Order' person_id (worker) will be an attendee of the calendar's event (Meeting). diff --git a/fieldservice_calendar/readme/CONTRIBUTORS.rst b/fieldservice_calendar/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..dc3bfce89c --- /dev/null +++ b/fieldservice_calendar/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Raphaël Reverdy diff --git a/fieldservice_calendar/readme/DESCRIPTION.rst b/fieldservice_calendar/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..20114c8d1e --- /dev/null +++ b/fieldservice_calendar/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This modules creates calendar event from FSM Orders. diff --git a/fieldservice_calendar/static/description/icon.png b/fieldservice_calendar/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/fieldservice_calendar/static/description/index.html b/fieldservice_calendar/static/description/index.html new file mode 100644 index 0000000000..d0b2f0f380 --- /dev/null +++ b/fieldservice_calendar/static/description/index.html @@ -0,0 +1,427 @@ + + + + + + +Field Service - Calendar + + + +
+

Field Service - Calendar

+ + +

Beta License: AGPL-3 OCA/field-service Translate me on Weblate Try me on Runbot

+

This modules creates calendar event from FSM Orders.

+

Table of contents

+ +
+

Configuration

+

A “calendar” user should be set on FSM Team. Events will be added to his calendar. +Then the FSM Order’ person_id (worker) will be an attendee of the calendar’s event (Meeting).

+
+
+

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

+
    +
  • Akretion
  • +
+
+
+

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.

+

Current maintainer:

+

hparfr

+

This module is part of the OCA/field-service project on GitHub.

+

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

+
+
+
+ + diff --git a/fieldservice_calendar/tests/__init__.py b/fieldservice_calendar/tests/__init__.py new file mode 100644 index 0000000000..2c306eb150 --- /dev/null +++ b/fieldservice_calendar/tests/__init__.py @@ -0,0 +1 @@ +from . import test_fsm_calendar diff --git a/fieldservice_calendar/tests/test_fsm_calendar.py b/fieldservice_calendar/tests/test_fsm_calendar.py new file mode 100644 index 0000000000..f848c1a8cc --- /dev/null +++ b/fieldservice_calendar/tests/test_fsm_calendar.py @@ -0,0 +1,93 @@ +# Copyright (C) 2021 Raphaël Reverdy +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields +from odoo.tests.common import TransactionCase + + +class TestFSMOrder(TransactionCase): + def setUp(self): + super(TestFSMOrder, self).setUp() + self.Order = self.env["fsm.order"] + self.test_location = self.env.ref("fieldservice.test_location") + self.team = self.Order._default_team_id() + self.team.calendar_user_id = self.env.ref("base.partner_root").id + self.person_id = self.env.ref("fieldservice.person_2") + self.person_id3 = self.env.ref("fieldservice.person_3") + + def test_fsm_order_no_duration(self): + new = self.Order.create( + { + "location_id": self.test_location.id, + # no duration = no calendar + } + ) + evt = new.calendar_event_id + self.assertFalse(evt.exists()) + + def test_fsm_order_no_calendar_user(self): + self.team.calendar_user_id = False + # no calendar user_id = no calendar event + new = self.Order.create( + { + "location_id": self.test_location.id, + "scheduled_date_start": fields.Datetime.today(), + "scheduled_duration": 2, + } + ) + evt = new.calendar_event_id + self.assertFalse(evt.exists()) + self.team.calendar_user_id = self.env.ref("base.partner_root").id + + # update order + new.scheduled_duration = 3 + evt = new.calendar_event_id + self.assertTrue(evt.exists()) + + # ensure deletion + new.scheduled_date_start = False + evt = new.calendar_event_id + self.assertFalse(evt.exists()) + + def test_fsm_order_unlink(self): + # Create an Orders + new = self.Order.create( + { + "location_id": self.test_location.id, + "scheduled_date_start": fields.Datetime.today(), + "scheduled_duration": 2, + } + ) + evt = new.calendar_event_id + self.assertTrue(evt.exists()) + + # delete the order + new.unlink() + # ensure the evt is deleted + # this test may fail if another module + # archive instead of unlink (like gcalendar) + self.assertFalse(evt.exists()) + + def test_fsm_order_ensure_attendee(self): + # Create an Orders + new = self.Order.create( + { + "location_id": self.test_location.id, + "scheduled_date_start": fields.Datetime.today(), + "scheduled_duration": 2, + } + ) + evt = new.calendar_event_id + + self.assertTrue( + len(evt.partner_ids) == 1, + "There should be no other attendees" " because there is no one assigned", + ) + # organiser is attendee + new.person_id = self.person_id + self.assertTrue(self.person_id.partner_id in evt.partner_ids) + new.person_id = self.person_id3 + self.assertTrue(self.person_id3.partner_id in evt.partner_ids) + self.assertTrue( + len(evt.partner_ids) == 2, "Not workers should be removed from attendees" + ) diff --git a/fieldservice_calendar/views/fsm_order.xml b/fieldservice_calendar/views/fsm_order.xml new file mode 100644 index 0000000000..4246e7cb71 --- /dev/null +++ b/fieldservice_calendar/views/fsm_order.xml @@ -0,0 +1,12 @@ + + + + fsm.order + + + + + + + + diff --git a/fieldservice_calendar/views/fsm_team.xml b/fieldservice_calendar/views/fsm_team.xml new file mode 100644 index 0000000000..30a14d6bfe --- /dev/null +++ b/fieldservice_calendar/views/fsm_team.xml @@ -0,0 +1,13 @@ + + + + fsm.team.form + fsm.team + + + + + + + + From 6f86c41d668191d8c92a8955a85ad6185cc1a5a1 Mon Sep 17 00:00:00 2001 From: Ignacio Buioli Date: Sun, 3 Oct 2021 18:32:44 +0000 Subject: [PATCH 02/22] Added translation using Weblate (Spanish (Argentina)) --- fieldservice_calendar/i18n/es_AR.po | 75 +++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 fieldservice_calendar/i18n/es_AR.po diff --git a/fieldservice_calendar/i18n/es_AR.po b/fieldservice_calendar/i18n/es_AR.po new file mode 100644 index 0000000000..68791870ee --- /dev/null +++ b/fieldservice_calendar/i18n/es_AR.po @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fieldservice_calendar +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: es_AR\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" + +#. module: fieldservice_calendar +#: model:ir.model,name:fieldservice_calendar.model_calendar_event +msgid "Calendar Event" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__display_name +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__display_name +msgid "Display Name" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model,name:fieldservice_calendar.model_fsm_order +msgid "Field Service Order" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model,name:fieldservice_calendar.model_fsm_team +msgid "Field Service Team" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__id +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__id +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__id +msgid "ID" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event____last_update +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order____last_update +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team____last_update +msgid "Last Modified on" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__calendar_event_id +msgid "Meeting" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__display_name +msgid "Order" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__fsm_order_id +msgid "Order id" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,help:fieldservice_calendar.field_fsm_team__calendar_user_id +msgid "Responsible for orders's calendar" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__calendar_user_id +msgid "Team's calendar" +msgstr "" From 279583a2dd0f5f34b249c97f9a874670a6828cd0 Mon Sep 17 00:00:00 2001 From: Ignacio Buioli Date: Sun, 3 Oct 2021 18:47:56 +0000 Subject: [PATCH 03/22] Translated using Weblate (Spanish (Argentina)) Currently translated at 100.0% (11 of 11 strings) Translation: field-service-14.0/field-service-14.0-fieldservice_calendar Translate-URL: https://translation.odoo-community.org/projects/field-service-14-0/field-service-14-0-fieldservice_calendar/es_AR/ --- fieldservice_calendar/i18n/es_AR.po | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/fieldservice_calendar/i18n/es_AR.po b/fieldservice_calendar/i18n/es_AR.po index 68791870ee..c7bb782ef8 100644 --- a/fieldservice_calendar/i18n/es_AR.po +++ b/fieldservice_calendar/i18n/es_AR.po @@ -6,70 +6,72 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2021-10-03 21:34+0000\n" +"Last-Translator: Ignacio Buioli \n" "Language-Team: none\n" "Language: es_AR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.3.2\n" #. module: fieldservice_calendar #: model:ir.model,name:fieldservice_calendar.model_calendar_event msgid "Calendar Event" -msgstr "" +msgstr "Evento de Calendario" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__display_name #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__display_name msgid "Display Name" -msgstr "" +msgstr "Mostrar Nombre" #. module: fieldservice_calendar #: model:ir.model,name:fieldservice_calendar.model_fsm_order msgid "Field Service Order" -msgstr "" +msgstr "Pedido de Servicio de Campo" #. module: fieldservice_calendar #: model:ir.model,name:fieldservice_calendar.model_fsm_team msgid "Field Service Team" -msgstr "" +msgstr "Equipo de Servicio de Campo" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__id #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__id #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__id msgid "ID" -msgstr "" +msgstr "ID" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event____last_update #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order____last_update #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team____last_update msgid "Last Modified on" -msgstr "" +msgstr "Última Modificación el" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__calendar_event_id msgid "Meeting" -msgstr "" +msgstr "Reunión" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__display_name msgid "Order" -msgstr "" +msgstr "Pedido" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__fsm_order_id msgid "Order id" -msgstr "" +msgstr "ID del Pedido" #. module: fieldservice_calendar #: model:ir.model.fields,help:fieldservice_calendar.field_fsm_team__calendar_user_id msgid "Responsible for orders's calendar" -msgstr "" +msgstr "Responsable del calendario de pedidos" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__calendar_user_id msgid "Team's calendar" -msgstr "" +msgstr "Equipo del calendario" From 8b43205fe4e9f898cf7e94c5f6e366935bdbbc02 Mon Sep 17 00:00:00 2001 From: marcos-mendez Date: Wed, 8 Dec 2021 20:47:44 +0000 Subject: [PATCH 04/22] Added translation using Weblate (Portuguese (Brazil)) --- fieldservice_calendar/i18n/pt_BR.po | 75 +++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 fieldservice_calendar/i18n/pt_BR.po diff --git a/fieldservice_calendar/i18n/pt_BR.po b/fieldservice_calendar/i18n/pt_BR.po new file mode 100644 index 0000000000..c30626776f --- /dev/null +++ b/fieldservice_calendar/i18n/pt_BR.po @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fieldservice_calendar +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\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" + +#. module: fieldservice_calendar +#: model:ir.model,name:fieldservice_calendar.model_calendar_event +msgid "Calendar Event" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__display_name +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__display_name +msgid "Display Name" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model,name:fieldservice_calendar.model_fsm_order +msgid "Field Service Order" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model,name:fieldservice_calendar.model_fsm_team +msgid "Field Service Team" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__id +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__id +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__id +msgid "ID" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event____last_update +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order____last_update +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team____last_update +msgid "Last Modified on" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__calendar_event_id +msgid "Meeting" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__display_name +msgid "Order" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__fsm_order_id +msgid "Order id" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,help:fieldservice_calendar.field_fsm_team__calendar_user_id +msgid "Responsible for orders's calendar" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__calendar_user_id +msgid "Team's calendar" +msgstr "" From bbc9c8705937bac0065ff65cc66fd86cd0ea3096 Mon Sep 17 00:00:00 2001 From: marcos-mendez Date: Wed, 8 Dec 2021 20:49:14 +0000 Subject: [PATCH 05/22] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (11 of 11 strings) Translation: field-service-14.0/field-service-14.0-fieldservice_calendar Translate-URL: https://translation.odoo-community.org/projects/field-service-14-0/field-service-14-0-fieldservice_calendar/pt_BR/ --- fieldservice_calendar/i18n/pt_BR.po | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/fieldservice_calendar/i18n/pt_BR.po b/fieldservice_calendar/i18n/pt_BR.po index c30626776f..1309f19633 100644 --- a/fieldservice_calendar/i18n/pt_BR.po +++ b/fieldservice_calendar/i18n/pt_BR.po @@ -6,70 +6,72 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2021-12-08 22:39+0000\n" +"Last-Translator: marcos-mendez \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 4.3.2\n" #. module: fieldservice_calendar #: model:ir.model,name:fieldservice_calendar.model_calendar_event msgid "Calendar Event" -msgstr "" +msgstr "Calendário de Eventos" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__display_name #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__display_name msgid "Display Name" -msgstr "" +msgstr "Nome exibido" #. module: fieldservice_calendar #: model:ir.model,name:fieldservice_calendar.model_fsm_order msgid "Field Service Order" -msgstr "" +msgstr "Ordem de serviço de campo" #. module: fieldservice_calendar #: model:ir.model,name:fieldservice_calendar.model_fsm_team msgid "Field Service Team" -msgstr "" +msgstr "Equipe de Serviço de Campo" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__id #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__id #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__id msgid "ID" -msgstr "" +msgstr "ID" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event____last_update #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order____last_update #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team____last_update msgid "Last Modified on" -msgstr "" +msgstr "Última modificação em" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__calendar_event_id msgid "Meeting" -msgstr "" +msgstr "Reunião" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__display_name msgid "Order" -msgstr "" +msgstr "Pedido" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__fsm_order_id msgid "Order id" -msgstr "" +msgstr "Id Pedido" #. module: fieldservice_calendar #: model:ir.model.fields,help:fieldservice_calendar.field_fsm_team__calendar_user_id msgid "Responsible for orders's calendar" -msgstr "" +msgstr "Responsável pelo calendário de pedidos" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__calendar_user_id msgid "Team's calendar" -msgstr "" +msgstr "Calendário da equipe" From 112e5dd6033f07d449ce84a4d2ae03400d668533 Mon Sep 17 00:00:00 2001 From: Freni Patel Date: Fri, 28 Jan 2022 23:25:38 +0530 Subject: [PATCH 06/22] [15.0][FIX] Fixed travis --- fieldservice_calendar/__manifest__.py | 2 +- fieldservice_calendar/models/fsm_order.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fieldservice_calendar/__manifest__.py b/fieldservice_calendar/__manifest__.py index f8f40033a4..911af20e6a 100644 --- a/fieldservice_calendar/__manifest__.py +++ b/fieldservice_calendar/__manifest__.py @@ -7,7 +7,7 @@ "website": "https://github.com/OCA/field-service", "category": "Field Service", "license": "AGPL-3", - "version": "14.0.1.0.0", + "version": "15.0.1.0.0", "depends": [ "calendar", "fieldservice", diff --git a/fieldservice_calendar/models/fsm_order.py b/fieldservice_calendar/models/fsm_order.py index 6ec6c9f74c..366814a78e 100644 --- a/fieldservice_calendar/models/fsm_order.py +++ b/fieldservice_calendar/models/fsm_order.py @@ -20,7 +20,7 @@ def create(self, vals_list): return res def _create_calendar_event(self): - """ Create entry in calendar of the team""" + """Create entry in calendar of the team""" for order in self._should_have_calendar_event(): order.calendar_event_id = ( self.env["calendar.event"] From 9d7f092b29529165ee8c4202b25e6d770b0af603 Mon Sep 17 00:00:00 2001 From: Freni Patel Date: Thu, 10 Feb 2022 20:47:15 +0530 Subject: [PATCH 07/22] [15.0][MIG] fieldservice_calendar --- fieldservice_calendar/README.rst | 11 +++--- fieldservice_calendar/i18n/es_AR.po | 37 ++++++------------- .../i18n/fieldservice_calendar.pot | 27 +------------- fieldservice_calendar/i18n/pt_BR.po | 37 ++++++------------- fieldservice_calendar/models/fsm_order.py | 2 +- fieldservice_calendar/readme/CONTRIBUTORS.rst | 1 + .../static/description/index.html | 7 ++-- .../tests/test_fsm_calendar.py | 8 ++-- fieldservice_calendar/views/fsm_order.xml | 1 - fieldservice_calendar/views/fsm_team.xml | 1 - 10 files changed, 42 insertions(+), 90 deletions(-) diff --git a/fieldservice_calendar/README.rst b/fieldservice_calendar/README.rst index 3c27e3c8d2..487de262eb 100644 --- a/fieldservice_calendar/README.rst +++ b/fieldservice_calendar/README.rst @@ -14,13 +14,13 @@ Field Service - Calendar :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Ffield--service-lightgray.png?logo=github - :target: https://github.com/OCA/field-service/tree/14.0/fieldservice_calendar + :target: https://github.com/OCA/field-service/tree/15.0/fieldservice_calendar :alt: OCA/field-service .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/field-service-14-0/field-service-14-0-fieldservice_calendar + :target: https://translation.odoo-community.org/projects/field-service-15-0/field-service-15-0-fieldservice_calendar :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/264/14.0 + :target: https://runbot.odoo-community.org/runbot/264/15.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -44,7 +44,7 @@ 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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -60,6 +60,7 @@ Contributors ~~~~~~~~~~~~ * Raphaël Reverdy +* Freni Patel Maintainers ~~~~~~~~~~~ @@ -82,6 +83,6 @@ Current `maintainer `__: |maintainer-hparfr| -This module is part of the `OCA/field-service `_ project on GitHub. +This module is part of the `OCA/field-service `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/fieldservice_calendar/i18n/es_AR.po b/fieldservice_calendar/i18n/es_AR.po index c7bb782ef8..71a65d3826 100644 --- a/fieldservice_calendar/i18n/es_AR.po +++ b/fieldservice_calendar/i18n/es_AR.po @@ -21,12 +21,6 @@ msgstr "" msgid "Calendar Event" msgstr "Evento de Calendario" -#. module: fieldservice_calendar -#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__display_name -#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__display_name -msgid "Display Name" -msgstr "Mostrar Nombre" - #. module: fieldservice_calendar #: model:ir.model,name:fieldservice_calendar.model_fsm_order msgid "Field Service Order" @@ -37,30 +31,11 @@ msgstr "Pedido de Servicio de Campo" msgid "Field Service Team" msgstr "Equipo de Servicio de Campo" -#. module: fieldservice_calendar -#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__id -#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__id -#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__id -msgid "ID" -msgstr "ID" - -#. module: fieldservice_calendar -#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event____last_update -#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order____last_update -#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team____last_update -msgid "Last Modified on" -msgstr "Última Modificación el" - #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__calendar_event_id msgid "Meeting" msgstr "Reunión" -#. module: fieldservice_calendar -#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__display_name -msgid "Order" -msgstr "Pedido" - #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__fsm_order_id msgid "Order id" @@ -75,3 +50,15 @@ msgstr "Responsable del calendario de pedidos" #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__calendar_user_id msgid "Team's calendar" msgstr "Equipo del calendario" + +#~ msgid "Display Name" +#~ msgstr "Mostrar Nombre" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Last Modified on" +#~ msgstr "Última Modificación el" + +#~ msgid "Order" +#~ msgstr "Pedido" diff --git a/fieldservice_calendar/i18n/fieldservice_calendar.pot b/fieldservice_calendar/i18n/fieldservice_calendar.pot index 98c29a78ce..7ef9c32344 100644 --- a/fieldservice_calendar/i18n/fieldservice_calendar.pot +++ b/fieldservice_calendar/i18n/fieldservice_calendar.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" +"Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -18,12 +18,6 @@ msgstr "" msgid "Calendar Event" msgstr "" -#. module: fieldservice_calendar -#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__display_name -#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__display_name -msgid "Display Name" -msgstr "" - #. module: fieldservice_calendar #: model:ir.model,name:fieldservice_calendar.model_fsm_order msgid "Field Service Order" @@ -34,30 +28,11 @@ msgstr "" msgid "Field Service Team" msgstr "" -#. module: fieldservice_calendar -#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__id -#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__id -#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__id -msgid "ID" -msgstr "" - -#. module: fieldservice_calendar -#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event____last_update -#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order____last_update -#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team____last_update -msgid "Last Modified on" -msgstr "" - #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__calendar_event_id msgid "Meeting" msgstr "" -#. module: fieldservice_calendar -#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__display_name -msgid "Order" -msgstr "" - #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__fsm_order_id msgid "Order id" diff --git a/fieldservice_calendar/i18n/pt_BR.po b/fieldservice_calendar/i18n/pt_BR.po index 1309f19633..dab025675b 100644 --- a/fieldservice_calendar/i18n/pt_BR.po +++ b/fieldservice_calendar/i18n/pt_BR.po @@ -21,12 +21,6 @@ msgstr "" msgid "Calendar Event" msgstr "Calendário de Eventos" -#. module: fieldservice_calendar -#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__display_name -#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__display_name -msgid "Display Name" -msgstr "Nome exibido" - #. module: fieldservice_calendar #: model:ir.model,name:fieldservice_calendar.model_fsm_order msgid "Field Service Order" @@ -37,30 +31,11 @@ msgstr "Ordem de serviço de campo" msgid "Field Service Team" msgstr "Equipe de Serviço de Campo" -#. module: fieldservice_calendar -#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__id -#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__id -#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__id -msgid "ID" -msgstr "ID" - -#. module: fieldservice_calendar -#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event____last_update -#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order____last_update -#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team____last_update -msgid "Last Modified on" -msgstr "Última modificação em" - #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__calendar_event_id msgid "Meeting" msgstr "Reunião" -#. module: fieldservice_calendar -#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__display_name -msgid "Order" -msgstr "Pedido" - #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__fsm_order_id msgid "Order id" @@ -75,3 +50,15 @@ msgstr "Responsável pelo calendário de pedidos" #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__calendar_user_id msgid "Team's calendar" msgstr "Calendário da equipe" + +#~ msgid "Display Name" +#~ msgstr "Nome exibido" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Last Modified on" +#~ msgstr "Última modificação em" + +#~ msgid "Order" +#~ msgstr "Pedido" diff --git a/fieldservice_calendar/models/fsm_order.py b/fieldservice_calendar/models/fsm_order.py index 366814a78e..b6c0ca5bd8 100644 --- a/fieldservice_calendar/models/fsm_order.py +++ b/fieldservice_calendar/models/fsm_order.py @@ -20,7 +20,7 @@ def create(self, vals_list): return res def _create_calendar_event(self): - """Create entry in calendar of the team""" + """Create entry in calendar of the team.""" for order in self._should_have_calendar_event(): order.calendar_event_id = ( self.env["calendar.event"] diff --git a/fieldservice_calendar/readme/CONTRIBUTORS.rst b/fieldservice_calendar/readme/CONTRIBUTORS.rst index dc3bfce89c..0238b67df8 100644 --- a/fieldservice_calendar/readme/CONTRIBUTORS.rst +++ b/fieldservice_calendar/readme/CONTRIBUTORS.rst @@ -1 +1,2 @@ * Raphaël Reverdy +* Freni Patel diff --git a/fieldservice_calendar/static/description/index.html b/fieldservice_calendar/static/description/index.html index d0b2f0f380..293385e675 100644 --- a/fieldservice_calendar/static/description/index.html +++ b/fieldservice_calendar/static/description/index.html @@ -367,7 +367,7 @@

Field Service - Calendar

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/field-service Translate me on Weblate Try me on Runbot

+

Beta License: AGPL-3 OCA/field-service Translate me on Weblate Try me on Runbot

This modules creates calendar event from FSM Orders.

Table of contents

@@ -392,7 +392,7 @@

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.

+feedback.

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

@@ -407,6 +407,7 @@

Authors

Contributors

@@ -418,7 +419,7 @@

Maintainers

promote its widespread use.

Current maintainer:

hparfr

-

This module is part of the OCA/field-service project on GitHub.

+

This module is part of the OCA/field-service project on GitHub.

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

diff --git a/fieldservice_calendar/tests/test_fsm_calendar.py b/fieldservice_calendar/tests/test_fsm_calendar.py index f848c1a8cc..e0c9937735 100644 --- a/fieldservice_calendar/tests/test_fsm_calendar.py +++ b/fieldservice_calendar/tests/test_fsm_calendar.py @@ -10,6 +10,7 @@ def setUp(self): super(TestFSMOrder, self).setUp() self.Order = self.env["fsm.order"] self.test_location = self.env.ref("fieldservice.test_location") + self.location_1 = self.env.ref("fieldservice.location_1") self.team = self.Order._default_team_id() self.team.calendar_user_id = self.env.ref("base.partner_root").id self.person_id = self.env.ref("fieldservice.person_2") @@ -40,10 +41,11 @@ def test_fsm_order_no_calendar_user(self): self.team.calendar_user_id = self.env.ref("base.partner_root").id # update order - new.scheduled_duration = 3 + new.write({"scheduled_duration": 3}) + new.write({"location_id": self.location_1.id}) evt = new.calendar_event_id self.assertTrue(evt.exists()) - + evt.with_context(recurse_order_calendar=False).write({"duration": 5}) # ensure deletion new.scheduled_date_start = False evt = new.calendar_event_id @@ -78,13 +80,13 @@ def test_fsm_order_ensure_attendee(self): } ) evt = new.calendar_event_id - self.assertTrue( len(evt.partner_ids) == 1, "There should be no other attendees" " because there is no one assigned", ) # organiser is attendee new.person_id = self.person_id + evt.with_context(recurse_order_calendar=False).write({"partner_ids": []}) self.assertTrue(self.person_id.partner_id in evt.partner_ids) new.person_id = self.person_id3 self.assertTrue(self.person_id3.partner_id in evt.partner_ids) diff --git a/fieldservice_calendar/views/fsm_order.xml b/fieldservice_calendar/views/fsm_order.xml index 4246e7cb71..d1b628eefa 100644 --- a/fieldservice_calendar/views/fsm_order.xml +++ b/fieldservice_calendar/views/fsm_order.xml @@ -1,4 +1,3 @@ - fsm.order diff --git a/fieldservice_calendar/views/fsm_team.xml b/fieldservice_calendar/views/fsm_team.xml index 30a14d6bfe..ac52d1beb8 100644 --- a/fieldservice_calendar/views/fsm_team.xml +++ b/fieldservice_calendar/views/fsm_team.xml @@ -1,4 +1,3 @@ - fsm.team.form From ec9442488ff8928f0b01a961cc64e3cac9d22159 Mon Sep 17 00:00:00 2001 From: mymage Date: Thu, 27 Oct 2022 11:39:59 +0000 Subject: [PATCH 08/22] Added translation using Weblate (Italian) --- fieldservice_calendar/i18n/it.po | 50 ++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 fieldservice_calendar/i18n/it.po diff --git a/fieldservice_calendar/i18n/it.po b/fieldservice_calendar/i18n/it.po new file mode 100644 index 0000000000..34a1636a5d --- /dev/null +++ b/fieldservice_calendar/i18n/it.po @@ -0,0 +1,50 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fieldservice_calendar +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: it\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" + +#. module: fieldservice_calendar +#: model:ir.model,name:fieldservice_calendar.model_calendar_event +msgid "Calendar Event" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model,name:fieldservice_calendar.model_fsm_order +msgid "Field Service Order" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model,name:fieldservice_calendar.model_fsm_team +msgid "Field Service Team" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__calendar_event_id +msgid "Meeting" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__fsm_order_id +msgid "Order id" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,help:fieldservice_calendar.field_fsm_team__calendar_user_id +msgid "Responsible for orders's calendar" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__calendar_user_id +msgid "Team's calendar" +msgstr "" From ad347ec7fadcdd91a02cc32c1e98d7dad0e77c68 Mon Sep 17 00:00:00 2001 From: mymage Date: Thu, 27 Oct 2022 11:40:17 +0000 Subject: [PATCH 09/22] Translated using Weblate (Italian) Currently translated at 100.0% (7 of 7 strings) Translation: field-service-15.0/field-service-15.0-fieldservice_calendar Translate-URL: https://translation.odoo-community.org/projects/field-service-15-0/field-service-15-0-fieldservice_calendar/it/ --- fieldservice_calendar/i18n/it.po | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/fieldservice_calendar/i18n/it.po b/fieldservice_calendar/i18n/it.po index 34a1636a5d..0312a86393 100644 --- a/fieldservice_calendar/i18n/it.po +++ b/fieldservice_calendar/i18n/it.po @@ -6,45 +6,47 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2022-10-27 13:43+0000\n" +"Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.14.1\n" #. module: fieldservice_calendar #: model:ir.model,name:fieldservice_calendar.model_calendar_event msgid "Calendar Event" -msgstr "" +msgstr "Evento calendario" #. module: fieldservice_calendar #: model:ir.model,name:fieldservice_calendar.model_fsm_order msgid "Field Service Order" -msgstr "" +msgstr "Ordine assistenza sul campo" #. module: fieldservice_calendar #: model:ir.model,name:fieldservice_calendar.model_fsm_team msgid "Field Service Team" -msgstr "" +msgstr "Squadra assistenza sul campo" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__calendar_event_id msgid "Meeting" -msgstr "" +msgstr "Riunione" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__fsm_order_id msgid "Order id" -msgstr "" +msgstr "ID ordine" #. module: fieldservice_calendar #: model:ir.model.fields,help:fieldservice_calendar.field_fsm_team__calendar_user_id msgid "Responsible for orders's calendar" -msgstr "" +msgstr "Responsabile calendario ordini" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__calendar_user_id msgid "Team's calendar" -msgstr "" +msgstr "Calendario squadra" From 5c4a8faf77f0113b542d6b26f33f3c86d7ae64b1 Mon Sep 17 00:00:00 2001 From: Juliette BLANC Date: Tue, 25 Apr 2023 14:10:49 +0200 Subject: [PATCH 10/22] [MIG] fieldservice_calendar: Migration to 16.0 --- fieldservice_calendar/__manifest__.py | 2 +- fieldservice_calendar/models/fsm_order.py | 3 ++- .../tests/test_fsm_calendar.py | 19 ++++++++++--------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/fieldservice_calendar/__manifest__.py b/fieldservice_calendar/__manifest__.py index 911af20e6a..e3e2cdb020 100644 --- a/fieldservice_calendar/__manifest__.py +++ b/fieldservice_calendar/__manifest__.py @@ -7,7 +7,7 @@ "website": "https://github.com/OCA/field-service", "category": "Field Service", "license": "AGPL-3", - "version": "15.0.1.0.0", + "version": "16.0.1.0.0", "depends": [ "calendar", "fieldservice", diff --git a/fieldservice_calendar/models/fsm_order.py b/fieldservice_calendar/models/fsm_order.py index b6c0ca5bd8..d374099a78 100644 --- a/fieldservice_calendar/models/fsm_order.py +++ b/fieldservice_calendar/models/fsm_order.py @@ -46,7 +46,8 @@ def _prepare_calendar_event(self): "location": self._serialize_location(), "user_id": self.team_id.calendar_user_id.id, } - vals["partner_ids"] = [(4, self.team_id.calendar_user_id.partner_id.id, False)] + partners = self.team_id.calendar_user_id.partner_id | self.person_id.partner_id + vals["partner_ids"] = [(6, False, partners.ids)] # we let calendar_user has a partner_ids in order # to have the meeting in the team's calendar return vals diff --git a/fieldservice_calendar/tests/test_fsm_calendar.py b/fieldservice_calendar/tests/test_fsm_calendar.py index e0c9937735..40cbeef62f 100644 --- a/fieldservice_calendar/tests/test_fsm_calendar.py +++ b/fieldservice_calendar/tests/test_fsm_calendar.py @@ -6,15 +6,16 @@ class TestFSMOrder(TransactionCase): - def setUp(self): - super(TestFSMOrder, self).setUp() - self.Order = self.env["fsm.order"] - self.test_location = self.env.ref("fieldservice.test_location") - self.location_1 = self.env.ref("fieldservice.location_1") - self.team = self.Order._default_team_id() - self.team.calendar_user_id = self.env.ref("base.partner_root").id - self.person_id = self.env.ref("fieldservice.person_2") - self.person_id3 = self.env.ref("fieldservice.person_3") + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.Order = cls.env["fsm.order"] + cls.test_location = cls.env.ref("fieldservice.test_location") + cls.location_1 = cls.env.ref("fieldservice.location_1") + cls.team = cls.Order._default_team_id() + cls.team.calendar_user_id = cls.env.ref("base.partner_root").id + cls.person_id = cls.env.ref("fieldservice.person_2") + cls.person_id3 = cls.env.ref("fieldservice.person_3") def test_fsm_order_no_duration(self): new = self.Order.create( From 34229c030fda45e86ee45337c0e32b926046a98a Mon Sep 17 00:00:00 2001 From: oca-ci Date: Thu, 13 Jul 2023 16:50:18 +0000 Subject: [PATCH 11/22] [UPD] Update fieldservice_calendar.pot --- fieldservice_calendar/i18n/fieldservice_calendar.pot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fieldservice_calendar/i18n/fieldservice_calendar.pot b/fieldservice_calendar/i18n/fieldservice_calendar.pot index 7ef9c32344..4cc0742171 100644 --- a/fieldservice_calendar/i18n/fieldservice_calendar.pot +++ b/fieldservice_calendar/i18n/fieldservice_calendar.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 15.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" From a9bc8258f90d28718ba09b380d8c15d82e3e28c5 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 13 Jul 2023 16:53:41 +0000 Subject: [PATCH 12/22] [UPD] README.rst --- fieldservice_calendar/README.rst | 10 +++++----- fieldservice_calendar/static/description/index.html | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/fieldservice_calendar/README.rst b/fieldservice_calendar/README.rst index 487de262eb..28f5caf0df 100644 --- a/fieldservice_calendar/README.rst +++ b/fieldservice_calendar/README.rst @@ -14,13 +14,13 @@ Field Service - Calendar :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Ffield--service-lightgray.png?logo=github - :target: https://github.com/OCA/field-service/tree/15.0/fieldservice_calendar + :target: https://github.com/OCA/field-service/tree/16.0/fieldservice_calendar :alt: OCA/field-service .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/field-service-15-0/field-service-15-0-fieldservice_calendar + :target: https://translation.odoo-community.org/projects/field-service-16-0/field-service-16-0-fieldservice_calendar :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/264/15.0 + :target: https://runbot.odoo-community.org/runbot/264/16.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -44,7 +44,7 @@ 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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -83,6 +83,6 @@ Current `maintainer `__: |maintainer-hparfr| -This module is part of the `OCA/field-service `_ project on GitHub. +This module is part of the `OCA/field-service `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/fieldservice_calendar/static/description/index.html b/fieldservice_calendar/static/description/index.html index 293385e675..bd656f34b7 100644 --- a/fieldservice_calendar/static/description/index.html +++ b/fieldservice_calendar/static/description/index.html @@ -367,7 +367,7 @@

Field Service - Calendar

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/field-service Translate me on Weblate Try me on Runbot

+

Beta License: AGPL-3 OCA/field-service Translate me on Weblate Try me on Runbot

This modules creates calendar event from FSM Orders.

Table of contents

@@ -392,7 +392,7 @@

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.

+feedback.

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

@@ -419,7 +419,7 @@

Maintainers

promote its widespread use.

Current maintainer:

hparfr

-

This module is part of the OCA/field-service project on GitHub.

+

This module is part of the OCA/field-service project on GitHub.

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

From cd803db0f3291d1ad3dce0811a0f49bfe261a534 Mon Sep 17 00:00:00 2001 From: Ivorra78 Date: Sat, 22 Jul 2023 19:38:38 +0000 Subject: [PATCH 13/22] Added translation using Weblate (Spanish) --- fieldservice_calendar/i18n/es.po | 50 ++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 fieldservice_calendar/i18n/es.po diff --git a/fieldservice_calendar/i18n/es.po b/fieldservice_calendar/i18n/es.po new file mode 100644 index 0000000000..42b44904bd --- /dev/null +++ b/fieldservice_calendar/i18n/es.po @@ -0,0 +1,50 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fieldservice_calendar +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: fieldservice_calendar +#: model:ir.model,name:fieldservice_calendar.model_calendar_event +msgid "Calendar Event" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model,name:fieldservice_calendar.model_fsm_order +msgid "Field Service Order" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model,name:fieldservice_calendar.model_fsm_team +msgid "Field Service Team" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__calendar_event_id +msgid "Meeting" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__fsm_order_id +msgid "Order id" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,help:fieldservice_calendar.field_fsm_team__calendar_user_id +msgid "Responsible for orders's calendar" +msgstr "" + +#. module: fieldservice_calendar +#: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__calendar_user_id +msgid "Team's calendar" +msgstr "" From 2ee761bc2cee313e1176ba8791a7bf3ddacba0b3 Mon Sep 17 00:00:00 2001 From: Ivorra78 Date: Sat, 22 Jul 2023 19:38:50 +0000 Subject: [PATCH 14/22] Translated using Weblate (Spanish) Currently translated at 100.0% (7 of 7 strings) Translation: field-service-16.0/field-service-16.0-fieldservice_calendar Translate-URL: https://translation.odoo-community.org/projects/field-service-16-0/field-service-16-0-fieldservice_calendar/es/ --- fieldservice_calendar/i18n/es.po | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/fieldservice_calendar/i18n/es.po b/fieldservice_calendar/i18n/es.po index 42b44904bd..cb3f6ad9e2 100644 --- a/fieldservice_calendar/i18n/es.po +++ b/fieldservice_calendar/i18n/es.po @@ -6,45 +6,47 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2023-07-22 21:08+0000\n" +"Last-Translator: Ivorra78 \n" "Language-Team: none\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" #. module: fieldservice_calendar #: model:ir.model,name:fieldservice_calendar.model_calendar_event msgid "Calendar Event" -msgstr "" +msgstr "Calendario de eventos" #. module: fieldservice_calendar #: model:ir.model,name:fieldservice_calendar.model_fsm_order msgid "Field Service Order" -msgstr "" +msgstr "Orden de Servicio de Campo" #. module: fieldservice_calendar #: model:ir.model,name:fieldservice_calendar.model_fsm_team msgid "Field Service Team" -msgstr "" +msgstr "Equipo de Servicio de Campo" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_order__calendar_event_id msgid "Meeting" -msgstr "" +msgstr "Reunión" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_calendar_event__fsm_order_id msgid "Order id" -msgstr "" +msgstr "Id de pedido" #. module: fieldservice_calendar #: model:ir.model.fields,help:fieldservice_calendar.field_fsm_team__calendar_user_id msgid "Responsible for orders's calendar" -msgstr "" +msgstr "Responsable del calendario de pedidos" #. module: fieldservice_calendar #: model:ir.model.fields,field_description:fieldservice_calendar.field_fsm_team__calendar_user_id msgid "Team's calendar" -msgstr "" +msgstr "Calendario del equipo" From 20b3c6e6443a11ae6bed5a7a17bb4f917d4179cb Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sun, 3 Sep 2023 12:55:58 +0000 Subject: [PATCH 15/22] [UPD] README.rst --- fieldservice_calendar/README.rst | 15 ++++--- .../static/description/index.html | 40 ++++++++++--------- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/fieldservice_calendar/README.rst b/fieldservice_calendar/README.rst index 28f5caf0df..981bf08b71 100644 --- a/fieldservice_calendar/README.rst +++ b/fieldservice_calendar/README.rst @@ -2,10 +2,13 @@ Field Service - Calendar ======================== -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:037fe130677e560b5da0c4e200722e74ab8b47ca31e9d65aed9df268c0b9c0dd + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Field Service - Calendar .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/field-service-16-0/field-service-16-0-fieldservice_calendar :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/264/16.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/field-service&target_branch=16.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This modules creates calendar event from FSM Orders. @@ -43,7 +46,7 @@ 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 +If you spotted it first, help us to smash it by providing a detailed and welcomed `feedback `_. Do not contact contributors directly about support or help with technical issues. diff --git a/fieldservice_calendar/static/description/index.html b/fieldservice_calendar/static/description/index.html index bd656f34b7..ddb4b1d92a 100644 --- a/fieldservice_calendar/static/description/index.html +++ b/fieldservice_calendar/static/description/index.html @@ -1,20 +1,20 @@ - + - + Field Service - Calendar