From 4cf971fa77129d33beeea643cfc89f8de1fac8c1 Mon Sep 17 00:00:00 2001
From: Jairo Llopis
Date: Wed, 24 Feb 2021 10:55:30 +0000
Subject: [PATCH 01/12] [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 000000000..c0e8e686d
--- /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 000000000..e69de29bb
diff --git a/web_calendar_slot_duration/__manifest__.py b/web_calendar_slot_duration/__manifest__.py
new file mode 100644
index 000000000..40d1ca107
--- /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 000000000..d2e396f15
--- /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 000000000..987abe5b9
--- /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 000000000..e0bcd7739
--- /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 000000000..da9d2d706
--- /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 000000000..f8d0bc646
--- /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 000000000..458ab9fef
--- /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 000000000..e4fd434a3
--- /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 000000000..74b6b5cd8
--- /dev/null
+++ b/web_calendar_slot_duration/templates/assets.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
From e8f465c00910b4d78195f3bc9cf98b197980014b Mon Sep 17 00:00:00 2001
From: Marcel Savegnago
Date: Mon, 15 Mar 2021 03:51:02 +0000
Subject: [PATCH 02/12] 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 000000000..7971f5f93
--- /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 422e7aaadd3cc74fd58346426d2582a9c460e888 Mon Sep 17 00:00:00 2001
From: Maria Sparenberg
Date: Tue, 6 Apr 2021 06:52:03 +0000
Subject: [PATCH 03/12] 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 000000000..d675667da
--- /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 26a81c8480039a509a3dfc536201f34548afb3f3 Mon Sep 17 00:00:00 2001
From: Jairo Llopis
Date: Tue, 13 Jul 2021 12:15:26 +0100
Subject: [PATCH 04/12] [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 c0e8e686d..0aed5acbe 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 40d1ca107..4fa0686e6 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 d675667da..e69de29bb 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 d2e396f15..cc93d01ee 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 458ab9fef..2e2b0a1df 100644
--- a/web_calendar_slot_duration/static/description/index.html
+++ b/web_calendar_slot_duration/static/description/index.html
@@ -367,7 +367,7 @@ ul.auto-toc {
!! 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 @@ 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.
+feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -432,7 +432,7 @@ 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.
+
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
index e4fd434a3..3f4105fb4 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 74b6b5cd8..e68c17fc2 100644
--- a/web_calendar_slot_duration/templates/assets.xml
+++ b/web_calendar_slot_duration/templates/assets.xml
@@ -1,12 +1,14 @@
-
+
-
-
+
From 8f43f7247911555bf89814713392d8a07310fb8f 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/12] [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 3f4105fb4..e4fd434a3 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 6b265b7214ba1e6b3d396a62e63ac299402f651f 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/12] [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 0aed5acbe..80cd3e83b 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 4fa0686e6..f1cf996d4 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 2e2b0a1df..004d0e2e1 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