# Multi-week calendars

Allow a calendar to alternate between multiple weeks.

An implementation of this functionality exists in Odoo’s `resource` module since version 13. In Odoo’s implementation, you can only alternate between two weeks. Furthermore, the implementation is more than a little wonky.

The advantage of this module over the implementation in `resource` is that you can alternate between more than two weeks. The implementation is (hopefully) better.

The downside of adopting this module is that all modules which interact with the week-alternating functionality of `resource` must be adapted to be compatible with this module. At the time of writing (2024-07-29), the only Odoo module which does this is `hr_holidays`.

Table of contents

- Known issues / Roadmap
- Bug Tracker
- Credits
  - Authors
  - Contributors
  - Maintainers

# Known issues / Roadmap

This module is a template for building on top of. It _will_ need glue modules to work with various other modules. Most notably, `hr_holidays` will not work without modification.

The existing base Odoo two-week calendar functionality is hidden rather than disabled. This may or may not be desirable.

The module may need improvements for timezone handling; this is currently untested. `_split_into_weeks` splits weeks on the timezone of the datetime objects passed to it instead of on the timezone of the calendar. The calculation of the current week number uses `fields.Date.today()` instead of the environment’s or calendar’s timezone. Finally, child calendars may have a different timezone compared to their parent, which is probably not a desired feature.

This module assumes that a week always starts on a Monday. Upstream Odoo appears to do the same, but this may not be desired by certain audiences.

# 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 to smash it by providing a detailed and welcomed feedback.

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

# Credits

## Authors

- Coop IT Easy SC

## Contributors

- Coop IT Easy SC:
  - Carmen Bianca BAKKER

## Maintainers

This module is maintained by the OCA.

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:

This module is part of the OCA/hr project on GitHub.

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