From a980015762e1d74aeaadd7dd9d44e489efc71876 Mon Sep 17 00:00:00 2001
From: Jairo Llopis
Date: Wed, 24 Feb 2021 10:55:30 +0000
Subject: [PATCH 01/18] [ADD] web_calendar_slot_duration: customizable calendar
slots timespan
This module extends the functionality of backend calendars to support custom
slot durations and to allow you to provide more specific UX regarding event
duration and snapping.
@Tecnativa TT28201
[UPD] Update web_calendar_slot_duration.pot
[UPD] README.rst
---
web_calendar_slot_duration/README.rst | 102 ++++
web_calendar_slot_duration/__init__.py | 0
web_calendar_slot_duration/__manifest__.py | 19 +
.../i18n/web_calendar_slot_duration.pot | 14 +
.../readme/CONFIGURE.rst | 9 +
.../readme/DESCRIPTION.rst | 3 +
web_calendar_slot_duration/readme/ROADMAP.rst | 1 +
web_calendar_slot_duration/readme/USAGE.rst | 2 +
.../static/description/icon.png | Bin 0 -> 9455 bytes
.../static/description/index.html | 441 ++++++++++++++++++
.../static/src/js/calendar_model.js | 22 +
.../templates/assets.xml | 13 +
12 files changed, 626 insertions(+)
create mode 100644 web_calendar_slot_duration/README.rst
create mode 100644 web_calendar_slot_duration/__init__.py
create mode 100644 web_calendar_slot_duration/__manifest__.py
create mode 100644 web_calendar_slot_duration/i18n/web_calendar_slot_duration.pot
create mode 100644 web_calendar_slot_duration/readme/CONFIGURE.rst
create mode 100644 web_calendar_slot_duration/readme/DESCRIPTION.rst
create mode 100644 web_calendar_slot_duration/readme/ROADMAP.rst
create mode 100644 web_calendar_slot_duration/readme/USAGE.rst
create mode 100644 web_calendar_slot_duration/static/description/icon.png
create mode 100644 web_calendar_slot_duration/static/description/index.html
create mode 100644 web_calendar_slot_duration/static/src/js/calendar_model.js
create mode 100644 web_calendar_slot_duration/templates/assets.xml
diff --git a/web_calendar_slot_duration/README.rst b/web_calendar_slot_duration/README.rst
new file mode 100644
index 000000000000..c0e8e686de46
--- /dev/null
+++ b/web_calendar_slot_duration/README.rst
@@ -0,0 +1,102 @@
+======================
+Calendar slot duration
+======================
+
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
+ :target: https://odoo-community.org/page/development-status
+ :alt: Production/Stable
+.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png
+ :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
+ :alt: License: LGPL-3
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github
+ :target: https://github.com/OCA/web/tree/12.0/web_calendar_slot_duration
+ :alt: OCA/web
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/web-12-0/web-12-0-web_calendar_slot_duration
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
+ :target: https://runbot.odoo-community.org/runbot/162/12.0
+ :alt: Try me on Runbot
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+This module extends the functionality of backend calendars to support custom
+slot durations and to allow you to provide more specific UX regarding event
+duration and snapping.
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Configuration
+=============
+
+This documentation is for developers.
+
+If you want to configure your calendar view's snap duration, make sure that you
+action includes a context similar to this (example is the default value)::
+
+ {"calendar_slot_duration": "00:30:00"}
+
+It can be added in actions defined on python or as ``ir.actions.act_window``
+records.
+
+Usage
+=====
+
+To use this module, you need to install some other addon that uses it, as it
+doesn't provide any end-user functionality.
+
+Known issues / Roadmap
+======================
+
+* Drop module if/when https://github.com/odoo/odoo/pull/66739 is merged.
+
+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
+~~~~~~~
+
+* Tecnativa
+
+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-Yajo| image:: https://github.com/Yajo.png?size=40px
+ :target: https://github.com/Yajo
+ :alt: Yajo
+
+Current `maintainer `__:
+
+|maintainer-Yajo|
+
+This module is part of the `OCA/web `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/web_calendar_slot_duration/__init__.py b/web_calendar_slot_duration/__init__.py
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/web_calendar_slot_duration/__manifest__.py b/web_calendar_slot_duration/__manifest__.py
new file mode 100644
index 000000000000..40d1ca107d8d
--- /dev/null
+++ b/web_calendar_slot_duration/__manifest__.py
@@ -0,0 +1,19 @@
+# Copyright 2021 Tecnativa - Jairo Llopis
+# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).
+{
+ "name": "Calendar slot duration",
+ "summary": "Customizable calendar slot durations",
+ "version": "12.0.1.0.0",
+ "development_status": "Production/Stable",
+ "category": "Extra Tools",
+ "website": "https://github.com/OCA/web",
+ "author": "Tecnativa, Odoo Community Association (OCA)",
+ "maintainers": ["Yajo"],
+ "license": "LGPL-3",
+ "application": False,
+ "installable": True,
+ "depends": ["web"],
+ "data": [
+ "templates/assets.xml",
+ ],
+}
diff --git a/web_calendar_slot_duration/i18n/web_calendar_slot_duration.pot b/web_calendar_slot_duration/i18n/web_calendar_slot_duration.pot
new file mode 100644
index 000000000000..d2e396f159e1
--- /dev/null
+++ b/web_calendar_slot_duration/i18n/web_calendar_slot_duration.pot
@@ -0,0 +1,14 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 12.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
diff --git a/web_calendar_slot_duration/readme/CONFIGURE.rst b/web_calendar_slot_duration/readme/CONFIGURE.rst
new file mode 100644
index 000000000000..987abe5b9ca2
--- /dev/null
+++ b/web_calendar_slot_duration/readme/CONFIGURE.rst
@@ -0,0 +1,9 @@
+This documentation is for developers.
+
+If you want to configure your calendar view's snap duration, make sure that you
+action includes a context similar to this (example is the default value)::
+
+ {"calendar_slot_duration": "00:30:00"}
+
+It can be added in actions defined on python or as ``ir.actions.act_window``
+records.
diff --git a/web_calendar_slot_duration/readme/DESCRIPTION.rst b/web_calendar_slot_duration/readme/DESCRIPTION.rst
new file mode 100644
index 000000000000..e0bcd7739a4d
--- /dev/null
+++ b/web_calendar_slot_duration/readme/DESCRIPTION.rst
@@ -0,0 +1,3 @@
+This module extends the functionality of backend calendars to support custom
+slot durations and to allow you to provide more specific UX regarding event
+duration and snapping.
diff --git a/web_calendar_slot_duration/readme/ROADMAP.rst b/web_calendar_slot_duration/readme/ROADMAP.rst
new file mode 100644
index 000000000000..da9d2d706a7a
--- /dev/null
+++ b/web_calendar_slot_duration/readme/ROADMAP.rst
@@ -0,0 +1 @@
+* Drop module if/when https://github.com/odoo/odoo/pull/66739 is merged.
diff --git a/web_calendar_slot_duration/readme/USAGE.rst b/web_calendar_slot_duration/readme/USAGE.rst
new file mode 100644
index 000000000000..f8d0bc646020
--- /dev/null
+++ b/web_calendar_slot_duration/readme/USAGE.rst
@@ -0,0 +1,2 @@
+To use this module, you need to install some other addon that uses it, as it
+doesn't provide any end-user functionality.
diff --git a/web_calendar_slot_duration/static/description/icon.png b/web_calendar_slot_duration/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/web_calendar_slot_duration/static/description/index.html b/web_calendar_slot_duration/static/description/index.html
new file mode 100644
index 000000000000..458ab9fef45f
--- /dev/null
+++ b/web_calendar_slot_duration/static/description/index.html
@@ -0,0 +1,441 @@
+
+
+
+
+
+
+Calendar slot duration
+
+
+
+
+
Calendar slot duration
+
+
+

