From 4f3cb5ce92414f1e10141809db7ab76f6562cd3d Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 5 May 2016 10:48:21 +0500 Subject: [PATCH] [ADD] create module mail_all --- mail_all/README.rst | 20 +++++++++ mail_all/__init__.py | 3 ++ mail_all/__openerp__.py | 28 +++++++++++++ mail_all/doc/changelog.rst | 7 ++++ mail_all/doc/index.rst | 9 ++++ mail_all/models/__init__.py | 1 + mail_all/static/description/1.png | Bin 0 -> 14979 bytes mail_all/static/description/2.png | Bin 0 -> 22751 bytes mail_all/static/description/icon.png | Bin 0 -> 2140 bytes mail_all/static/description/index.html | 45 ++++++++++++++++++++ mail_all/static/src/js/mail_all.js | 56 +++++++++++++++++++++++++ mail_all/static/src/xml/menu.xml | 19 +++++++++ mail_all/tests/__init__.py | 3 ++ mail_all/tests/test_js.py | 15 +++++++ mail_all/views/templates.xml | 12 ++++++ 15 files changed, 218 insertions(+) create mode 100644 mail_all/README.rst create mode 100644 mail_all/__init__.py create mode 100644 mail_all/__openerp__.py create mode 100644 mail_all/doc/changelog.rst create mode 100644 mail_all/doc/index.rst create mode 100644 mail_all/models/__init__.py create mode 100644 mail_all/static/description/1.png create mode 100644 mail_all/static/description/2.png create mode 100644 mail_all/static/description/icon.png create mode 100644 mail_all/static/description/index.html create mode 100644 mail_all/static/src/js/mail_all.js create mode 100644 mail_all/static/src/xml/menu.xml create mode 100644 mail_all/tests/__init__.py create mode 100644 mail_all/tests/test_js.py create mode 100644 mail_all/views/templates.xml diff --git a/mail_all/README.rst b/mail_all/README.rst new file mode 100644 index 0000000..0ae17d2 --- /dev/null +++ b/mail_all/README.rst @@ -0,0 +1,20 @@ +=================== + Show all messages +=================== + +Adds All menu, which shows all messages + +Usage +----- +Click Discuss/All menu -- all messages are displayed + +Further information +------------------- + +HTML Description: https://apps.odoo.com/apps/modules/9.0/mail_all/ + +Usage instructions: ``_ + +Changelog: ``_ + +Tested on Odoo 9.0 d3dd4161ad0598ebaa659fbd083457c77aa9448d diff --git a/mail_all/__init__.py b/mail_all/__init__.py new file mode 100644 index 0000000..5305644 --- /dev/null +++ b/mail_all/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import models \ No newline at end of file diff --git a/mail_all/__openerp__.py b/mail_all/__openerp__.py new file mode 100644 index 0000000..c53aa2e --- /dev/null +++ b/mail_all/__openerp__.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +{ + "name": "Show all messages", + "summary": """Adds menu to find all messages""", + "category": "Discuss", + "images": [], + "version": "1.0.0", + + "author": "IT-Projects LLC, Pavel Romanchenko", + "website": "https://it-projects.info", + "license": "LGPL-3", + 'price': 40.00, + 'currency': 'EUR', + + "depends": [ + "mail_base" + ], + "external_dependencies": {"python": [], "bin": []}, + "data": [ + "views/templates.xml", + ], + "qweb": [ + "static/src/xml/menu.xml", + ], + "demo": [], + 'installable': True, + "auto_install": False, +} diff --git a/mail_all/doc/changelog.rst b/mail_all/doc/changelog.rst new file mode 100644 index 0000000..e2b0277 --- /dev/null +++ b/mail_all/doc/changelog.rst @@ -0,0 +1,7 @@ +Changelog +========= + +`1.0.0` +------- + +- Init version diff --git a/mail_all/doc/index.rst b/mail_all/doc/index.rst new file mode 100644 index 0000000..c8f7702 --- /dev/null +++ b/mail_all/doc/index.rst @@ -0,0 +1,9 @@ +=================== + Show all messages +=================== + +Usage +===== + +* Open menu Discuss menu and click All menu on the sidebar +* You see all messages diff --git a/mail_all/models/__init__.py b/mail_all/models/__init__.py new file mode 100644 index 0000000..40a96af --- /dev/null +++ b/mail_all/models/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- diff --git a/mail_all/static/description/1.png b/mail_all/static/description/1.png new file mode 100644 index 0000000000000000000000000000000000000000..c5f0307dfb51eab3a9f531624aed88878c2315b3 GIT binary patch literal 14979 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.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 T2$-Gz=@^E0O?69k9)|x9&DfM? literal 0 HcmV?d00001 diff --git a/mail_all/static/description/icon.png b/mail_all/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..79f7d8fe294f838cf2996940c40dc08dde60642f GIT binary patch literal 2140 zcmV-i2&4CjP)=D+Wys1fe}G$Q#Z2832St25n<}h#$%L7sUBHn zgVlR~4gtNOs+KA#@5q|?_&of{fCW3h;+eI-@is^))^C>Ap=O06Yq-$?c7APo?&VKv z))(zizAhAwtYInZ&irDhM>SGBFM>?d${LzoxNVMo=er+dj|dVX82(itvPy&nJI7R} zxal|{b!VXeY~=?NW24HG!g#W&q%^mz9C_k)O~vB$l!nR>c7Azkc41B0?h`G%re>$6 zR3XK_wP$L$`wA`+vfQ*It2kJ&bC8N#=Y*z`?T#poH4<6rMKBSth@G$Anh#P6geeX3 z66#s7^ZuFn%%U9v!&L5`a;i`|jy4C6tV1;wvTsBRf(1LrR7N-{7FL;Ru=vP|@loCg zW(jHMC_PwJ+DqF+1@u$zm8o8m$Y1m0V>0T?5;C37EIq_^W|6qn&f)G(Em&B}uDzZf z*)+}sw{t=Y4awlQ*0UI=qn@0G^f!D}&U?lzXXnrqYS25*U`_+Qpa)L`slkiwNPnpt zbLhf?onzn&_-r^=Y+@25re#c%ToI(Yb5h;e6h}ke&V&2_vM3~m`<859t@^AmkXN#4 zp3=nL641^=Hb@NJ0y10#e8NYUd#FM=yd}$j-ZOZiJuPn=y})eY?Y#H?ythe(9+=(P z=pO{n_Ag1zK#!ilNhilfXs;Am_;fC9#?QGvtNfjZ8h);==7&rFJ5QsnusaH>>SjHY zMC`QRjtOGt!fz}(jiG1vi5A$ZVuAvl9f!Vzpm3p#doq~Eg#RkU_3sSy1kxiU%8{*-oYZcOz=#QLgi{iP%6NR;q2W-(ziFHtAxczhQ%>g55VsxmVxu{OgA(z8>)V_eL6l3DJe$G5=tJp1|FDThBVI=FE7j=3tSDuEI+K+>VJ0yjG=W@S`oh zY;UN?#paSycm6BhAH$yR>Hg=JAHz8+5-u#Cw5f387dA))IagN=LE)YiRtGqa4{&&- z?Akk2Q!(?$O{HOxfl1vpCei`ivon?ZK`rFDC~Jz{*?3agX(WqeLDAmP6g%rA0{0<> zeqtzKYj)#fyZMfN2OiuS5UVdK(E;HAX;YO|@Z}oGtA&1=LO(l>HnWdoj~#w9CnQPu zz$YVGP~7xI^+ijcUcstRfTEHe{7dZ7Q=w&u@tA}I)g3C3b#`)vCi?y*=jMs3M4_;7 z>sC2k0T-cEZ{)}r0)&rGk$e2;VuY_meg`{ogL|Bk!JluaKhH%NZ8kn?5uft;?gWym z*MCY|fYs06&r)EvXweNU2#O3lwsaSN3LjB|<)5GbI&(^F8Ja$Saf5Dn zfe8N*NS_HTjLe(YbWiuKO3@!C&=suZc=@z@*Skh)DrGicOE-M=A%!7Zj9>aSC(&v#nWVj-o?-d4Br_8Z zDP85P;LTw*XT(K^Ln=~W$+dIA7^DnX@{`gzERF6PYOuNDqSwU8{M+dh76b)Z$^Np8 zK`L@#(IcfdSX4>r$FmU4GvlLe(Pp~uq7PD-^kM2p`;8cbRHVRCk`&s%0t^5+Kg1eL SSUIi$0000 +
+
+

