Browse Source

publish muk_web_client_refresh - 12.0

pull/115/head
MuK IT GmbH 6 years ago
parent
commit
a51e88ccd5
  1. 240
      muk_web_client_refresh/README.rst
  2. 7
      muk_web_client_refresh/__init__.py
  3. 11
      muk_web_client_refresh/__manifest__.py
  4. 7
      muk_web_client_refresh/controllers/__init__.py
  5. 7
      muk_web_client_refresh/controllers/main.py
  6. 89
      muk_web_client_refresh/data/refresh_actions.xml
  7. 240
      muk_web_client_refresh/doc/index.rst
  8. 7
      muk_web_client_refresh/models/__init__.py
  9. 115
      muk_web_client_refresh/models/base.py
  10. 7
      muk_web_client_refresh/models/base_automation.py
  11. 7
      muk_web_client_refresh/models/ir_actions.py
  12. 7
      muk_web_client_refresh/models/res_config_settings.py
  13. 9
      muk_web_client_refresh/static/src/js/client_refresh.js
  14. 15
      muk_web_client_refresh/template/assets.xml
  15. 15
      muk_web_client_refresh/views/refresh_action_view.xml
  16. 87
      muk_web_client_refresh/views/res_config_settings_view.xml

240
muk_web_client_refresh/README.rst

