Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[15.0][ADD] fieldservice_availability: New module fieldservice_availability #1318

Open
wants to merge 1 commit into
base: 15.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 96 additions & 0 deletions fieldservice_availability/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
=========================
Fieldservice Availability
=========================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:2a9639ee2b8e8c0fbcb6afd0bd5ad682e64856a8fbdbe47f9da3d62e859321ce
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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/15.0/fieldservice_availability
: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_availability
:alt: Translate me on Weblate
.. |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=15.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module defines blackout days (non-operational days), stress days (high-demand periods), and delivery time ranges for field service operations. It provides the necessary models to store this information, which can be used by other modules to manage scheduling, availability, and workload adjustments.

- **Blackout Days (`fsm.blackout.day`)**: Represent dates when field service operations are unavailable (e.g., holidays, company-wide closures).
- **Stress Days (`fsm.stress.day`)**: Indicate dates with increased service demand (e.g., peak business periods requiring additional workforce).
- **Delivery Time Ranges (`fsm.delivery.time.range`)**: Define available time slots for scheduling field service operations.

This is a technical module and does not provide functionality on its own. Extend this module to integrate availability management into field service workflows.

**Table of contents**

.. contents::
:local:

Usage
=====

Navigate to Field Service > Configuration > Scheduling. Once there, you can select `Delivery Time Ranges`, `Blackout Days` or `Festive Days` to create new records.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/field-service/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/field-service/issues/new?body=module:%20fieldservice_availability%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

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

Credits
=======

Authors
~~~~~~~

* APSL-Nagarro

Contributors
~~~~~~~~~~~~

* `APSL-Nagarro <https://www.apsl.tech>`_:
* Patryk Pyczko <[email protected]>

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-ppyczko| image:: https://github.com/ppyczko.png?size=40px
:target: https://github.com/ppyczko
:alt: ppyczko

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-ppyczko|

