From 5e89a383ac40a00aca975b7cf2f3a81be4a3c7c0 Mon Sep 17 00:00:00 2001 From: Mathias Markl Date: Sat, 14 Oct 2017 01:32:51 +0200 Subject: [PATCH] Client Refresh --- muk_web_client_refresh/LICENSE | 619 ++++++++++++++++++ muk_web_client_refresh/README.md | 3 + muk_web_client_refresh/__init__.py | 22 + muk_web_client_refresh/__manifest__.py | 64 ++ muk_web_client_refresh/models/__init__.py | 22 + muk_web_client_refresh/models/refresh_rule.py | 133 ++++ .../security/ir.model.access.csv | 3 + .../static/description/banner.png | Bin 0 -> 42752 bytes .../static/description/demo.mp4 | Bin 0 -> 6385546 bytes .../static/description/icon.png | Bin 0 -> 9987 bytes .../static/description/index.html | 77 +++ .../static/description/logo.png | Bin 0 -> 38064 bytes .../static/description/screenshot_chatter.png | Bin 0 -> 42623 bytes .../static/description/screenshot_view.png | Bin 0 -> 23317 bytes .../static/src/js/client_refresh.js | 50 ++ muk_web_client_refresh/template/assets.xml | 26 + muk_web_client_refresh/views/refresh_menu.xml | 27 + .../views/refresh_rule_view.xml | 65 ++ 18 files changed, 1111 insertions(+) create mode 100644 muk_web_client_refresh/LICENSE create mode 100644 muk_web_client_refresh/README.md create mode 100644 muk_web_client_refresh/__init__.py create mode 100644 muk_web_client_refresh/__manifest__.py create mode 100644 muk_web_client_refresh/models/__init__.py create mode 100644 muk_web_client_refresh/models/refresh_rule.py create mode 100644 muk_web_client_refresh/security/ir.model.access.csv create mode 100644 muk_web_client_refresh/static/description/banner.png create mode 100644 muk_web_client_refresh/static/description/demo.mp4 create mode 100644 muk_web_client_refresh/static/description/icon.png create mode 100644 muk_web_client_refresh/static/description/index.html create mode 100644 muk_web_client_refresh/static/description/logo.png create mode 100644 muk_web_client_refresh/static/description/screenshot_chatter.png create mode 100644 muk_web_client_refresh/static/description/screenshot_view.png create mode 100644 muk_web_client_refresh/static/src/js/client_refresh.js create mode 100644 muk_web_client_refresh/template/assets.xml create mode 100644 muk_web_client_refresh/views/refresh_menu.xml create mode 100644 muk_web_client_refresh/views/refresh_rule_view.xml diff --git a/muk_web_client_refresh/LICENSE b/muk_web_client_refresh/LICENSE new file mode 100644 index 0000000..faf7bf4 --- /dev/null +++ b/muk_web_client_refresh/LICENSE @@ -0,0 +1,619 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/muk_web_client_refresh/README.md b/muk_web_client_refresh/README.md new file mode 100644 index 0000000..b72809d --- /dev/null +++ b/muk_web_client_refresh/README.md @@ -0,0 +1,3 @@ +# MuK Web Client Refresh + +Adds a refresh channel to the web client. By sending a message to this channel, the corresponding view is reloaded. \ No newline at end of file diff --git a/muk_web_client_refresh/__init__.py b/muk_web_client_refresh/__init__.py new file mode 100644 index 0000000..d368888 --- /dev/null +++ b/muk_web_client_refresh/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: 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 . +# +################################################################################### + +import models \ No newline at end of file diff --git a/muk_web_client_refresh/__manifest__.py b/muk_web_client_refresh/__manifest__.py new file mode 100644 index 0000000..1657ff5 --- /dev/null +++ b/muk_web_client_refresh/__manifest__.py @@ -0,0 +1,64 @@ +# -*- coding: 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 . +# +################################################################################### + +{ + "name": "MuK Web Refresh", + "summary": """Web Client Refresh""", + "description": """ + Adds a "refresh" channel to the web client, + which can be used to trigger a view refresh without refreshing the + browser itself. Furthermore, it allows the user the creation of + "refresh" rules. These rules can be applied to any Odoo model and + trigger a refresh either on create, write or unlink. + """, + "version": "11.0.1.0.1", + "category": "Extra Tools", + "license": "AGPL-3", + "website": "http://www.mukit.at", + "author": "MuK IT", + "contributors": [ + "Mathias Markl ", + ], + "depends": [ + "muk_web_client", + ], + "data": [ + "template/assets.xml", + "security/ir.model.access.csv", + "views/refresh_menu.xml", + "views/refresh_rule_view.xml", + ], + "demo": [ + ], + "qweb": [ + "static/src/xml/*.xml", + ], + "images": [ + 'static/description/banner.png' + ], + "external_dependencies": { + "python": [], + "bin": [], + }, + "application": False, + "installable": True, + +} \ No newline at end of file diff --git a/muk_web_client_refresh/models/__init__.py b/muk_web_client_refresh/models/__init__.py new file mode 100644 index 0000000..0a6eaf2 --- /dev/null +++ b/muk_web_client_refresh/models/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: 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 . +# +################################################################################### + +from . import refresh_rule \ No newline at end of file diff --git a/muk_web_client_refresh/models/refresh_rule.py b/muk_web_client_refresh/models/refresh_rule.py new file mode 100644 index 0000000..57b26f4 --- /dev/null +++ b/muk_web_client_refresh/models/refresh_rule.py @@ -0,0 +1,133 @@ +# -*- coding: 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 . +# +################################################################################### + +import logging + +from odoo import _ +from odoo import models, modules, api, fields +from odoo.exceptions import ValidationError, AccessError + +_logger = logging.getLogger(__name__) + +class RefreshRule(models.Model): + _name = 'muk_web_client_refresh.rule' + _description = "Auto Refresh Rule" + + name = fields.Char( + string="Name", + required=True) + + model = fields.Many2one( + 'ir.model', + string="Model", + required=True, + help="Select model for which you want to refresh the corresponding views.") + + refresh_create = fields.Boolean( + string="Refresh on Create", + default=True) + + refresh_write = fields.Boolean( + string="Refresh on Writes", + default=True) + + refresh_unlink = fields.Boolean( + string="Refresh on Unlink", + default=True) + + _sql_constraints = [ + ('model_uniq', 'unique(model)', + ("There is already a rule defined on this model.")) + ] + + def _register_hook(self): + super(RefreshRule, self)._register_hook() + return self._patch_methods() + + @api.multi + def _patch_methods(self): + for rule in self: + model = self.env[rule.model.model] + if rule.refresh_create: + model._patch_method('create', rule._make_create()) + if rule.refresh_write: + model._patch_method('write', rule._make_write()) + if rule.refresh_unlink: + model._patch_method('unlink', rule._make_unlink()) + + @api.multi + def _revert_methods(self): + for rule in self: + model = self.env[rule.model.model] + for method in ['create', 'write', 'unlink']: + if getattr(rule, 'refresh_%s' % method) and hasattr(getattr(model, method), 'origin'): + model._revert_method(method) + + @api.model + def create(self, vals): + record = super(RefreshRule, self).create(vals) + record._register_hook() + modules.registry.Registry(self.env.cr.dbname).signal_changes() + return record + + @api.multi + def write(self, vals): + self._revert_methods() + result = super(RefreshRule, self).write(vals) + self._patch_methods() + modules.registry.Registry(self.env.cr.dbname).signal_changes() + return result + + @api.multi + def unlink(self): + self._revert_methods() + modules.registry.Registry(self.env.cr.dbname).signal_changes() + return super(RefreshRule, self).unlink() + + @api.multi + def _make_create(self): + @api.model + @api.returns('self', lambda value: value.id) + def create_refresh(self, vals, **kwargs): + result = create_refresh.origin(self, vals, **kwargs) + self.env['bus.bus'].sendone('refresh', self._name) + + + return result + return create_refresh + + @api.multi + def _make_write(self): + @api.multi + def write_refresh(self, vals, **kwargs): + result = write_refresh.origin(self, vals, **kwargs) + self.env['bus.bus'].sendone('refresh', self._name) + return result + return write_refresh + + @api.multi + def _make_unlink(self): + @api.multi + def unlink_refresh(self, **kwargs): + result = unlink_refresh.origin(self, **kwargs) + self.env['bus.bus'].sendone('refresh', self._name) + return result + return unlink_refresh \ No newline at end of file diff --git a/muk_web_client_refresh/security/ir.model.access.csv b/muk_web_client_refresh/security/ir.model.access.csv new file mode 100644 index 0000000..0829074 --- /dev/null +++ b/muk_web_client_refresh/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink + +access_refresh_rule_manager,refresh_rule_manager,model_muk_web_client_refresh_rule,base.group_erp_manager,1,1,1,1 diff --git a/muk_web_client_refresh/static/description/banner.png b/muk_web_client_refresh/static/description/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..e8e9a5bfbb09701e738e292207d21727ad4bf3de GIT binary patch literal 42752 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