@ -1,120 +1,120 @@
======================
MuK Web Client Refresh
======================
Adds a channel called "refresh" to the web client, which can be used to trigger
a view reload without refreshing the browser itself. Furthermore, it allows the
user the creation of action rules. These rules can be applied to any model and
trigger a refresh either on create, update or unlink.
Installation
============
To install this module, you need to:
Download the module and add it to your Odoo addons folder. Afterward, log on to
your Odoo server and go to the Apps menu. Trigger the debug mode and update the
list by clicking on the "Update Apps List" link. Now install the module by
clicking on the install button.
Another way to install this module is via the package management for Python
(`PyPI <https://pypi.org/project/pip/>`_).
To install our modules using the package manager make sure
`odoo-autodiscover <https://pypi.org/project/odoo-autodiscover/>`_ is installed
correctly. Then open a console and install the module by entering the following
command:
``pip install --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
The module name consists of the Odoo version and the module name, where
underscores are replaced by a dash.
**Module:**
``odoo<version>-addon-<module_name>``
**Example:**
``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo11-addon-muk-utils``
Once the installation has been successfully completed, the app is already in the
correct folder. Log on to your Odoo server and go to the Apps menu. Trigger the
debug mode and update the list by clicking on the "Update Apps List" link. Now
install the module by clicking on the install button.
The biggest advantage of this variant is that you can now also update the app
using the "pip" command. To do this, enter the following command in your console:
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
When the process is finished, restart your server and update the application in
Odoo. The steps are the same as for the installation only the button has changed
from "Install" to "Upgrade".
You can also view available Apps directly in our `repository <https://nexus.mukit.at/#browse/browse:odoo>`_
and find a more detailed installation guide on our `website <https://mukit.at/page/open-source>`_.
For modules licensed under OPL-1, you will receive access data when you purchase
the module. If the modules were not purchased directly from
`MuK IT <https://www.mukit.at/>`_ please contact our support (support@mukit.at)
with a confirmation of purchase to receive the corresponding access data.
Upgrade
============
To upgrade this module, you need to:
Download the module and add it to your Odoo addons folder. Restart the server
and log on to your Odoo server. Select the Apps menu and upgrade the module by
clicking on the upgrade button.
If you installed the module using the "pip" command, you can also update the
module in the same way. Just type the following command into the console:
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
When the process is finished, restart your server and update the application in
Odoo, just like you would normally.
Configuration
=============
To configure this module, you need to:
#. Go to *Settings* while being in debug mode.
#. Afterwards go to *Technical -> Automation -> Automated Refresh*.
#. And create a new refresh action.
Usage
=============
Besides creating a action rule, a view refresh can be triggered manually via python.
This can be useful if there is a need for a view reload on other operations.
Credits
=======
Contributors
------------
* Mathias Markl <mathias.markl@mukit.at>
Images
------------
Some pictures are based on or inspired by the icon set of Font Awesome:
* `Font Awesome <https://fontawesome.com>`_
Author & Maintainer
-------------------
This module is maintained by the `MuK IT GmbH <https://www.mukit.at/>`_.
MuK IT is an Austrian company specialized in customizing and extending Odoo.
We develop custom solutions for your individual needs to help you focus on
your strength and expertise to grow your business.
If you want to get in touch please contact us via mail
(sale@mukit.at) or visit our website (https://mukit.at).
======================
MuK Web Client Refresh
======================
Adds a channel called "refresh" to the web client, which can be used to trigger
a view reload without refreshing the browser itself. Furthermore, it allows the
user the creation of action rules. These rules can be applied to any model and
trigger a refresh either on create, update or unlink.
Installation
============
To install this module, you need to:
Download the module and add it to your Odoo addons folder. Afterward, log on to
your Odoo server and go to the Apps menu. Trigger the debug mode and update the
list by clicking on the "Update Apps List" link. Now install the module by
clicking on the install button.
Another way to install this module is via the package management for Python
(`PyPI <https://pypi.org/project/pip/>`_).
To install our modules using the package manager make sure
`odoo-autodiscover <https://pypi.org/project/odoo-autodiscover/>`_ is installed
correctly. Then open a console and install the module by entering the following
command:
``pip install --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
The module name consists of the Odoo version and the module name, where
underscores are replaced by a dash.
**Module:**
``odoo<version>-addon-<module_name>``
**Example:**
``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo11-addon-muk-utils``
Once the installation has been successfully completed, the app is already in the
correct folder. Log on to your Odoo server and go to the Apps menu. Trigger the
debug mode and update the list by clicking on the "Update Apps List" link. Now
install the module by clicking on the install button.
The biggest advantage of this variant is that you can now also update the app
using the "pip" command. To do this, enter the following command in your console:
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
When the process is finished, restart your server and update the application in
Odoo. The steps are the same as for the installation only the button has changed
from "Install" to "Upgrade".
You can also view available Apps directly in our `repository <https://nexus.mukit.at/#browse/browse:odoo>`_
and find a more detailed installation guide on our `website <https://mukit.at/page/open-source>`_.
For modules licensed under OPL-1, you will receive access data when you purchase
the module. If the modules were not purchased directly from
`MuK IT <https://www.mukit.at/>`_ please contact our support (support@mukit.at)
with a confirmation of purchase to receive the corresponding access data.
Upgrade
============
To upgrade this module, you need to:
Download the module and add it to your Odoo addons folder. Restart the server
and log on to your Odoo server. Select the Apps menu and upgrade the module by
clicking on the upgrade button.
If you installed the module using the "pip" command, you can also update the
module in the same way. Just type the following command into the console:
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
When the process is finished, restart your server and update the application in
Odoo, just like you would normally.
Configuration
=============
To configure this module, you need to:
#. Go to *Settings* while being in debug mode.
#. Afterwards go to *Technical -> Automation -> Automated Refresh*.
#. And create a new refresh action.
Usage
=============
Besides creating a action rule, a view refresh can be triggered manually via python.
This can be useful if there is a need for a view reload on other operations.
Credits
=======
Contributors
------------
* Mathias Markl <mathias.markl@mukit.at>
Images
------------
Some pictures are based on or inspired by the icon set of Font Awesome:
* `Font Awesome <https://fontawesome.com>`_
Author & Maintainer
-------------------
This module is maintained by the `MuK IT GmbH <https://www.mukit.at/>`_.
MuK IT is an Austrian company specialized in customizing and extending Odoo.
We develop custom solutions for your individual needs to help you focus on
your strength and expertise to grow your business.
If you want to get in touch please contact us via mail
(sale@mukit.at) or visit our website (https://mukit.at).

7
muk_web_client_refresh/__init__.py

@ -1,6 +1,9 @@
###################################################################################
#
# Copyright (C) 2017 MuK IT GmbH
# Copyright (c) 2017-2019 MuK IT GmbH.
#
# This file is part of MuK Web Refresh
# (see https://mukit.at).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -13,7 +16,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###################################################################################

11
muk_web_client_refresh/__manifest__.py

@ -1,6 +1,9 @@
###################################################################################
#
# Copyright (C) 2017 MuK IT GmbH
#
# Copyright (c) 2017-2019 MuK IT GmbH.
#
# This file is part of MuK Web Refresh
# (see https://mukit.at).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -13,14 +16,14 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###################################################################################
{
"name": "MuK Web Refresh",
"summary": """Web Client Refresh""",
"version": "12.0.2.2.2",
"version": "12.0.3.0.0",
"category": "Extra Tools",
"license": "AGPL-3",
"website": "http://www.mukit.at",

7
muk_web_client_refresh/controllers/__init__.py

@ -1,6 +1,9 @@
###################################################################################
#
# Copyright (C) 2017 MuK IT GmbH
# Copyright (c) 2017-2019 MuK IT GmbH.
#
# This file is part of MuK Web Refresh
# (see https://mukit.at).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -13,7 +16,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###################################################################################

7
muk_web_client_refresh/controllers/main.py

@ -1,6 +1,9 @@
###################################################################################
#
# Copyright (C) 2017 MuK IT GmbH
# Copyright (c) 2017-2019 MuK IT GmbH.
#
# This file is part of MuK Web Refresh
# (see https://mukit.at).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -13,7 +16,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###################################################################################

89
muk_web_client_refresh/data/refresh_actions.xml

@ -1,43 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2018 MuK IT GmbH
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<odoo noupdate="1">
<record id="base_automation_refresh_partner_on_create" model="base.automation">
<field name="name">Refresh Partner on Creation</field>
<field name="model_id" ref="base.model_res_partner" />
<field name="state">refresh</field>
<field name="trigger">on_create</field>
</record>
<record id="base_automation_refresh_partner_on_write" model="base.automation">
<field name="name">Refresh Partner on Update</field>
<field name="model_id" ref="base.model_res_partner" />
<field name="state">refresh</field>
<field name="trigger">on_write</field>
</record>
<record id="base_automation_refresh_partner_on_unlink" model="base.automation">
<field name="name">Refresh Partner on Deletion</field>
<field name="model_id" ref="base.model_res_partner" />
<field name="state">refresh</field>
<field name="trigger">on_unlink</field>
</record>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2017-2019 MuK IT GmbH.
This file is part of MuK Web Refresh
(see https://mukit.at).
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<odoo noupdate="1">
<record id="base_automation_refresh_partner_on_create" model="base.automation">
<field name="name">Refresh Partner on Creation</field>
<field name="model_id" ref="base.model_res_partner" />
<field name="state">refresh</field>
<field name="trigger">on_create</field>
</record>
<record id="base_automation_refresh_partner_on_write" model="base.automation">
<field name="name">Refresh Partner on Update</field>
<field name="model_id" ref="base.model_res_partner" />
<field name="state">refresh</field>
<field name="trigger">on_write</field>
</record>
<record id="base_automation_refresh_partner_on_unlink" model="base.automation">
<field name="name">Refresh Partner on Deletion</field>
<field name="model_id" ref="base.model_res_partner" />
<field name="state">refresh</field>
<field name="trigger">on_unlink</field>
</record>
</odoo>

240
muk_web_client_refresh/doc/index.rst

@ -1,120 +1,120 @@
======================
MuK Web Client Refresh
======================
Adds a channel called "refresh" to the web client, which can be used to trigger
a view reload without refreshing the browser itself. Furthermore, it allows the
user the creation of action rules. These rules can be applied to any model and
trigger a refresh either on create, update or unlink.
Installation
============
To install this module, you need to:
Download the module and add it to your Odoo addons folder. Afterward, log on to
your Odoo server and go to the Apps menu. Trigger the debug mode and update the
list by clicking on the "Update Apps List" link. Now install the module by
clicking on the install button.
Another way to install this module is via the package management for Python
(`PyPI <https://pypi.org/project/pip/>`_).
To install our modules using the package manager make sure
`odoo-autodiscover <https://pypi.org/project/odoo-autodiscover/>`_ is installed
correctly. Then open a console and install the module by entering the following
command:
``pip install --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
The module name consists of the Odoo version and the module name, where
underscores are replaced by a dash.
**Module:**
``odoo<version>-addon-<module_name>``
**Example:**
``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo11-addon-muk-utils``
Once the installation has been successfully completed, the app is already in the
correct folder. Log on to your Odoo server and go to the Apps menu. Trigger the
debug mode and update the list by clicking on the "Update Apps List" link. Now
install the module by clicking on the install button.
The biggest advantage of this variant is that you can now also update the app
using the "pip" command. To do this, enter the following command in your console:
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
When the process is finished, restart your server and update the application in
Odoo. The steps are the same as for the installation only the button has changed
from "Install" to "Upgrade".
You can also view available Apps directly in our `repository <https://nexus.mukit.at/#browse/browse:odoo>`_
and find a more detailed installation guide on our `website <https://mukit.at/page/open-source>`_.
For modules licensed under OPL-1, you will receive access data when you purchase
the module. If the modules were not purchased directly from
`MuK IT <https://www.mukit.at/>`_ please contact our support (support@mukit.at)
with a confirmation of purchase to receive the corresponding access data.
Upgrade
============
To upgrade this module, you need to:
Download the module and add it to your Odoo addons folder. Restart the server
and log on to your Odoo server. Select the Apps menu and upgrade the module by
clicking on the upgrade button.
If you installed the module using the "pip" command, you can also update the
module in the same way. Just type the following command into the console:
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
When the process is finished, restart your server and update the application in
Odoo, just like you would normally.
Configuration
=============
To configure this module, you need to:
#. Go to *Settings* while being in debug mode.
#. Afterwards go to *Technical -> Automation -> Automated Refresh*.
#. And create a new refresh action.
Usage
=============
Besides creating a action rule, a view refresh can be triggered manually via python.
This can be useful if there is a need for a view reload on other operations.
Credits
=======
Contributors
------------
* Mathias Markl <mathias.markl@mukit.at>
Images
------------
Some pictures are based on or inspired by the icon set of Font Awesome:
* `Font Awesome <https://fontawesome.com>`_
Author & Maintainer
-------------------
This module is maintained by the `MuK IT GmbH <https://www.mukit.at/>`_.
MuK IT is an Austrian company specialized in customizing and extending Odoo.
We develop custom solutions for your individual needs to help you focus on
your strength and expertise to grow your business.
If you want to get in touch please contact us via mail
(sale@mukit.at) or visit our website (https://mukit.at).
======================
MuK Web Client Refresh
======================
Adds a channel called "refresh" to the web client, which can be used to trigger
a view reload without refreshing the browser itself. Furthermore, it allows the
user the creation of action rules. These rules can be applied to any model and
trigger a refresh either on create, update or unlink.
Installation
============
To install this module, you need to:
Download the module and add it to your Odoo addons folder. Afterward, log on to
your Odoo server and go to the Apps menu. Trigger the debug mode and update the
list by clicking on the "Update Apps List" link. Now install the module by
clicking on the install button.
Another way to install this module is via the package management for Python
(`PyPI <https://pypi.org/project/pip/>`_).
To install our modules using the package manager make sure
`odoo-autodiscover <https://pypi.org/project/odoo-autodiscover/>`_ is installed
correctly. Then open a console and install the module by entering the following
command:
``pip install --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
The module name consists of the Odoo version and the module name, where
underscores are replaced by a dash.
**Module:**
``odoo<version>-addon-<module_name>``
**Example:**
``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo11-addon-muk-utils``
Once the installation has been successfully completed, the app is already in the
correct folder. Log on to your Odoo server and go to the Apps menu. Trigger the
debug mode and update the list by clicking on the "Update Apps List" link. Now
install the module by clicking on the install button.
The biggest advantage of this variant is that you can now also update the app
using the "pip" command. To do this, enter the following command in your console:
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
When the process is finished, restart your server and update the application in
Odoo. The steps are the same as for the installation only the button has changed
from "Install" to "Upgrade".
You can also view available Apps directly in our `repository <https://nexus.mukit.at/#browse/browse:odoo>`_
and find a more detailed installation guide on our `website <https://mukit.at/page/open-source>`_.
For modules licensed under OPL-1, you will receive access data when you purchase
the module. If the modules were not purchased directly from
`MuK IT <https://www.mukit.at/>`_ please contact our support (support@mukit.at)
with a confirmation of purchase to receive the corresponding access data.
Upgrade
============
To upgrade this module, you need to:
Download the module and add it to your Odoo addons folder. Restart the server
and log on to your Odoo server. Select the Apps menu and upgrade the module by
clicking on the upgrade button.
If you installed the module using the "pip" command, you can also update the
module in the same way. Just type the following command into the console:
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
When the process is finished, restart your server and update the application in
Odoo, just like you would normally.
Configuration
=============
To configure this module, you need to:
#. Go to *Settings* while being in debug mode.
#. Afterwards go to *Technical -> Automation -> Automated Refresh*.
#. And create a new refresh action.
Usage
=============
Besides creating a action rule, a view refresh can be triggered manually via python.
This can be useful if there is a need for a view reload on other operations.
Credits
=======
Contributors
------------
* Mathias Markl <mathias.markl@mukit.at>
Images
------------
Some pictures are based on or inspired by the icon set of Font Awesome:
* `Font Awesome <https://fontawesome.com>`_
Author & Maintainer
-------------------
This module is maintained by the `MuK IT GmbH <https://www.mukit.at/>`_.
MuK IT is an Austrian company specialized in customizing and extending Odoo.
We develop custom solutions for your individual needs to help you focus on
your strength and expertise to grow your business.
If you want to get in touch please contact us via mail
(sale@mukit.at) or visit our website (https://mukit.at).

7
muk_web_client_refresh/models/__init__.py

@ -1,6 +1,9 @@
###################################################################################
#
# Copyright (C) 2017 MuK IT GmbH
# Copyright (c) 2017-2019 MuK IT GmbH.
#
# This file is part of MuK Web Refresh
# (see https://mukit.at).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -13,7 +16,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###################################################################################

115
muk_web_client_refresh/models/base.py

@ -1,56 +1,59 @@
###################################################################################
#
# Copyright (C) 2018 MuK IT GmbH
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###################################################################################
import logging
from odoo import api, models, fields
_logger = logging.getLogger(__name__)
class Base(models.AbstractModel):
_inherit = 'base'
@api.multi
def refresh_views(self, model=None, ids=None, user=None, create=False):
""" Informs the web client to refresh the views that belong to the
corresponding model by sending a message to the bus.
There are two ways to use this method. First by calling it
without any parameters. In this case, the views are determined
and updated using the current records in self. Alternatively,
the method can also be called with corresponding parameters
to explicitly update a view from another model.
:param model: The model of the records is used to find the
corresponding views
:param ids: IDs of the records are used to determine which
records have been updated
:param user: The user (res.users) is used to determine whether
the current one has caused the refresh
:param create: Indicates whether the record has been newly
created or updated
"""
if self.exists() or ids:
record = next(iter(self)) if len(self) > 1 else self
self.env['bus.bus'].sendone('refresh', {
'create': create if ids else record.exists() and record.create_date == record.write_date or False,
'model': model or self._name,
'uid': user and user.id or False if ids else self.env.user.id,
'ids': ids or self.mapped('id')})
###################################################################################
#
# Copyright (c) 2017-2019 MuK IT GmbH.
#
# This file is part of MuK Web Refresh
# (see https://mukit.at).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###################################################################################
import logging
from odoo import api, models, fields
_logger = logging.getLogger(__name__)
class Base(models.AbstractModel):
_inherit = 'base'
@api.multi
def refresh_views(self, model=None, ids=None, user=None, create=False):
""" Informs the web client to refresh the views that belong to the
corresponding model by sending a message to the bus.
There are two ways to use this method. First by calling it
without any parameters. In this case, the views are determined
and updated using the current records in self. Alternatively,
the method can also be called with corresponding parameters
to explicitly update a view from another model.
:param model: The model of the records is used to find the
corresponding views
:param ids: IDs of the records are used to determine which
records have been updated
:param user: The user (res.users) is used to determine whether
the current one has caused the refresh
:param create: Indicates whether the record has been newly
created or updated
"""
if self.exists() or ids:
record = next(iter(self)) if len(self) > 1 else self
self.env['bus.bus'].sendone('refresh', {
'create': create if ids else record.exists() and record.create_date == record.write_date or False,
'model': model or self._name,
'uid': user and user.id or False if ids else self.env.user.id,
'ids': ids or self.mapped('id')})

7
muk_web_client_refresh/models/base_automation.py

@ -1,6 +1,9 @@
###################################################################################
#
# Copyright (C) 2018 MuK IT GmbH
# Copyright (c) 2017-2019 MuK IT GmbH.
#
# This file is part of MuK Web Refresh
# (see https://mukit.at).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -13,7 +16,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###################################################################################

7
muk_web_client_refresh/models/ir_actions.py

@ -1,6 +1,9 @@
###################################################################################
#
# Copyright (C) 2018 MuK IT GmbH
# Copyright (c) 2017-2019 MuK IT GmbH.
#
# This file is part of MuK Web Refresh
# (see https://mukit.at).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -13,7 +16,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###################################################################################

7
muk_web_client_refresh/models/res_config_settings.py

@ -1,6 +1,9 @@
###################################################################################
#
# Copyright (C) 2017 MuK IT GmbH
# Copyright (c) 2017-2019 MuK IT GmbH.
#
# This file is part of MuK Web Refresh
# (see https://mukit.at).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -13,7 +16,7 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###################################################################################

9
muk_web_client_refresh/static/src/js/client_refresh.js

@ -1,6 +1,9 @@
/**********************************************************************************
*
* Copyright (C) 2017 MuK IT GmbH
*
* Copyright (c) 2017-2019 MuK IT GmbH.
*
* This file is part of MuK Web Refresh
* (see https://mukit.at).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@ -13,7 +16,7 @@
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
**********************************************************************************/

15
muk_web_client_refresh/template/assets.xml

@ -1,8 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2017 MuK IT GmbH
<!--
Copyright (c) 2017-2019 MuK IT GmbH.
This file is part of MuK Web Refresh
(see https://mukit.at).
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
@ -14,8 +18,9 @@
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<odoo>
<template id="assets_backend" inherit_id="web.assets_backend">

15
muk_web_client_refresh/views/refresh_action_view.xml

@ -1,8 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2017 MuK IT GmbH
<!--
Copyright (c) 2017-2019 MuK IT GmbH.
This file is part of MuK Web Refresh
(see https://mukit.at).
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
@ -14,8 +18,9 @@
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<odoo>

87
muk_web_client_refresh/views/res_config_settings_view.xml

@ -1,41 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2017 MuK IT GmbH
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<odoo>
<record id="res_config_settings_view_form" model="ir.ui.view">
<field name="name">res.config.settings.view.form</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base_setup.res_config_settings_view_form"/>
<field name="arch" type="xml">
<div id="msg_module_muk_web_client_refresh" position="replace">
<div class="content-group" attrs="{'invisible': [('module_muk_web_client_refresh','=',False)]}">
<button name="%(muk_web_client_refresh.action_client_refresh_automation)d"
string="Configure Actions" type="action" class="oe_link" icon="fa-arrow-right"/>
<div class="mt16 row">
<label for="refresh_delay" string="Delay" class="col-xs-3 col-md-3 o_light_label"/>
<field name="refresh_delay" nolabel="1"/>
</div>
</div>
</div>
</field>
</record>
</odoo>
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2017-2019 MuK IT GmbH.
This file is part of MuK Web Refresh
(see https://mukit.at).
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<odoo>
<record id="res_config_settings_view_form" model="ir.ui.view">
<field name="name">res.config.settings.view.form</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base_setup.res_config_settings_view_form"/>
<field name="arch" type="xml">
<div id="msg_module_muk_web_client_refresh" position="replace">
<div class="content-group" attrs="{'invisible': [('module_muk_web_client_refresh','=',False)]}">
<button name="%(muk_web_client_refresh.action_client_refresh_automation)d"
string="Configure Actions" type="action" class="oe_link" icon="fa-arrow-right"/>
<div class="mt16 row">
<label for="refresh_delay" string="Delay" class="col-xs-3 col-md-3 o_light_label"/>
<field name="refresh_delay" nolabel="1"/>
</div>
</div>
</div>
</field>
</record>
</odoo>
Loading…
Cancel
Save