Look up all mails

+

Browse all mails like

+
+
+
+ +
+
+
+

+ The module adds usual menu. +

+
+
+ + +
+
+
+

+This menu shows all messages. +

+
+
+ +
+
+
+ +
+
+ +
+
diff --git a/mail_all/static/src/js/mail_all.js b/mail_all/static/src/js/mail_all.js new file mode 100644 index 0000000..315c031 --- /dev/null +++ b/mail_all/static/src/js/mail_all.js @@ -0,0 +1,56 @@ +odoo.define('mail_all.all', function (require) { +"use strict"; + +var base_obj = require('mail_base.base'); + +//------------------------------------------------------------------------------- +var bus = require('bus.bus').bus; +var config = require('web.config'); +var core = require('web.core'); +var data = require('web.data'); +var Model = require('web.Model'); +var session = require('web.session'); +var time = require('web.time'); +var web_client = require('web.web_client'); + +var _lt = core._lt; +//------------------------------------------------------------------------------- + +// Inherit class and override methods +base_obj.MailTools.include({ + get_properties: function(msg){ + var properties = this._super.apply(this, arguments); + properties.is_all = this.property_descr("channel_all", msg, this); + return properties; + }, + + set_channel_flags: function(data, msg){ + this._super.apply(this, arguments); + msg.is_all = true; + return msg; + }, + + get_channel_array: function(msg){ + var arr = this._super.apply(this, arguments); + return arr.concat('channel_all'); + }, + + get_domain: function(channel){ + return (channel.id === "channel_all") ? [] : this._super.apply(this, arguments); + } +}); + +base_obj.chat_manager.is_ready.then(function(){ + // Add all channel + base_obj.chat_manager.mail_tools.add_channel({ + id: "channel_all", + name: _lt("All messages"), + type: "static" + }); + + return $.when(); + }); + +return base_obj.chat_manager; + +}); diff --git a/mail_all/static/src/xml/menu.xml b/mail_all/static/src/xml/menu.xml new file mode 100644 index 0000000..8ad1bcb --- /dev/null +++ b/mail_all/static/src/xml/menu.xml @@ -0,0 +1,19 @@ + + diff --git a/mail_all/tests/__init__.py b/mail_all/tests/__init__.py new file mode 100644 index 0000000..6731bb9 --- /dev/null +++ b/mail_all/tests/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +import test_js \ No newline at end of file diff --git a/mail_all/tests/test_js.py b/mail_all/tests/test_js.py new file mode 100644 index 0000000..5c62a58 --- /dev/null +++ b/mail_all/tests/test_js.py @@ -0,0 +1,15 @@ +import openerp.tests + +@openerp.tests.common.at_install(False) +@openerp.tests.common.post_install(True) +class TestUi(openerp.tests.HttpCase): + def test_01_mail_all(self): + # wait till page loaded and then click and wait again + code = """ + setTimeout(function () { + $(".mail_all").click(); + setTimeout(function () {console.log('ok');}, 3000); + }, 1000); + """ + link = '/web#action=%s' % self.ref('mail.mail_channel_action_client_chat') + self.phantom_js(link, code, "odoo.__DEBUG__.services['mail_all.all']", login="admin") diff --git a/mail_all/views/templates.xml b/mail_all/views/templates.xml new file mode 100644 index 0000000..7ca724f --- /dev/null +++ b/mail_all/views/templates.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file