diff --git a/CHANGELOG.md b/CHANGELOG.md index 0316db0..77ceb88 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 4.0.0 +## Added +- support for plone 6 + ## 3.0.0 ## Added - download as diff --git a/README.md b/README.md index 10550e4..390565f 100644 --- a/README.md +++ b/README.md @@ -12,8 +12,10 @@ The plugin allows to: Supported formats: -* For viewing and editing: DOCX, XLSX, PPTX, DOCXF, OFORM. -* For viewing only: PDF, ODT, ODS, ODP, DOC, XLS, PPT. +* For editing: DOCX, XLSX, PPTX, DOCXF, OFORM. +* For viewing: DJVU, DOC, DOCM, DOCX, DOCXF, DOT, DOTM, DOTX, EPUB, FB2, FODT, HTML, MHT, ODT, OTT, OXPS, PDF, RTF, TXT, XPS, XML, OFORM, CSV, FODS, ODS, OTS, XLS, XLSB, XLSM, XLSX, XLT, XLTM, XLTX, FODP, ODP, OTP, POT, POTM, POTX, PPS, PPSM, PPSX, PPT, PPTM, PPTX. +* For converting (download as): DOC, DOCM, DOCX, DOCXF, DOT, DOTM, DOTX, EPUB, FB2, FODT, HTML, MHT, ODT, OTT, OXPS, PDF, RTF, XPS, XML, OFORM, FODS, ODS, OTS, XLS, XLSB, XLSM, XLSX, XLT, XLTM, XLTX, FODP, ODP, OTP, POT, POTM, POTX, PPS, PPSM, PPSX, PPT, PPTM, PPTX. +* For converting to Office Open XML: DOC, DOCM, DOCXF, DOT, DOTM, DOTX, EPUB, FB2, FODT, HTML, MHT, ODT, OTT, OXPS, PDF, RTF, XPS, XML, FODS, ODS, OTS, XLS, XLSB, XLSM, XLT, XLTM, XLTX, FODP, ODP, OTP, POT, POTM, POTX, PPS, PPSM, PPSX, PPT, PPTM. ## Installing ONLYOFFICE Docs @@ -29,29 +31,19 @@ Community Edition vs Enterprise Edition comparison can be found [here](#onlyoffi ## Installing Plone ONLYOFFICE integration plugin -1. Install plugin by adding it to your `buildout.cfg`: - ``` - [buildout] +1. Installation instructions can be found under [Manage add-ons and packages](https://6.docs.plone.org/install/manage-add-ons-packages.html). +2. To activate, go to `Site Setup` -> `Add-ons` and press the `Install` button to enable the plugin. - ... - - eggs = - onlyoffice.plone - ``` -2. Run `bin/buildout`. -3. Go to `Site Setup` -> `Add-ons`and press the `Install` button to enable plugin. - -You could also install plugin via Docker +You can also install the plugin via Docker: ``` -docker run --rm -p 8080:8080 -e ADDONS="onlyoffice.plone" plone +docker run -p 8080:8080 -e ADDONS="onlyoffice.plone" plone/plone-backend:6.0 start ``` -Both options will automatically install plugin from [PyPi](https://pypi.org/project/onlyoffice.plone/). -**Please note:** if you have the previous plugin version installed (earlier plugin versions with the previous name onlyoffice.connector), please remove it before installing the new version. +**Please note:** If you have the previous plugin version installed (earlier plugin versions with the previous name *onlyoffice.connector*), please remove it before installing the new version. ## Configuring Plone ONLYOFFICE integration plugin -To configure plugin go to `Site Setup`. Scroll down to `Add-ons Configuration` section and press the `ONLYOFFICE Configuration` button. +To configure the plugin, go to `Site Setup`. Scroll down to the `Add-ons Configuration` section and press the `ONLYOFFICE Configuration` button. Starting from version 7.2, JWT is enabled by default and the secret key is generated automatically to restrict the access to ONLYOFFICE Docs and for security reasons and data integrity. Specify your own **Secret key** on the Plone configuration page. @@ -59,60 +51,16 @@ In the ONLYOFFICE Docs [config file](https://api.onlyoffice.com/editors/signatur ## Developing Plone ONLYOFFICE plugin -1. Clone repository and change directory: - ``` - git clone --branch deploy git@github.com:ONLYOFFICE/onlyoffice-plone.git - cd onlyoffice-plone - ``` -2. Create a virtualenv in the package. -3. Install requirements with pip. -4. Run buildout: - ``` - virtualenv . - ./bin/pip install -r requirements.txt - ./bin/buildout - ``` -5. Start Plone in foreground: - ``` - ./bin/instance fg - ``` -If you have a working Plone instance, you can install plugin by adding the project files to the src directory: -1. In the src directory create the onlyoffice.plone directory. -2. Put your project files received by git into the onlyoffice.plone directory. -3. Edit the buildout.cfg file: - ``` - [buildout] - - ... - - eggs = - onlyoffice.plone - - develop = - src/onlyoffice.plone - ``` -4. Rerun buildout for the changes to take effect: - ``` - ./bin/buildout - ``` -5. Then start or restart your Plone instance. - -Note that Plone is based on Zope server and will not run as `root` user. If you intend to run it as `root` user. You must supply [effective-user directive](https://zope.readthedocs.io/en/2.12/SETUID.html). In order to do so add `effective-user ` line to `./parts/instance/etc/zope.conf`. - -## Upgrade Plone ONLYOFFICE integration plugin -1. If you specified a concrete plugin version in your buildout.cfg file (so-called “pinning”, and a recommended practice), - like onlyoffice.plone = 1.0.0, update this reference to point to the newer version. If the plugin version is not - specified, then the latest version will be automatically loaded: - ``` - [versions] +Run this command to install the addon from the local repository: +``` +docker run -p 8080:8080 -e DEVELOP="/app/src/onlyoffice.plone" -v /path/to/onlyoffice.plone:/app/src/onlyoffice.plone plone/plone-backend:6.0 start +``` - ... +For more information, check [Developing packages variable](https://6.dev-docs.plone.org/install/containers/images/backend.html#developing-packages-variable). - onlyoffice.plone = 1.0.1 - ``` -2. Run bin/buildout. Wait until the new version is downloaded and installed. -3. Restart Plone - your site may look weird, or even be inaccessible until you have performed the next step. -4. Navigate to the Add-on screen (add /prefs_install_products_form to your site URL) and in the Upgrades list select onlyoffice.plone and click "Upgrade onlyoffice.plone". +## Upgrade Plone ONLYOFFICE integration plugin +1. Update instructions can be found under [Manage add-ons and packages](https://6.docs.plone.org/install/manage-add-ons-packages.html). +2. Navigate to the Add-on screen (add `/prefs_install_products_form` to your site URL) and in the Upgrades list select **onlyoffice.plone** and click *Upgrade onlyoffice.plone*. ## How it works @@ -204,4 +152,4 @@ The table below will help you make the right choice. | Saving as PDF | + | + | | | [Get it now](https://www.onlyoffice.com/download-docs.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubPlone#docs-community) | [Start Free Trial](https://www.onlyoffice.com/download-docs.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubPlone#docs-enterprise) | -\* If supported by DMS. \ No newline at end of file +\* If supported by DMS. diff --git a/setup.py b/setup.py index c770221..eba651b 100644 --- a/setup.py +++ b/setup.py @@ -14,7 +14,7 @@ setup( name='onlyoffice.plone', - version='3.0.0', + version='4.0.0', description="Plone ONLYOFFICE integration plugin", long_description=long_description, long_description_content_type="text/markdown", @@ -23,13 +23,12 @@ "Environment :: Web Environment", "Framework :: Plone", "Framework :: Plone :: Addon", - "Framework :: Plone :: 5.1", - "Framework :: Plone :: 5.2", + "Framework :: Plone :: 6.0", "Programming Language :: Python", - "Programming Language :: Python :: 3.4", - "Programming Language :: Python :: 3.5", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", "Operating System :: OS Independent", "License :: OSI Approved :: Apache Software License", ], @@ -49,22 +48,18 @@ package_dir={'': 'src'}, include_package_data=True, zip_safe=False, - python_requires=">=3.4", install_requires=[ 'setuptools', # -*- Extra requirements: -*- 'z3c.jbot', - 'plone.api>=1.8.4', + 'plone.api', 'plone.restapi', 'plone.app.dexterity', ], extras_require={ 'test': [ 'plone.app.testing', - # Plone KGS does not use this version, because it would break - # Remove if your package shall be part of coredev. - # plone_coredev tests as of 2016-04-01. - 'plone.testing>=5.0.0', + 'plone.testing', 'plone.app.contenttypes', 'plone.app.robotframework[debug]', ], diff --git a/src/onlyoffice/plone/browser/actions.py b/src/onlyoffice/plone/browser/actions.py index 9dc73df..13b45ff 100644 --- a/src/onlyoffice/plone/browser/actions.py +++ b/src/onlyoffice/plone/browser/actions.py @@ -1,5 +1,5 @@ # -# (c) Copyright Ascensio System SIA 2022 +# (c) Copyright Ascensio System SIA 2023 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -88,7 +88,7 @@ def handle_cancel(self, action): def updateActions(self): super().updateActions() if self.actions and "Convert" in self.actions: - self.actions["Convert"].addClass("context") + self.actions["Convert"].addClass("btn-primary") class DownloadAsForm(form.Form): fields = field.Fields(IDownloadAsForm) diff --git a/src/onlyoffice/plone/browser/api.py b/src/onlyoffice/plone/browser/api.py index cec452e..1640cf1 100644 --- a/src/onlyoffice/plone/browser/api.py +++ b/src/onlyoffice/plone/browser/api.py @@ -1,5 +1,5 @@ # -# (c) Copyright Ascensio System SIA 2022 +# (c) Copyright Ascensio System SIA 2023 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/src/onlyoffice/plone/browser/configure.zcml b/src/onlyoffice/plone/browser/configure.zcml index d41997e..8d29643 100644 --- a/src/onlyoffice/plone/browser/configure.zcml +++ b/src/onlyoffice/plone/browser/configure.zcml @@ -18,6 +18,12 @@ name="onlyoffice-static" directory="static" /> + + @@ -165,6 +177,7 @@ name="onlyoffice-download-as-file" class=".actions.DownloadAsForm" permission="zope2.View" + allowed_attributes="isAvailable" /> - - -Copyright (C) 2021 by original authors @ fontello.com - - - - - - - - - - - - - - - - diff --git a/src/onlyoffice/plone/browser/static/font/onlyoffice.ttf b/src/onlyoffice/plone/browser/static/font/onlyoffice.ttf deleted file mode 100644 index eafe9b7..0000000 Binary files a/src/onlyoffice/plone/browser/static/font/onlyoffice.ttf and /dev/null differ diff --git a/src/onlyoffice/plone/browser/static/font/onlyoffice.woff b/src/onlyoffice/plone/browser/static/font/onlyoffice.woff deleted file mode 100644 index 6e5a731..0000000 Binary files a/src/onlyoffice/plone/browser/static/font/onlyoffice.woff and /dev/null differ diff --git a/src/onlyoffice/plone/browser/static/font/onlyoffice.woff2 b/src/onlyoffice/plone/browser/static/font/onlyoffice.woff2 deleted file mode 100644 index 64e0923..0000000 Binary files a/src/onlyoffice/plone/browser/static/font/onlyoffice.woff2 and /dev/null differ diff --git a/src/onlyoffice/plone/browser/static/icons/onlyoffice-file-cell.svg b/src/onlyoffice/plone/browser/static/icons/onlyoffice-file-cell.svg new file mode 100644 index 0000000..79a5976 --- /dev/null +++ b/src/onlyoffice/plone/browser/static/icons/onlyoffice-file-cell.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/onlyoffice/plone/browser/static/icons/onlyoffice-file-form.svg b/src/onlyoffice/plone/browser/static/icons/onlyoffice-file-form.svg new file mode 100644 index 0000000..6ca55bc --- /dev/null +++ b/src/onlyoffice/plone/browser/static/icons/onlyoffice-file-form.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/onlyoffice/plone/browser/static/icons/onlyoffice-file-slide.svg b/src/onlyoffice/plone/browser/static/icons/onlyoffice-file-slide.svg new file mode 100644 index 0000000..3d6073f --- /dev/null +++ b/src/onlyoffice/plone/browser/static/icons/onlyoffice-file-slide.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/onlyoffice/plone/browser/static/icons/onlyoffice-file-word.svg b/src/onlyoffice/plone/browser/static/icons/onlyoffice-file-word.svg new file mode 100644 index 0000000..73447cd --- /dev/null +++ b/src/onlyoffice/plone/browser/static/icons/onlyoffice-file-word.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/onlyoffice/plone/browser/static/icons/onlyoffice-logo.svg b/src/onlyoffice/plone/browser/static/icons/onlyoffice-logo.svg new file mode 100644 index 0000000..235ef4f --- /dev/null +++ b/src/onlyoffice/plone/browser/static/icons/onlyoffice-logo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/onlyoffice/plone/browser/static/js/controlpanel.js b/src/onlyoffice/plone/browser/static/js/controlpanel.js index 7f9cb6b..180e723 100644 --- a/src/onlyoffice/plone/browser/static/js/controlpanel.js +++ b/src/onlyoffice/plone/browser/static/js/controlpanel.js @@ -1,6 +1,4 @@ -require([ - "jquery" -], function ($) { +jQuery(function($){ /* Disable a control panel setting */ $.disableSettings = function (settings) { diff --git a/src/onlyoffice/plone/browser/static/js/convert.js b/src/onlyoffice/plone/browser/static/js/convert.js index 5cb6cea..bdcb9ac 100644 --- a/src/onlyoffice/plone/browser/static/js/convert.js +++ b/src/onlyoffice/plone/browser/static/js/convert.js @@ -1,6 +1,4 @@ -require([ - "jquery" -], function ($) { +jQuery(function($){ $(document).ready(function () { var form = $("form[class*='view-name-onlyoffice-convert']"); var titleInput = $("#form-widgets-title"); diff --git a/src/onlyoffice/plone/browser/static/js/utils.js b/src/onlyoffice/plone/browser/static/js/utils.js index baae1c7..274cb5c 100644 --- a/src/onlyoffice/plone/browser/static/js/utils.js +++ b/src/onlyoffice/plone/browser/static/js/utils.js @@ -1,8 +1,4 @@ -require([ - "jquery", - "mockup-i18n" -], function ($, I18N) { - +jQuery(function($){ $.I18N = function (msgid, mapping = {}) { var i18n = new I18N(); i18n.loadCatalog("onlyoffice.plone"); @@ -11,16 +7,137 @@ require([ } $.showMessage = function(message, type, modal = false) { - var global_message = modal ? $(".plone-modal-dialog #global_statusmessage") : $("#global_statusmessage"); - + var global_message = modal ? $(".modal-dialog #global_statusmessage") : $("#global_statusmessage"); global_message.empty(); + var svgError = 'Error'; + + var typeAlert = type == "error" ? "danger" : type; + global_message.html( - "
" + - "" + $("#" + type).text() + "" + + "
" + + "" + svgError + $("#" + type).text() + " " + message + "
" ); }; + + const I18N = function () { + var self = this; + self.baseUrl = $("body").attr("data-i18ncatalogurl"); + self.currentLanguage = $("html").attr("lang") || "en"; + + // Fix for country specific languages + if (self.currentLanguage.split("-").length > 1) { + self.currentLanguage = + self.currentLanguage.split("-")[0] + + "_" + + self.currentLanguage.split("-")[1].toUpperCase(); + } + + self.storage = null; + self.catalogs = {}; + self.ttl = 24 * 3600 * 1000; + + // Internet Explorer 8 does not know Date.now() which is used in e.g. loadCatalog, so we "define" it + if (!Date.now) { + Date.now = function () { + return new Date().valueOf(); + }; + } + + try { + if ( + "localStorage" in window && + window.localStorage !== null && + "JSON" in window && + window.JSON !== null + ) { + self.storage = window.localStorage; + } + } catch (e) {} + + self.configure = function (config) { + for (var key in config) { + self[key] = config[key]; + } + }; + + self._setCatalog = function (domain, language, catalog) { + if (domain in self.catalogs) { + self.catalogs[domain][language] = catalog; + } else { + self.catalogs[domain] = {}; + self.catalogs[domain][language] = catalog; + } + }; + + self._storeCatalog = function (domain, language, catalog) { + var key = domain + "-" + language; + if (self.storage !== null && catalog !== null) { + self.storage.setItem(key, JSON.stringify(catalog)); + self.storage.setItem(key + "-updated", Date.now()); + } + }; + + self.getUrl = function (domain, language) { + return self.baseUrl + "?domain=" + domain + "&language=" + language; + }; + + self.loadCatalog = function (domain, language) { + if (language === undefined) { + language = self.currentLanguage; + } + if (self.storage !== null) { + var key = domain + "-" + language; + if (key in self.storage) { + if ( + Date.now() - parseInt(self.storage.getItem(key + "-updated"), 10) < + self.ttl + ) { + var catalog = JSON.parse(self.storage.getItem(key)); + self._setCatalog(domain, language, catalog); + return; + } + } + } + if (!self.baseUrl) { + return; + } + $.getJSON(self.getUrl(domain, language), function (catalog) { + if (catalog === null) { + return; + } + self._setCatalog(domain, language, catalog); + self._storeCatalog(domain, language, catalog); + }); + }; + + self.MessageFactory = function (domain, language) { + language = language || self.currentLanguage; + return function translate(msgid, keywords) { + var msgstr; + if ( + domain in self.catalogs && + language in self.catalogs[domain] && + msgid in self.catalogs[domain][language] + ) { + msgstr = self.catalogs[domain][language][msgid]; + } else { + msgstr = msgid; + } + if (keywords) { + var regexp, keyword; + for (keyword in keywords) { + if (keywords.hasOwnProperty(keyword)) { + regexp = new RegExp("\\$\\{" + keyword + "\\}", "g"); + msgstr = msgstr.replace(regexp, keywords[keyword]); + } + } + } + return msgstr; + }; + }; + }; }); \ No newline at end of file diff --git a/src/onlyoffice/plone/browser/templates/controlpanel.pt b/src/onlyoffice/plone/browser/templates/controlpanel.pt index 7660867..6e46964 100644 --- a/src/onlyoffice/plone/browser/templates/controlpanel.pt +++ b/src/onlyoffice/plone/browser/templates/controlpanel.pt @@ -25,7 +25,7 @@ - + diff --git a/src/onlyoffice/plone/browser/templates/convert.pt b/src/onlyoffice/plone/browser/templates/convert.pt index 404e3cb..5e134a1 100644 --- a/src/onlyoffice/plone/browser/templates/convert.pt +++ b/src/onlyoffice/plone/browser/templates/convert.pt @@ -7,7 +7,7 @@ - + + + @@ -31,20 +34,25 @@ form div.fieldErrorBox { display: inline-block; } + form .choice-field{ width: 100% } + + .hide { + display: none !important; + }