This module is part of the `OCA/field-service <https://github.com/OCA/field-service/tree/15.0/fieldservice_availability>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
3 changes: 3 additions & 0 deletions fieldservice_availability/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import models
24 changes: 24 additions & 0 deletions fieldservice_availability/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Copyright 2025 Patryk Pyczko (APSL-Nagarro)<[email protected]>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

{
"name": "Fieldservice Availability",
"version": "15.0.1.0.0",
"summary": "Provides models for defining blackout days, stress days, "
"and delivery time ranges for FSM availability management.",
"category": "Field Service",
"website": "https://github.com/OCA/field-service",
"author": "APSL-Nagarro, Odoo Community Association (OCA)",
"maintainers": ["ppyczko"],
"license": "AGPL-3",
"application": False,
"installable": True,
"depends": ["fieldservice_route"],
"data": [
"security/ir.model.access.csv",
"views/fsm_blackout_day_templates.xml",
"views/fsm_delivery_time_range_templates.xml",
"views/fsm_stress_day_templates.xml",
"views/menu.xml",
],
}
193 changes: 193 additions & 0 deletions fieldservice_availability/i18n/ca.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * fieldservice_availability
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-26 06:51+0000\n"
"PO-Revision-Date: 2025-02-26 06:51+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: fieldservice_availability
#: model:ir.model.constraint,message:fieldservice_availability.constraint_fsm_blackout_day_unique_blackout_day
msgid "A blackout day with this date already exists!"
msgstr "Ja existeix un dia de bloqueig amb aquesta data!"

#. module: fieldservice_availability
#: model:ir.model.constraint,message:fieldservice_availability.constraint_fsm_stress_day_unique_stress_day
msgid "A stress day with this date already exists!"
msgstr "Ja existeix un dia d'alta demanda amb aquesta data!"

#. module: fieldservice_availability
#: model_terms:ir.actions.act_window,help:fieldservice_availability.action_fsm_blackout_days
msgid "Add a Field Service Blackout Day here."
msgstr "Afegeix un dia de bloqueig del servei de camp aquí."

#. module: fieldservice_availability
#: model_terms:ir.actions.act_window,help:fieldservice_availability.action_fsm_delivery_time_range
msgid "Add a Field Service Delivery Time Range here."
msgstr "Afegeix un interval de temps de lliurament de serveis aquí."

#. module: fieldservice_availability
#: model_terms:ir.actions.act_window,help:fieldservice_availability.action_fsm_stress_days
msgid "Add a Field Service Stress Day here."
msgstr "Afegeix un dia d'alta demanda del servei de camp aquí."

#. module: fieldservice_availability
#: model:ir.ui.menu,name:fieldservice_availability.menu_fsm_config_availability
msgid "Availability"
msgstr "Disponibilitat"

#. module: fieldservice_availability
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_blackout_day__date
msgid "Blackout Day"
msgstr "Dia de bloqueig"

#. module: fieldservice_availability
#: model:ir.actions.act_window,name:fieldservice_availability.action_fsm_blackout_days
#: model:ir.ui.menu,name:fieldservice_availability.menu_fsm_blackout_days_root
msgid "Blackout Days"
msgstr "Dies de bloqueig"

#. module: fieldservice_availability
#: model:ir.model,name:fieldservice_availability.model_fsm_blackout_day
msgid "Blackout Days (No Service)"
msgstr "Dies de bloqueig (Sense servei)"

#. module: fieldservice_availability
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_blackout_day__create_uid
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_delivery_time_range__create_uid
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_stress_day__create_uid
msgid "Created by"
msgstr "Creat per"

#. module: fieldservice_availability
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_blackout_day__create_date
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_delivery_time_range__create_date
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_stress_day__create_date
msgid "Created on"
msgstr "Creat el"

#. module: fieldservice_availability
#: model:ir.model.fields,help:fieldservice_availability.field_fsm_delivery_time_range__sequence
msgid "Customize the order of time ranges. Lower numbers are shown first."
msgstr ""
"Personalitza l'ordre dels intervals de temps. Els números més baixos es "
"mostren primer."

#. module: fieldservice_availability
#: model:ir.model,name:fieldservice_availability.model_fsm_delivery_time_range
#: model_terms:ir.ui.view,arch_db:fieldservice_availability.view_fsm_delivery_time_range_form
msgid "Delivery Time Range"
msgstr "Interval de Temps de Lliurament"

#. module: fieldservice_availability
#: model:ir.actions.act_window,name:fieldservice_availability.action_fsm_delivery_time_range
#: model:ir.ui.menu,name:fieldservice_availability.menu_fsm_delivery_time_range
msgid "Delivery Time Ranges"
msgstr "Intervals de Temps de Lliurament"

#. module: fieldservice_availability
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_blackout_day__name
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_stress_day__name
msgid "Description"
msgstr "Descripció"

#. module: fieldservice_availability
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_blackout_day__display_name
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_delivery_time_range__display_name
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_stress_day__display_name
msgid "Display Name"
msgstr "Nom de Mostra"

#. module: fieldservice_availability
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_delivery_time_range__end_time
msgid "End Time"
msgstr "Hora de Finalització"

#. module: fieldservice_availability
#: model:ir.model,name:fieldservice_availability.model_fsm_stress_day
msgid "High-Demand Days"
msgstr "Dies d'alta demanda"

#. module: fieldservice_availability
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_blackout_day__id
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_delivery_time_range__id
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_stress_day__id
msgid "ID"
msgstr ""

#. module: fieldservice_availability
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_blackout_day____last_update
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_delivery_time_range____last_update
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_stress_day____last_update
msgid "Last Modified on"
msgstr "Última Modificació el"

#. module: fieldservice_availability
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_blackout_day__write_uid
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_delivery_time_range__write_uid
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_stress_day__write_uid
msgid "Last Updated by"
msgstr "Última Actualització per"

#. module: fieldservice_availability
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_blackout_day__write_date
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_delivery_time_range__write_date
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_stress_day__write_date
msgid "Last Updated on"
msgstr "Última Actualització el"

#. module: fieldservice_availability
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_delivery_time_range__name
msgid "Name"
msgstr "Nom"

#. module: fieldservice_availability
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_delivery_time_range__route_id
msgid "Route"
msgstr "Ruta"

#. module: fieldservice_availability
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_delivery_time_range__sequence
msgid "Sequence"
msgstr "Seqüència"

#. module: fieldservice_availability
#: model:ir.model.fields,help:fieldservice_availability.field_fsm_delivery_time_range__route_id
msgid ""
"Specific route this time range applies to. Leave empty for global time "
"ranges."
msgstr ""
"Ruta específica a la qual s'aplica aquest interval de temps. Deixa buit per "
"a intervals de temps globals."

#. module: fieldservice_availability
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_delivery_time_range__start_time
msgid "Start Time"
msgstr "Hora d'Inici"

#. module: fieldservice_availability
#: model:ir.model.fields,field_description:fieldservice_availability.field_fsm_stress_day__date
msgid "Stress Day"
msgstr "Dia d'alta demanda"

#. module: fieldservice_availability
#: model:ir.actions.act_window,name:fieldservice_availability.action_fsm_stress_days
#: model:ir.ui.menu,name:fieldservice_availability.menu_fsm_stress_days_root
msgid "Stress Days"
msgstr "Dies d'alta demanda"

#. module: fieldservice_availability
#: code:addons/fieldservice_availability/models/fsm_delivery_time_range.py:0
#: code:addons/fieldservice_availability/models/fsm_delivery_time_range.py:0
#, python-format
msgid "The start time must be earlier than the end time."
msgstr "L'hora d'inici ha de ser anterior a l'hora de finalització."
Loading