+
This module extends the functionality of backend calendars to support custom
+slot durations and to allow you to provide more specific UX regarding event
+duration and snapping.
+
Table of contents
+
+
+
+
This documentation is for developers.
+
If you want to configure your calendar viewΓÇÖs snap duration, make sure that you
+action includes a context similar to this (example is the default value):
+
+{"calendar_slot_duration": "00:30:00"}
+
+
It can be added in actions defined on python or as ir.actions.act_window
+records.
+
+
+
+
To use this module, you need to install some other addon that uses it, as it
+doesnΓÇÖt provide any end-user functionality.
+
+
+
+
+
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.
+
+
+
+
+
+
+
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/web project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+
diff --git a/web_calendar_slot_duration/static/src/js/calendar_model.js b/web_calendar_slot_duration/static/src/js/calendar_model.js
new file mode 100644
index 000000000000..e4fd434a35db
--- /dev/null
+++ b/web_calendar_slot_duration/static/src/js/calendar_model.js
@@ -0,0 +1,22 @@
+/* Copyright 2021 Tecnativa - Jairo Llopis
+ * License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). */
+
+odoo.define("web_calendar_slot_duration.CalendarModel", function (require) {
+ "use strict";
+
+ var CalendarModel = require("web.CalendarModel");
+
+ CalendarModel.include({
+ /**
+ * @override
+ */
+ _getFullCalendarOptions: function () {
+ var result = this._super.call(this, arguments);
+ result.slotDuration =
+ this.data.context.calendar_slot_duration ||
+ result.slotDuration ||
+ "00:30:00";
+ return result;
+ },
+ });
+});
diff --git a/web_calendar_slot_duration/templates/assets.xml b/web_calendar_slot_duration/templates/assets.xml
new file mode 100644
index 000000000000..74b6b5cd8e01
--- /dev/null
+++ b/web_calendar_slot_duration/templates/assets.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
From f21fd1dbeaaa8ed2abda97801c2089333dbfe62c Mon Sep 17 00:00:00 2001
From: Marcel Savegnago
Date: Mon, 15 Mar 2021 03:51:02 +0000
Subject: [PATCH 02/18] Added translation using Weblate (Portuguese (Brazil))
---
web_calendar_slot_duration/i18n/pt_BR.po | 14 ++++++++++++++
1 file changed, 14 insertions(+)
create mode 100644 web_calendar_slot_duration/i18n/pt_BR.po
diff --git a/web_calendar_slot_duration/i18n/pt_BR.po b/web_calendar_slot_duration/i18n/pt_BR.po
new file mode 100644
index 000000000000..7971f5f93e54
--- /dev/null
+++ b/web_calendar_slot_duration/i18n/pt_BR.po
@@ -0,0 +1,14 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 12.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"
From b6b63343f07ba366f7e94ddbd286b1030a6f80d2 Mon Sep 17 00:00:00 2001
From: Maria Sparenberg
Date: Tue, 6 Apr 2021 06:52:03 +0000
Subject: [PATCH 03/18] Added translation using Weblate (German)
---
web_calendar_slot_duration/i18n/de.po | 14 ++++++++++++++
1 file changed, 14 insertions(+)
create mode 100644 web_calendar_slot_duration/i18n/de.po
diff --git a/web_calendar_slot_duration/i18n/de.po b/web_calendar_slot_duration/i18n/de.po
new file mode 100644
index 000000000000..d675667da8a6
--- /dev/null
+++ b/web_calendar_slot_duration/i18n/de.po
@@ -0,0 +1,14 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 12.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: de\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"
From 19cd61db75cdac4914eb6946c4afccb264fd5fab Mon Sep 17 00:00:00 2001
From: Jairo Llopis
Date: Tue, 13 Jul 2021 12:15:26 +0100
Subject: [PATCH 04/18] [MIG] web_calendar_slot_duration: migration to 13.0
Most normal migration ever.
@Tecnativa TT30987
[UPD] Update web_calendar_slot_duration.pot
[UPD] README.rst
Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.
Translation: web-13.0/web-13.0-web_calendar_slot_duration
Translate-URL: https://translation.odoo-community.org/projects/web-13-0/web-13-0-web_calendar_slot_duration/
---
web_calendar_slot_duration/README.rst | 10 +++++-----
web_calendar_slot_duration/__manifest__.py | 6 ++----
web_calendar_slot_duration/i18n/de.po | 14 --------------
.../i18n/web_calendar_slot_duration.pot | 5 ++---
.../static/description/index.html | 6 +++---
.../static/src/js/calendar_model.js | 4 ++--
web_calendar_slot_duration/templates/assets.xml | 8 +++++---
7 files changed, 19 insertions(+), 34 deletions(-)
diff --git a/web_calendar_slot_duration/README.rst b/web_calendar_slot_duration/README.rst
index c0e8e686de46..0aed5acbe0ec 100644
--- a/web_calendar_slot_duration/README.rst
+++ b/web_calendar_slot_duration/README.rst
@@ -14,13 +14,13 @@ Calendar slot duration
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github
- :target: https://github.com/OCA/web/tree/12.0/web_calendar_slot_duration
+ :target: https://github.com/OCA/web/tree/13.0/web_calendar_slot_duration
:alt: OCA/web
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/web-12-0/web-12-0-web_calendar_slot_duration
+ :target: https://translation.odoo-community.org/projects/web-13-0/web-13-0-web_calendar_slot_duration
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/162/12.0
+ :target: https://runbot.odoo-community.org/runbot/162/13.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -64,7 +64,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.
@@ -97,6 +97,6 @@ Current `maintainer `__:
|maintainer-Yajo|
-This module is part of the `OCA/web `_ project on GitHub.
+This module is part of the `OCA/web `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/web_calendar_slot_duration/__manifest__.py b/web_calendar_slot_duration/__manifest__.py
index 40d1ca107d8d..4fa0686e697f 100644
--- a/web_calendar_slot_duration/__manifest__.py
+++ b/web_calendar_slot_duration/__manifest__.py
@@ -3,7 +3,7 @@
{
"name": "Calendar slot duration",
"summary": "Customizable calendar slot durations",
- "version": "12.0.1.0.0",
+ "version": "13.0.1.0.0",
"development_status": "Production/Stable",
"category": "Extra Tools",
"website": "https://github.com/OCA/web",
@@ -13,7 +13,5 @@
"application": False,
"installable": True,
"depends": ["web"],
- "data": [
- "templates/assets.xml",
- ],
+ "data": ["templates/assets.xml"],
}
diff --git a/web_calendar_slot_duration/i18n/de.po b/web_calendar_slot_duration/i18n/de.po
index d675667da8a6..e69de29bb2d1 100644
--- a/web_calendar_slot_duration/i18n/de.po
+++ b/web_calendar_slot_duration/i18n/de.po
@@ -1,14 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
-"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"Language: de\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"
diff --git a/web_calendar_slot_duration/i18n/web_calendar_slot_duration.pot b/web_calendar_slot_duration/i18n/web_calendar_slot_duration.pot
index d2e396f159e1..cc93d01ee547 100644
--- a/web_calendar_slot_duration/i18n/web_calendar_slot_duration.pot
+++ b/web_calendar_slot_duration/i18n/web_calendar_slot_duration.pot
@@ -3,12 +3,11 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: <>\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"
-
diff --git a/web_calendar_slot_duration/static/description/index.html b/web_calendar_slot_duration/static/description/index.html
index 458ab9fef45f..2e2b0a1dfc1f 100644
--- a/web_calendar_slot_duration/static/description/index.html
+++ b/web_calendar_slot_duration/static/description/index.html
@@ -367,7 +367,7 @@ Calendar slot duration
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