Download as

-
+
- - -
+ + +
diff --git a/src/onlyoffice/plone/browser/templates/error.pt b/src/onlyoffice/plone/browser/templates/error.pt index 94634d6..80b7c70 100644 --- a/src/onlyoffice/plone/browser/templates/error.pt +++ b/src/onlyoffice/plone/browser/templates/error.pt @@ -8,7 +8,7 @@ diff --git a/src/onlyoffice/plone/profiles/default/registry.xml b/src/onlyoffice/plone/profiles/default/registry.xml index 3201f83..9d373b3 100644 --- a/src/onlyoffice/plone/profiles/default/registry.xml +++ b/src/onlyoffice/plone/profiles/default/registry.xml @@ -7,14 +7,39 @@ + + + ONLYOFFICE Logo Icon + + ++plone++onlyoffice-icons/onlyoffice-logo.svg + - - True - ++resource++onlyoffice-static/css/onlyoffice.css - 2021-11-16 00:00:00 - False - plone - + + + ONLYOFFICE File Word Icon + + ++plone++onlyoffice-icons/onlyoffice-file-word.svg + + + + + ONLYOFFICE File Cell Icon + + ++plone++onlyoffice-icons/onlyoffice-file-cell.svg + + + + + ONLYOFFICE File Slide Icon + + ++plone++onlyoffice-icons/onlyoffice-file-slide.svg + + + + + ONLYOFFICE File Form Icon + + ++plone++onlyoffice-icons/onlyoffice-file-form.svg + diff --git a/src/onlyoffice/plone/profiles/default/types/Document.xml b/src/onlyoffice/plone/profiles/default/types/Document.xml index 5bd1293..4bdf2df 100644 --- a/src/onlyoffice/plone/profiles/default/types/Document.xml +++ b/src/onlyoffice/plone/profiles/default/types/Document.xml @@ -14,7 +14,8 @@ i18n:attributes="title" title="Conversion in ONLYOFFICE" url_expr="string:${object_url}/onlyoffice-convert-document" - visible="True"> + visible="True" + icon_expr="string:onlyoffice-logo"> \ No newline at end of file diff --git a/src/onlyoffice/plone/profiles/default/types/File.xml b/src/onlyoffice/plone/profiles/default/types/File.xml index 1323d89..d71116e 100644 --- a/src/onlyoffice/plone/profiles/default/types/File.xml +++ b/src/onlyoffice/plone/profiles/default/types/File.xml @@ -14,7 +14,8 @@ i18n:attributes="title" title="ONLYOFFICE Edit" url_expr="string:${object_url}/onlyoffice-edit" - visible="True"> + visible="True" + icon_expr="string:onlyoffice-logo"> @@ -26,7 +27,8 @@ i18n:attributes="title" title="Fill in form in ONLYOFFICE" url_expr="string:${object_url}/onlyoffice-fill-form" - visible="True"> + visible="True" + icon_expr="string:onlyoffice-logo"> @@ -38,7 +40,8 @@ i18n:attributes="title" title="Conversion in ONLYOFFICE" url_expr="string:${object_url}/onlyoffice-convert-file" - visible="True"> + visible="True" + icon_expr="string:onlyoffice-logo"> \ No newline at end of file diff --git a/src/onlyoffice/plone/profiles/uninstall/registry.xml b/src/onlyoffice/plone/profiles/uninstall/registry.xml deleted file mode 100644 index 6d5a4e3..0000000 --- a/src/onlyoffice/plone/profiles/uninstall/registry.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/src/onlyoffice/plone/setuphandlers.py b/src/onlyoffice/plone/setuphandlers.py index b140d2d..fe99df3 100644 --- a/src/onlyoffice/plone/setuphandlers.py +++ b/src/onlyoffice/plone/setuphandlers.py @@ -1,5 +1,5 @@ # -# (c) Copyright Ascensio System SIA 2022 +# (c) Copyright Ascensio System SIA 2023 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/src/onlyoffice/plone/testing.py b/src/onlyoffice/plone/testing.py index 90972c6..d27671c 100644 --- a/src/onlyoffice/plone/testing.py +++ b/src/onlyoffice/plone/testing.py @@ -1,5 +1,5 @@ # -# (c) Copyright Ascensio System SIA 2022 +# (c) Copyright Ascensio System SIA 2023 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/src/onlyoffice/plone/tests/test_robot.py b/src/onlyoffice/plone/tests/test_robot.py index af6f3f6..4b7790d 100644 --- a/src/onlyoffice/plone/tests/test_robot.py +++ b/src/onlyoffice/plone/tests/test_robot.py @@ -1,5 +1,5 @@ # -# (c) Copyright Ascensio System SIA 2022 +# (c) Copyright Ascensio System SIA 2023 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/src/onlyoffice/plone/tests/test_setup.py b/src/onlyoffice/plone/tests/test_setup.py index 93e7603..25771d1 100644 --- a/src/onlyoffice/plone/tests/test_setup.py +++ b/src/onlyoffice/plone/tests/test_setup.py @@ -1,5 +1,5 @@ # -# (c) Copyright Ascensio System SIA 2022 +# (c) Copyright Ascensio System SIA 2023 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/src/onlyoffice/plone/upgrades.py b/src/onlyoffice/plone/upgrades.py index a6b2461..f92c5e1 100644 --- a/src/onlyoffice/plone/upgrades.py +++ b/src/onlyoffice/plone/upgrades.py @@ -1,5 +1,5 @@ # -# (c) Copyright Ascensio System SIA 2022 +# (c) Copyright Ascensio System SIA 2023 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License.