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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
122 changes: 122 additions & 0 deletions fieldservice_availability/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

=========================
Fieldservice Availability
=========================

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

.. |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/license-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/19.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-19-0/field-service-19-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=19.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).
- **Blackout Groups (\`fsm.blackout.group\`)**: Represent groups of days
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 > Availability. Once there,
you can select Delivery Time Ranges, Blackout Days, Blackout Groups or
Stress 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:%2019.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 <ppyczko@apsl.net>
- Antoni Marroig <amarroig@apsl.net>

- `CIT Services <https://cit-services.in/>`__:

- Linto Antony <l.antony@cit-services.eu>

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/19.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
30 changes: 30 additions & 0 deletions fieldservice_availability/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Copyright 2025 Patryk Pyczko (APSL-Nagarro)<ppyczko@apsl.net>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

{
"name": "Fieldservice Availability",
"version": "19.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",
],
"demo": [
"demo/fsm_blackout_day_demo.xml",
"demo/fsm_blackout_group_demo.xml",
"demo/fsm_delivery_time_range_demo.xml",
"demo/fsm_stress_day_demo.xml",
],
}
16 changes: 16 additions & 0 deletions fieldservice_availability/demo/fsm_blackout_day_demo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<odoo noupdate="1">
<record id="fsm_blackout_day_01_demo" model="fsm.blackout.day">
<field name="name">BlackOut Day 01</field>
<field name="date" eval="DateTime.today()" />
</record>

<record id="fsm_blackout_day_02_demo" model="fsm.blackout.day">
<field name="name">BlackOut Day 02</field>
<field name="date" eval="DateTime.today() + relativedelta(days=1)" />
</record>

<record id="fsm_blackout_day_03_demo" model="fsm.blackout.day">
<field name="name">BlackOut Day 03</field>
<field name="date" eval="DateTime.today() + relativedelta(days=2)" />
</record>
</odoo>
9 changes: 9 additions & 0 deletions fieldservice_availability/demo/fsm_blackout_group_demo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<odoo noupdate="1">
<record id="fsm_blackout_group_01_demo" model="fsm.blackout.group">
<field name="name">BlackOut Group 01</field>
<field
name="fsm_blackout_day_ids"
eval="[(6, 0, [ref('fsm_blackout_day_01_demo'), ref('fsm_blackout_day_02_demo'), ref('fsm_blackout_day_03_demo')])]"
/>
</record>
</odoo>
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<odoo noupdate="1">
<record id="fsm_delivery_time_range_01_demo" model="fsm.delivery.time.range">
<field name="name">Delivery Time Range 01</field>
<field name="start_time">09.00</field>
<field name="end_time">18.00</field>
<field name="route_id" ref="fieldservice_route.route_demo_north" />
</record>
</odoo>
16 changes: 16 additions & 0 deletions fieldservice_availability/demo/fsm_stress_day_demo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<odoo noupdate="1">
<record id="fsm_stress_day_01_demo" model="fsm.stress.day">
<field name="name">Stress Day 01</field>
<field name="date" eval="DateTime.today()" />
</record>

<record id="fsm_stress_day_02_demo" model="fsm.stress.day">
<field name="name">Stress Day 02</field>
<field name="date" eval="DateTime.today() + relativedelta(days=1)" />
</record>

<record id="fsm_stress_day_03_demo" model="fsm.stress.day">
<field name="name">Stress Day 03</field>
<field name="date" eval="DateTime.today() + relativedelta(days=2)" />
</record>
</odoo>
Loading
Loading