+

This module extends the functionality of backend calendars to support custom
slot durations and to allow you to provide more specific UX regarding event
duration and snapping.
@@ -412,7 +412,7 @@
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.
diff --git a/web_calendar_slot_duration/static/src/js/calendar_model.js b/web_calendar_slot_duration/static/src/js/calendar_model.js
index e4fd434a35db..3f4105fb4bbc 100644
--- a/web_calendar_slot_duration/static/src/js/calendar_model.js
+++ b/web_calendar_slot_duration/static/src/js/calendar_model.js
@@ -1,7 +1,7 @@
/* Copyright 2021 Tecnativa - Jairo Llopis
* License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). */
-odoo.define("web_calendar_slot_duration.CalendarModel", function (require) {
+odoo.define("web_calendar_slot_duration.CalendarModel", function(require) {
"use strict";
var CalendarModel = require("web.CalendarModel");
@@ -10,7 +10,7 @@ odoo.define("web_calendar_slot_duration.CalendarModel", function (require) {
/**
* @override
*/
- _getFullCalendarOptions: function () {
+ _getFullCalendarOptions: function() {
var result = this._super.call(this, arguments);
result.slotDuration =
this.data.context.calendar_slot_duration ||
diff --git a/web_calendar_slot_duration/templates/assets.xml b/web_calendar_slot_duration/templates/assets.xml
index 74b6b5cd8e01..e68c17fc2f9d 100644
--- a/web_calendar_slot_duration/templates/assets.xml
+++ b/web_calendar_slot_duration/templates/assets.xml
@@ -1,12 +1,14 @@
-
+
-
-
+
From f8a3cfc9a25e8a61013d86492d79a146502c7f85 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?=
Date: Wed, 5 Jan 2022 09:13:30 +0100
Subject: [PATCH 05/18] [IMP] web_calendar_slot_duration: black, isort,
prettier
---
web_calendar_slot_duration/static/src/js/calendar_model.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/web_calendar_slot_duration/static/src/js/calendar_model.js b/web_calendar_slot_duration/static/src/js/calendar_model.js
index 3f4105fb4bbc..e4fd434a35db 100644
--- a/web_calendar_slot_duration/static/src/js/calendar_model.js
+++ b/web_calendar_slot_duration/static/src/js/calendar_model.js
@@ -1,7 +1,7 @@
/* Copyright 2021 Tecnativa - Jairo Llopis
* License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). */
-odoo.define("web_calendar_slot_duration.CalendarModel", function(require) {
+odoo.define("web_calendar_slot_duration.CalendarModel", function (require) {
"use strict";
var CalendarModel = require("web.CalendarModel");
@@ -10,7 +10,7 @@ odoo.define("web_calendar_slot_duration.CalendarModel", function(require) {
/**
* @override
*/
- _getFullCalendarOptions: function() {
+ _getFullCalendarOptions: function () {
var result = this._super.call(this, arguments);
result.slotDuration =
this.data.context.calendar_slot_duration ||
From 19c7479acfba2657805b790b2e6d77c4a587356b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?=
Date: Wed, 5 Jan 2022 09:15:43 +0100
Subject: [PATCH 06/18] [MIG] web_calendar_slot_duration: Migration to 14.0
---
web_calendar_slot_duration/README.rst | 10 +++++-----
web_calendar_slot_duration/__manifest__.py | 2 +-
.../static/description/index.html | 8 ++++----
3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/web_calendar_slot_duration/README.rst b/web_calendar_slot_duration/README.rst
index 0aed5acbe0ec..80cd3e83bbf5 100644
--- a/web_calendar_slot_duration/README.rst
+++ b/web_calendar_slot_duration/README.rst
@@ -14,13 +14,13 @@ Calendar slot duration
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github
- :target: https://github.com/OCA/web/tree/13.0/web_calendar_slot_duration
+ :target: https://github.com/OCA/web/tree/14.0/web_calendar_slot_duration
:alt: OCA/web
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/web-13-0/web-13-0-web_calendar_slot_duration
+ :target: https://translation.odoo-community.org/projects/web-14-0/web-14-0-web_calendar_slot_duration
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/162/13.0
+ :target: https://runbot.odoo-community.org/runbot/162/14.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -64,7 +64,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.
@@ -97,6 +97,6 @@ Current `maintainer `__:
|maintainer-Yajo|
-This module is part of the `OCA/web `_ project on GitHub.
+This module is part of the `OCA/web `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/web_calendar_slot_duration/__manifest__.py b/web_calendar_slot_duration/__manifest__.py
index 4fa0686e697f..f1cf996d4a8e 100644
--- a/web_calendar_slot_duration/__manifest__.py
+++ b/web_calendar_slot_duration/__manifest__.py
@@ -3,7 +3,7 @@
{
"name": "Calendar slot duration",
"summary": "Customizable calendar slot durations",
- "version": "13.0.1.0.0",
+ "version": "14.0.1.0.0",
"development_status": "Production/Stable",
"category": "Extra Tools",
"website": "https://github.com/OCA/web",
diff --git a/web_calendar_slot_duration/static/description/index.html b/web_calendar_slot_duration/static/description/index.html
index 2e2b0a1dfc1f..004d0e2e1563 100644
--- a/web_calendar_slot_duration/static/description/index.html
+++ b/web_calendar_slot_duration/static/description/index.html
@@ -3,7 +3,7 @@
-
+
Calendar slot duration
-
-
Calendar slot duration
+
+
+
+
+
+
+
Calendar slot duration
-

+

This module extends the functionality of backend calendars to support
custom slot durations and to allow you to provide more specific UX
regarding event duration and snapping.
@@ -389,7 +394,7 @@
Calendar slot duration
-
+
This documentation is for developers.
If you want to configure your calendar view’s snap duration, make sure
that your window action includes a context similar to this (example is
@@ -399,40 +404,40 @@
It can be added in actions defined on python or as
ir.actions.act_window records.
-

-

+

+

-
+
To use this module, you need to install some other addon that uses it,
as it doesn’t provide any end-user functionality.
As demo data, this module modifies the “Scheduled Actions” calendar to
have slots of 10 minutes as feature demonstration.
-
+
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.
+
feedback.
Do not contact contributors directly about support or help with technical issues.
+