From c9ed7fb33162f137e1469eea659fe0e97671d72f Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Sat, 5 Dec 2015 12:21:42 +0500 Subject: [PATCH 001/148] Initial commit --- README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..f094174 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# addons-dev From 3125d2cf9a907a762a3d48adb0ff8b819224786e Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Sat, 5 Dec 2015 12:58:04 +0500 Subject: [PATCH 002/148] README --- README.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/README.md b/README.md index f094174..b3fed35 100644 --- a/README.md +++ b/README.md @@ -1 +1,43 @@ # addons-dev + +Addons Forge + +# Initialization + +1. Fork this repo +2. Clone to your machine: + + git clone git@github.com:USERNAME/addons-dev.git + +3. Add remotes + + cd addons-dev + + git remote add addons-yelizariev https://github.com/yelizariev/addons-yelizariev.git + git remote add pos-addons https://github.com/yelizariev/pos-addons.git + git remote add mail-addons https://github.com/yelizariev/mail-addons.git + git remote add access-addons https://github.com/yelizariev/access-addons.git + git remote add website-addons https://github.com/yelizariev/website-addons.git + git remote add l10n-addons https://github.com/yelizariev/l10n-addons.git + +# Development + + # specify target repo and branch: + export REPO=addons-yelizariev BRANCH=9.0 + + # fetch remote + git fetch ${REPO} + + # create new branch + git checkout -b ${REPO}-${BRANCH}-some-feature + + # develop addons, create commits + # ... + + # push to your fork + git push origin addons-yelizariev-9.0-some-feature + + # create pull request at github to addons-dev repo + # then PR is checked and merged + # then your update is tested again + # then clean addon is pull-requested to target repo From 7586609a158bda7f5e7db1eff9993f1ee552e603 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Sat, 5 Dec 2015 13:05:08 +0500 Subject: [PATCH 003/148] README --- README.md | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b3fed35..9c99690 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,26 @@ Addons Forge # push to your fork git push origin addons-yelizariev-9.0-some-feature - # create pull request at github to addons-dev repo + # create PR to addons-dev repo # then PR is checked and merged # then your update is tested again - # then clean addon is pull-requested to target repo + # then clean addon is pull-requested to target repo (see next section) + +# Final PR to target repo + + # example for addons-yelizariev + cd /path/to/addons-yelizariev + + # add remote if it doesn't exist yet + git remote add addons-dev https://github.com/yelizariev/addons-dev.git + + # fetch remote + git fetch addons-dev + + # create branch + git checkout -b addons-dev/addons-yelizariev-9.0-some-feature + + # push to your fork of target repo + git push origin addons-yelizariev-9.0-some-feature + + # create PR to target repo From 0ca7cd610d1b6a96eae45cdf1ce27f681fbb0d7c Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Sat, 5 Dec 2015 13:20:17 +0500 Subject: [PATCH 004/148] fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9c99690..f05d0d3 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ Addons Forge git fetch ${REPO} # create new branch - git checkout -b ${REPO}-${BRANCH}-some-feature + git checkout -b ${REPO}-${BRANCH}-some-feature ${REPO}/${BRANCH} # develop addons, create commits # ... From 7cc5ccfd842c9ef6b803c4caf3a04451ffae0af7 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Sat, 5 Dec 2015 13:33:41 +0500 Subject: [PATCH 005/148] update --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index f05d0d3..910fa99 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ Addons Forge cd addons-dev + git remote add upstream git@github.com:yelizariev/addons-dev.git git remote add addons-yelizariev https://github.com/yelizariev/addons-yelizariev.git git remote add pos-addons https://github.com/yelizariev/pos-addons.git git remote add mail-addons https://github.com/yelizariev/mail-addons.git @@ -20,7 +21,7 @@ Addons Forge git remote add website-addons https://github.com/yelizariev/website-addons.git git remote add l10n-addons https://github.com/yelizariev/l10n-addons.git -# Development +# New branch # specify target repo and branch: export REPO=addons-yelizariev BRANCH=9.0 @@ -34,13 +35,12 @@ Addons Forge # develop addons, create commits # ... - # push to your fork - git push origin addons-yelizariev-9.0-some-feature + # push to upstream + git push upstream addons-yelizariev-9.0-some-feature + +# PR to existed branch - # create PR to addons-dev repo - # then PR is checked and merged - # then your update is tested again - # then clean addon is pull-requested to target repo (see next section) +If branch (e.g. addons-yelizariev-9.0-some-feature) already exists, send commits to your fork first and then create PR. # Final PR to target repo From 30a161cac1fb63a2d9a2cd9c55b93f73ffb52a74 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Sat, 5 Dec 2015 13:34:20 +0500 Subject: [PATCH 006/148] fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 910fa99..f3869d4 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Addons Forge # PR to existed branch -If branch (e.g. addons-yelizariev-9.0-some-feature) already exists, send commits to your fork first and then create PR. +If branch (e.g. *addons-yelizariev-9.0-some-feature*) already exists, send commits to your fork first and then create PR to **addons-dev** # Final PR to target repo From 73174f68c5a4cd81407f29fe4e301be96edbed03 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Sat, 5 Dec 2015 13:34:55 +0500 Subject: [PATCH 007/148] fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f3869d4..ccd56bf 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Addons Forge # PR to existed branch -If branch (e.g. *addons-yelizariev-9.0-some-feature*) already exists, send commits to your fork first and then create PR to **addons-dev** +If branch (e.g. *addons-yelizariev-9.0-some-feature*) already exists in **addons-dev**, send commits to your fork first and then create PR to **addons-dev** # Final PR to target repo From 8c1432630a503a322495c1eecf463ab7f08a0ba6 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Sat, 5 Dec 2015 13:40:17 +0500 Subject: [PATCH 008/148] fix --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ccd56bf..d607960 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,8 @@ Addons Forge If branch (e.g. *addons-yelizariev-9.0-some-feature*) already exists in **addons-dev**, send commits to your fork first and then create PR to **addons-dev** + git push origin addons-yelizariev-9.0-some-feature + # Final PR to target repo # example for addons-yelizariev From 706d62225f3772338e20ffb2e77a0ace00909fe7 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Sat, 5 Dec 2015 13:42:40 +0500 Subject: [PATCH 009/148] fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d607960..05a9449 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ If branch (e.g. *addons-yelizariev-9.0-some-feature*) already exists in **addons git fetch addons-dev # create branch - git checkout -b addons-dev/addons-yelizariev-9.0-some-feature + git checkout -b 9.0-some-feature addons-dev/addons-yelizariev-9.0-some-feature # push to your fork of target repo git push origin addons-yelizariev-9.0-some-feature From ad7f59c8e3582dfb8c92ec0d73aa1db664ac1901 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Sat, 5 Dec 2015 13:43:20 +0500 Subject: [PATCH 010/148] fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 05a9449..c558741 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,6 @@ If branch (e.g. *addons-yelizariev-9.0-some-feature*) already exists in **addons git checkout -b 9.0-some-feature addons-dev/addons-yelizariev-9.0-some-feature # push to your fork of target repo - git push origin addons-yelizariev-9.0-some-feature + git push origin 9.0-some-feature # create PR to target repo From 587f11c093808dd24521dac8d3c431b3f6f8a208 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Fri, 11 Dec 2015 11:05:11 +0500 Subject: [PATCH 011/148] Update README.md --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c558741..cb6f4c8 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,8 @@ Addons Forge git remote add website-addons https://github.com/yelizariev/website-addons.git git remote add l10n-addons https://github.com/yelizariev/l10n-addons.git -# New branch +# Create new branch +*(push access is needed)* # specify target repo and branch: export REPO=addons-yelizariev BRANCH=9.0 @@ -32,9 +33,6 @@ Addons Forge # create new branch git checkout -b ${REPO}-${BRANCH}-some-feature ${REPO}/${BRANCH} - # develop addons, create commits - # ... - # push to upstream git push upstream addons-yelizariev-9.0-some-feature From 24a57665e3625e67252cde8fc469bc5231d67c81 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Sun, 20 Dec 2015 22:22:49 +0100 Subject: [PATCH 012/148] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index cb6f4c8..724cc65 100644 --- a/README.md +++ b/README.md @@ -25,16 +25,16 @@ Addons Forge *(push access is needed)* # specify target repo and branch: - export REPO=addons-yelizariev BRANCH=9.0 + export REPO=addons-yelizariev BRANCH=9.0 FEATURE=some-feature # fetch remote git fetch ${REPO} # create new branch - git checkout -b ${REPO}-${BRANCH}-some-feature ${REPO}/${BRANCH} + git checkout -b ${REPO}-${BRANCH}-${FEATURE} ${REPO}/${BRANCH} # push to upstream - git push upstream addons-yelizariev-9.0-some-feature + git push upstream ${REPO}-${BRANCH}-${FEATURE} # PR to existed branch From e1336ff7aa2eb7961a516aae493fe98197e25ff0 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Thu, 4 Feb 2016 15:11:51 +0500 Subject: [PATCH 013/148] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 724cc65..8779db3 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,8 @@ Addons Forge # push to upstream git push upstream ${REPO}-${BRANCH}-${FEATURE} + + # # PR to existed branch From 9233c9c0db61d53b103f76bcf132281765bc3a5e Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 25 Feb 2016 11:21:00 +0500 Subject: [PATCH 014/148] 1. Create two Smart buttons (Income and Sent) 2. Calculate income and sent messages and output values on Smart buttons TODO: Create actions when click Smart buttons --- res_partner_mails_count/__init__.py | 3 + res_partner_mails_count/__openerp__.py | 34 ++++++++ res_partner_mails_count/controllers.py | 20 +++++ res_partner_mails_count/demo.xml | 25 ++++++ res_partner_mails_count/models.py | 50 +++++++++++ .../security/ir.model.access.csv | 2 + res_partner_mails_count/templates.xml | 87 +++++++++++++++++++ 7 files changed, 221 insertions(+) create mode 100644 res_partner_mails_count/__init__.py create mode 100644 res_partner_mails_count/__openerp__.py create mode 100644 res_partner_mails_count/controllers.py create mode 100644 res_partner_mails_count/demo.xml create mode 100644 res_partner_mails_count/models.py create mode 100644 res_partner_mails_count/security/ir.model.access.csv create mode 100644 res_partner_mails_count/templates.xml diff --git a/res_partner_mails_count/__init__.py b/res_partner_mails_count/__init__.py new file mode 100644 index 0000000..c7a6ca6 --- /dev/null +++ b/res_partner_mails_count/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +import controllers +import models \ No newline at end of file diff --git a/res_partner_mails_count/__openerp__.py b/res_partner_mails_count/__openerp__.py new file mode 100644 index 0000000..250b763 --- /dev/null +++ b/res_partner_mails_count/__openerp__.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +{ + 'name': "res_partner_mails_count", + + 'summary': """ + Short (1 phrase/line) summary of the module's purpose, used as + subtitle on modules listing or apps.openerp.com""", + + 'description': """ + Long description of module's purpose + """, + + 'author': "Your Company", + 'website': "http://www.yourcompany.com", + + # Categories can be used to filter modules in modules listing + # Check https://github.com/odoo/odoo/blob/master/openerp/addons/base/module/module_data.xml + # for the full list + 'category': 'Uncategorized', + 'version': '0.1', + + # any module necessary for this one to work correctly + 'depends': ['base'], + + # always loaded + 'data': [ + # 'security/ir.model.access.csv', + 'templates.xml', + ], + # only loaded in demonstration mode + 'demo': [ + 'demo.xml', + ], +} \ No newline at end of file diff --git a/res_partner_mails_count/controllers.py b/res_partner_mails_count/controllers.py new file mode 100644 index 0000000..a1262c1 --- /dev/null +++ b/res_partner_mails_count/controllers.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +from openerp import http + +# class ResPartnerMailsCount(http.Controller): +# @http.route('/res_partner_mails_count/res_partner_mails_count/', auth='public') +# def index(self, **kw): +# return "Hello, world" + +# @http.route('/res_partner_mails_count/res_partner_mails_count/objects/', auth='public') +# def list(self, **kw): +# return http.request.render('res_partner_mails_count.listing', { +# 'root': '/res_partner_mails_count/res_partner_mails_count', +# 'objects': http.request.env['res_partner_mails_count.res_partner_mails_count'].search([]), +# }) + +# @http.route('/res_partner_mails_count/res_partner_mails_count/objects//', auth='public') +# def object(self, obj, **kw): +# return http.request.render('res_partner_mails_count.object', { +# 'object': obj +# }) \ No newline at end of file diff --git a/res_partner_mails_count/demo.xml b/res_partner_mails_count/demo.xml new file mode 100644 index 0000000..94953d2 --- /dev/null +++ b/res_partner_mails_count/demo.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res_partner_mails_count/models.py b/res_partner_mails_count/models.py new file mode 100644 index 0000000..1d667c0 --- /dev/null +++ b/res_partner_mails_count/models.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- + +from openerp import models, fields, api + +import logging + + +def getlogger(name): + filename = 'test.log' + logger = logging.getLogger(name) + handler = logging.FileHandler(filename) + formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(name)s: %(message)s') + + handler.setFormatter(formatter) + logger.addHandler(handler) + logger.setLevel(logging.DEBUG) + + return logger + +logger = getlogger(__name__) + + +class res_partner(models.Model): + _inherit = 'res.partner' + income = fields.Integer(compute="_income") + sent = fields.Integer(compute="_sent") + + def _search_partner(self): + return self.env['res.partner'].search([('user_ids', '=', self._uid)]) + + def _search_letters(self, partner, param): + letters = self.env['mail.message'].search([(param, '=', partner.id)]) + # logger.debug('partner.id: %s' % partner.id) + # logger.debug('Income letters: %s' % letters) + return letters + + @api.multi + def _income(self): + partner = self._search_partner() + if partner: + letters = self._search_letters(partner, 'partner_ids') + partner.income = len(letters) + + @api.multi + def _sent(self): + partner = self._search_partner() + if partner: + letters = self._search_letters(partner, 'author_id') + partner.sent = len(letters) + diff --git a/res_partner_mails_count/security/ir.model.access.csv b/res_partner_mails_count/security/ir.model.access.csv new file mode 100644 index 0000000..99d8f27 --- /dev/null +++ b/res_partner_mails_count/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_res_partner_mails_count_res_partner_mails_count,res_partner_mails_count.res_partner_mails_count,model_res_partner_mails_count_res_partner_mails_count,,1,0,0,0 \ No newline at end of file diff --git a/res_partner_mails_count/templates.xml b/res_partner_mails_count/templates.xml new file mode 100644 index 0000000..abf0199 --- /dev/null +++ b/res_partner_mails_count/templates.xml @@ -0,0 +1,87 @@ + + + + + res.partner.mails.count.income + res.partner + + + + + + + + + + + res.partner.mails.count.sent + res.partner + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From b07f52f9e37c65d43173b4a11c3741bd04efcc22 Mon Sep 17 00:00:00 2001 From: x620 Date: Tue, 22 Mar 2016 16:57:40 +0500 Subject: [PATCH 015/148] Corrected wrong calculated mails count on the smart buttons --- res_partner_mails_count/__openerp__.py | 3 +- res_partner_mails_count/models.py | 40 +++++++++----------------- res_partner_mails_count/templates.xml | 28 ++++++------------ 3 files changed, 25 insertions(+), 46 deletions(-) diff --git a/res_partner_mails_count/__openerp__.py b/res_partner_mails_count/__openerp__.py index 250b763..8e67f6b 100644 --- a/res_partner_mails_count/__openerp__.py +++ b/res_partner_mails_count/__openerp__.py @@ -20,11 +20,12 @@ 'version': '0.1', # any module necessary for this one to work correctly - 'depends': ['base'], + 'depends': ['base', 'mail_sent'], # always loaded 'data': [ # 'security/ir.model.access.csv', + 'views/res_partner_mails_count.xml', 'templates.xml', ], # only loaded in demonstration mode diff --git a/res_partner_mails_count/models.py b/res_partner_mails_count/models.py index 1d667c0..f47cc99 100644 --- a/res_partner_mails_count/models.py +++ b/res_partner_mails_count/models.py @@ -22,29 +22,17 @@ logger = getlogger(__name__) class res_partner(models.Model): _inherit = 'res.partner' - income = fields.Integer(compute="_income") - sent = fields.Integer(compute="_sent") - - def _search_partner(self): - return self.env['res.partner'].search([('user_ids', '=', self._uid)]) - - def _search_letters(self, partner, param): - letters = self.env['mail.message'].search([(param, '=', partner.id)]) - # logger.debug('partner.id: %s' % partner.id) - # logger.debug('Income letters: %s' % letters) - return letters - - @api.multi - def _income(self): - partner = self._search_partner() - if partner: - letters = self._search_letters(partner, 'partner_ids') - partner.income = len(letters) - - @api.multi - def _sent(self): - partner = self._search_partner() - if partner: - letters = self._search_letters(partner, 'author_id') - partner.sent = len(letters) - + mails_from = fields.Integer(compute="_mails_from") + mails_to = fields.Integer(compute="_mails_to") + + @api.one + def _mails_from(self): + for r in self: + letters = self.env['mail.message'].search([('partner_ids', 'in', r.id)]) + self.mails_from = len(letters) + + @api.one + def _mails_to(self): + for r in self: + letters = self.env['mail.message'].search([('author_id', '=', r.id)]) + self.mails_to = len(letters) diff --git a/res_partner_mails_count/templates.xml b/res_partner_mails_count/templates.xml index abf0199..2cfcc3a 100644 --- a/res_partner_mails_count/templates.xml +++ b/res_partner_mails_count/templates.xml @@ -2,39 +2,29 @@ - res.partner.mails.count.income + res.partner.mails.count res.partner - - - - - - res.partner.mails.count.sent - res.partner - - - - - - - From 63aa83fe95af04ce9f39c8cffbac98dbc6d93411 Mon Sep 17 00:00:00 2001 From: x620 Date: Tue, 22 Mar 2016 17:02:51 +0500 Subject: [PATCH 016/148] Add views/res_partner_mails_count.xml which contains actions --- .../views/res_partner_mails_count.xml | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 res_partner_mails_count/views/res_partner_mails_count.xml diff --git a/res_partner_mails_count/views/res_partner_mails_count.xml b/res_partner_mails_count/views/res_partner_mails_count.xml new file mode 100644 index 0000000..5731ffc --- /dev/null +++ b/res_partner_mails_count/views/res_partner_mails_count.xml @@ -0,0 +1,54 @@ + + + + + Mails from + mail.wall + mail.message + { + 'search_default_model': False, + 'default_model': 'res.users', + 'default_res_id': uid, + 'thread_model': 'res.partner', + 'active_model': False, + } + + +

+ No private message. +

+ This list contains messages sent to you. +

+
+
+ + Mails to + mail.wall + { + 'default_model': 'res.users', + 'default_res_id': uid, + 'thread_model': 'res.partner', + 'needaction_menu_ref': ['mail.mail_tomefeeds'] + } + + +

+ No message found and no message sent yet. +

+ Click on the top-right icon to compose a message. This + message will be sent by email if it's an internal contact. +

+
+
+
+
From e91db8d44057fb4849474d6adfb0be25d16ca5dc Mon Sep 17 00:00:00 2001 From: x620 Date: Tue, 22 Mar 2016 17:19:52 +0500 Subject: [PATCH 017/148] During calculate mails count added sudo() and change search() -> search_count() --- res_partner_mails_count/models.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/res_partner_mails_count/models.py b/res_partner_mails_count/models.py index f47cc99..8befe5a 100644 --- a/res_partner_mails_count/models.py +++ b/res_partner_mails_count/models.py @@ -28,11 +28,9 @@ class res_partner(models.Model): @api.one def _mails_from(self): for r in self: - letters = self.env['mail.message'].search([('partner_ids', 'in', r.id)]) - self.mails_from = len(letters) + self.mails_from = self.env['mail.message'].sudo().search_count([('partner_ids', 'in', r.id)]) @api.one def _mails_to(self): for r in self: - letters = self.env['mail.message'].search([('author_id', '=', r.id)]) - self.mails_to = len(letters) + self.mails_to = self.env['mail.message'].sudo().search_count([('author_id', '=', r.id)]) From 9c6e120d0c03668235ef717ba22683b4720d4d3f Mon Sep 17 00:00:00 2001 From: x620 Date: Tue, 22 Mar 2016 17:55:02 +0500 Subject: [PATCH 018/148] Corrected count display letters --- res_partner_mails_count/__openerp__.py | 2 +- res_partner_mails_count/templates.xml | 51 +------------------ .../views/res_partner_mails_count.xml | 41 ++++----------- 3 files changed, 11 insertions(+), 83 deletions(-) diff --git a/res_partner_mails_count/__openerp__.py b/res_partner_mails_count/__openerp__.py index 8e67f6b..f2292f1 100644 --- a/res_partner_mails_count/__openerp__.py +++ b/res_partner_mails_count/__openerp__.py @@ -20,7 +20,7 @@ 'version': '0.1', # any module necessary for this one to work correctly - 'depends': ['base', 'mail_sent'], + 'depends': ['base'], # always loaded 'data': [ diff --git a/res_partner_mails_count/templates.xml b/res_partner_mails_count/templates.xml index 2cfcc3a..5adf411 100644 --- a/res_partner_mails_count/templates.xml +++ b/res_partner_mails_count/templates.xml @@ -17,61 +17,12 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\ No newline at end of file diff --git a/res_partner_mails_count/views/res_partner_mails_count.xml b/res_partner_mails_count/views/res_partner_mails_count.xml index 5731ffc..d9f01d0 100644 --- a/res_partner_mails_count/views/res_partner_mails_count.xml +++ b/res_partner_mails_count/views/res_partner_mails_count.xml @@ -1,52 +1,29 @@ - + Mails from - mail.wall mail.message + tree,form { - 'search_default_model': False, - 'default_model': 'res.users', - 'default_res_id': uid, - 'thread_model': 'res.partner', - 'active_model': False, + 'active_test': False, } -

- No private message. -

- This list contains messages sent to you. + Mails from

- + Mails to - mail.wall + mail.message + tree,form { - 'default_model': 'res.users', - 'default_res_id': uid, - 'thread_model': 'res.partner', - 'needaction_menu_ref': ['mail.mail_tomefeeds'] + 'active_test': False, } -

- No message found and no message sent yet. -

- Click on the top-right icon to compose a message. This - message will be sent by email if it's an internal contact. + Mails to

From ee328d4332cb243aa53b85d41d164dc8ed0e521c Mon Sep 17 00:00:00 2001 From: x620 Date: Tue, 22 Mar 2016 18:06:29 +0500 Subject: [PATCH 019/148] Return mail_sent in __openerp__.py --- res_partner_mails_count/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res_partner_mails_count/__openerp__.py b/res_partner_mails_count/__openerp__.py index f2292f1..8e67f6b 100644 --- a/res_partner_mails_count/__openerp__.py +++ b/res_partner_mails_count/__openerp__.py @@ -20,7 +20,7 @@ 'version': '0.1', # any module necessary for this one to work correctly - 'depends': ['base'], + 'depends': ['base', 'mail_sent'], # always loaded 'data': [ From dfa270255e4a189d0fd6df8a34b615027bb4a062 Mon Sep 17 00:00:00 2001 From: x620 Date: Tue, 22 Mar 2016 18:11:27 +0500 Subject: [PATCH 020/148] Add mail to depends in __openerp__.py --- res_partner_mails_count/__openerp__.py | 2 +- res_partner_mails_count/templates.xml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/res_partner_mails_count/__openerp__.py b/res_partner_mails_count/__openerp__.py index 8e67f6b..0af6711 100644 --- a/res_partner_mails_count/__openerp__.py +++ b/res_partner_mails_count/__openerp__.py @@ -20,7 +20,7 @@ 'version': '0.1', # any module necessary for this one to work correctly - 'depends': ['base', 'mail_sent'], + 'depends': ['base', 'mail'], # always loaded 'data': [ diff --git a/res_partner_mails_count/templates.xml b/res_partner_mails_count/templates.xml index 5adf411..1cae718 100644 --- a/res_partner_mails_count/templates.xml +++ b/res_partner_mails_count/templates.xml @@ -6,7 +6,6 @@ res.partner - diff --git a/res_partner_mails_count/views/res_partner_mails_count.xml b/res_partner_mails_count/views/res_partner_mails_count.xml index d9f01d0..8d048e6 100644 --- a/res_partner_mails_count/views/res_partner_mails_count.xml +++ b/res_partner_mails_count/views/res_partner_mails_count.xml @@ -1,29 +1,17 @@ - - Mails from + + Mails + mail.wall mail.message tree,form { - 'active_test': False, + 'ignore_search_model': True, }

- Mails from -

-
-
- - Mails to - mail.message - tree,form - { - 'active_test': False, - } - -

- Mails to + Mails not found. Probably, they exist, but you don't have access.

From f0678b2943568a7948067fb22446ead72b9d34d3 Mon Sep 17 00:00:00 2001 From: x620 Date: Wed, 23 Mar 2016 12:33:59 +0500 Subject: [PATCH 023/148] Removed additional filter by model --- res_partner_mails_count/static/src/js/main.js | 8 ++++++++ res_partner_mails_count/templates.xml | 10 +++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 res_partner_mails_count/static/src/js/main.js diff --git a/res_partner_mails_count/static/src/js/main.js b/res_partner_mails_count/static/src/js/main.js new file mode 100644 index 0000000..78fcd66 --- /dev/null +++ b/res_partner_mails_count/static/src/js/main.js @@ -0,0 +1,8 @@ +openerp.res_partner_mails_count = function(instance){ + instance.mail.Wall.include({ + init: function(){ + this._super.apply(this, arguments); + delete this.defaults.model; + } + }); +}; diff --git a/res_partner_mails_count/templates.xml b/res_partner_mails_count/templates.xml index 8339909..a429476 100644 --- a/res_partner_mails_count/templates.xml +++ b/res_partner_mails_count/templates.xml @@ -1,7 +1,15 @@ - + + res.partner.mails.count res.partner From c32e2c9aadf5c3a201bbad45c319dcf447751565 Mon Sep 17 00:00:00 2001 From: x620 Date: Wed, 23 Mar 2016 12:47:37 +0500 Subject: [PATCH 024/148] Removed from ir.actions.client view_mode field --- res_partner_mails_count/views/res_partner_mails_count.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/res_partner_mails_count/views/res_partner_mails_count.xml b/res_partner_mails_count/views/res_partner_mails_count.xml index 8d048e6..ce339a6 100644 --- a/res_partner_mails_count/views/res_partner_mails_count.xml +++ b/res_partner_mails_count/views/res_partner_mails_count.xml @@ -5,7 +5,6 @@ Mails mail.wall mail.message - tree,form { 'ignore_search_model': True, } From d626aa26b406bf65340f8a1e86968de273241ad1 Mon Sep 17 00:00:00 2001 From: Ilyas Date: Wed, 23 Mar 2016 17:27:28 +0500 Subject: [PATCH 025/148] [IMP] Add test --- res_partner_mails_count/tests/__init__.py | 22 ++++++++++++++ res_partner_mails_count/tests/test_mail.py | 35 ++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 res_partner_mails_count/tests/__init__.py create mode 100644 res_partner_mails_count/tests/test_mail.py diff --git a/res_partner_mails_count/tests/__init__.py b/res_partner_mails_count/tests/__init__.py new file mode 100644 index 0000000..0bc1d87 --- /dev/null +++ b/res_partner_mails_count/tests/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Business Applications +# Copyright (C) 2013-Today OpenERP SA () +# +# 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 test_mail diff --git a/res_partner_mails_count/tests/test_mail.py b/res_partner_mails_count/tests/test_mail.py new file mode 100644 index 0000000..4fc6383 --- /dev/null +++ b/res_partner_mails_count/tests/test_mail.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- + +from openerp.tests.common import TransactionCase + + +class test_message_count(TransactionCase): + post_install = True + def test_count(self): + new_partner1 = self.env['res.partner'].sudo().create({'name': 'rpmc Test Partner one', 'email': 'tt@tt', 'notify_email': 'always'}) + new_partner2 = self.env['res.partner'].sudo().create({'name': 'rpmc Test Partner two', 'email': 'rr@rr', 'notify_email': 'always'}) + self.assertEqual(new_partner1.mails_to, 0, 'rpmc: new partner have mails_to != 0') + mail_compose = self.env['mail.compose.message'] + compose = mail_compose.with_context( + { + 'default_composition_mode': 'comment', + 'default_model': 'res.partner', + 'default_res_id': new_partner1.id, + }).create( + { + 'subject': 'test subj', + 'body': 'test body', + 'partner_ids': [(4, new_partner2.id)], + 'email_from': 'tt@tt', + 'author_id': new_partner1.id + }) + compose.send_mail() + self.assertEqual(new_partner1.mails_to, 0) + self.assertEqual(new_partner1.mails_from, 1, 'rpmc: one message but mails_from != 1') + self.assertEqual(new_partner2.mails_to, 1, 'rpmc: one message but mails_to != 1') + self.assertEqual(new_partner2.mails_from, 0) + compose.send_mail() + self.assertEqual(new_partner1.mails_to, 0) + self.assertEqual(new_partner1.mails_from, 2, 'rpmc: one message but mails_from != 2') + self.assertEqual(new_partner2.mails_to, 2, 'rpmc: one message but mails_to != 2') + self.assertEqual(new_partner2.mails_from, 0) \ No newline at end of file From 58060c1cef36a1622e107594768bb6e78ff67808 Mon Sep 17 00:00:00 2001 From: Ilyas Date: Wed, 23 Mar 2016 17:32:19 +0500 Subject: [PATCH 026/148] [FIX] bad copypaste --- res_partner_mails_count/tests/__init__.py | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/res_partner_mails_count/tests/__init__.py b/res_partner_mails_count/tests/__init__.py index 0bc1d87..300df16 100644 --- a/res_partner_mails_count/tests/__init__.py +++ b/res_partner_mails_count/tests/__init__.py @@ -1,22 +1,3 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Business Applications -# Copyright (C) 2013-Today OpenERP SA () -# -# 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 test_mail From 5177ae31c2758475311ce0fd4010b622d9cc8d8d Mon Sep 17 00:00:00 2001 From: x620 Date: Wed, 23 Mar 2016 18:09:07 +0500 Subject: [PATCH 027/148] Corrected Send a message and check ignore_search_model parameter --- res_partner_mails_count/static/src/js/main.js | 4 +++- res_partner_mails_count/templates.xml | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/res_partner_mails_count/static/src/js/main.js b/res_partner_mails_count/static/src/js/main.js index 78fcd66..16c9d56 100644 --- a/res_partner_mails_count/static/src/js/main.js +++ b/res_partner_mails_count/static/src/js/main.js @@ -2,7 +2,9 @@ openerp.res_partner_mails_count = function(instance){ instance.mail.Wall.include({ init: function(){ this._super.apply(this, arguments); - delete this.defaults.model; + if(this.context.ignore_search_model){ + delete this.defaults.model; + } } }); }; diff --git a/res_partner_mails_count/templates.xml b/res_partner_mails_count/templates.xml index a429476..fe9b5b1 100644 --- a/res_partner_mails_count/templates.xml +++ b/res_partner_mails_count/templates.xml @@ -18,13 +18,13 @@ From 6e85fb5bba2ebb3fcc7187d669bbe689064c3fd4 Mon Sep 17 00:00:00 2001 From: x620 Date: Wed, 23 Mar 2016 18:53:06 +0500 Subject: [PATCH 028/148] Added README.rst --- res_partner_mails_count/README.rst | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 res_partner_mails_count/README.rst diff --git a/res_partner_mails_count/README.rst b/res_partner_mails_count/README.rst new file mode 100644 index 0000000..5b1e33e --- /dev/null +++ b/res_partner_mails_count/README.rst @@ -0,0 +1,16 @@ +Smart buttons for mails count +============================= + +This module adds Smart buttons with "Mails from" and "Mails to" count of mails in the partner form. + +Usage +----- + +You can see Smart buttons "Mails from" and "Mails to" in the contact form in the Messaging/Contacts menu. If you click on these buttons, you can see list of corresponded mails. Click on the "Send a message" link to send mail to the partner. + +Further information +------------------- + +HTML Description: https://apps.odoo.com/apps/modules/8.0/res_partner_mails_count/ + +Tested on Odoo 8.0 5209f6d2f26a38f66c063f05d32a962974741f40 \ No newline at end of file From 3c4d5f8f4f5d9cc67b29647cfaa0be744deda3f8 Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 24 Mar 2016 10:44:13 +0500 Subject: [PATCH 029/148] Removed unused security, controllers.py and demo.xml --- res_partner_mails_count/__init__.py | 1 - res_partner_mails_count/__openerp__.py | 4 --- res_partner_mails_count/controllers.py | 20 --------------- res_partner_mails_count/demo.xml | 25 ------------------- .../security/ir.model.access.csv | 2 -- 5 files changed, 52 deletions(-) delete mode 100644 res_partner_mails_count/controllers.py delete mode 100644 res_partner_mails_count/demo.xml delete mode 100644 res_partner_mails_count/security/ir.model.access.csv diff --git a/res_partner_mails_count/__init__.py b/res_partner_mails_count/__init__.py index c7a6ca6..0f7cb6b 100644 --- a/res_partner_mails_count/__init__.py +++ b/res_partner_mails_count/__init__.py @@ -1,3 +1,2 @@ # -*- coding: utf-8 -*- -import controllers import models \ No newline at end of file diff --git a/res_partner_mails_count/__openerp__.py b/res_partner_mails_count/__openerp__.py index 0af6711..1d71078 100644 --- a/res_partner_mails_count/__openerp__.py +++ b/res_partner_mails_count/__openerp__.py @@ -28,8 +28,4 @@ 'views/res_partner_mails_count.xml', 'templates.xml', ], - # only loaded in demonstration mode - 'demo': [ - 'demo.xml', - ], } \ No newline at end of file diff --git a/res_partner_mails_count/controllers.py b/res_partner_mails_count/controllers.py deleted file mode 100644 index a1262c1..0000000 --- a/res_partner_mails_count/controllers.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -from openerp import http - -# class ResPartnerMailsCount(http.Controller): -# @http.route('/res_partner_mails_count/res_partner_mails_count/', auth='public') -# def index(self, **kw): -# return "Hello, world" - -# @http.route('/res_partner_mails_count/res_partner_mails_count/objects/', auth='public') -# def list(self, **kw): -# return http.request.render('res_partner_mails_count.listing', { -# 'root': '/res_partner_mails_count/res_partner_mails_count', -# 'objects': http.request.env['res_partner_mails_count.res_partner_mails_count'].search([]), -# }) - -# @http.route('/res_partner_mails_count/res_partner_mails_count/objects//', auth='public') -# def object(self, obj, **kw): -# return http.request.render('res_partner_mails_count.object', { -# 'object': obj -# }) \ No newline at end of file diff --git a/res_partner_mails_count/demo.xml b/res_partner_mails_count/demo.xml deleted file mode 100644 index 94953d2..0000000 --- a/res_partner_mails_count/demo.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/res_partner_mails_count/security/ir.model.access.csv b/res_partner_mails_count/security/ir.model.access.csv deleted file mode 100644 index 99d8f27..0000000 --- a/res_partner_mails_count/security/ir.model.access.csv +++ /dev/null @@ -1,2 +0,0 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_res_partner_mails_count_res_partner_mails_count,res_partner_mails_count.res_partner_mails_count,model_res_partner_mails_count_res_partner_mails_count,,1,0,0,0 \ No newline at end of file From f2a20020fc0731e80fbf2a4bf0ca8ed4ae2d233c Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 24 Mar 2016 10:51:42 +0500 Subject: [PATCH 030/148] Convert tabs in spaces --- res_partner_mails_count/templates.xml | 6 +++--- res_partner_mails_count/views/res_partner_mails_count.xml | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/res_partner_mails_count/templates.xml b/res_partner_mails_count/templates.xml index fe9b5b1..29c6de1 100644 --- a/res_partner_mails_count/templates.xml +++ b/res_partner_mails_count/templates.xml @@ -1,7 +1,7 @@ - - + res.partner.mails.count res.partner @@ -22,7 +22,7 @@ icon="fa-envelope"> - @@ -32,4 +45,4 @@ - \ No newline at end of file + From 479a0ba68c61842b0f7eba3dff612f93861ffd94 Mon Sep 17 00:00:00 2001 From: Ilyas Date: Fri, 25 Mar 2016 10:57:11 +0500 Subject: [PATCH 032/148] [FIX] useless compose fields --- res_partner_mails_count/tests/test_mail.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/res_partner_mails_count/tests/test_mail.py b/res_partner_mails_count/tests/test_mail.py index 4fc6383..f606964 100644 --- a/res_partner_mails_count/tests/test_mail.py +++ b/res_partner_mails_count/tests/test_mail.py @@ -13,8 +13,6 @@ class test_message_count(TransactionCase): compose = mail_compose.with_context( { 'default_composition_mode': 'comment', - 'default_model': 'res.partner', - 'default_res_id': new_partner1.id, }).create( { 'subject': 'test subj', From bb6fe107cd872f46f57cb2c1a2169bd07df046d0 Mon Sep 17 00:00:00 2001 From: Ilyas Date: Fri, 25 Mar 2016 12:25:05 +0500 Subject: [PATCH 033/148] [ADD] description --- .../static/description/1.png | Bin 0 -> 93689 bytes .../static/description/index.html | 13 +++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 res_partner_mails_count/static/description/1.png create mode 100644 res_partner_mails_count/static/description/index.html diff --git a/res_partner_mails_count/static/description/1.png b/res_partner_mails_count/static/description/1.png new file mode 100644 index 0000000000000000000000000000000000000000..7ce0c1332609ee8add038424fc0207523c171809 GIT binary patch literal 93689 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 +
+
+

Smart buttons for mails count

+

Display amount of messages from/to customer

+

+ Open partner form and look up how many messages from and to some partner. + +

+
+ +
+ From ddded64ac2d458617a3b8cf1cb624597489660dd Mon Sep 17 00:00:00 2001 From: Ilyas Date: Fri, 25 Mar 2016 15:46:45 +0500 Subject: [PATCH 034/148] [ADD] manifest price --- res_partner_mails_count/__openerp__.py | 43 ++++++++++++-------------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/res_partner_mails_count/__openerp__.py b/res_partner_mails_count/__openerp__.py index 1d71078..9d0df1c 100644 --- a/res_partner_mails_count/__openerp__.py +++ b/res_partner_mails_count/__openerp__.py @@ -1,31 +1,28 @@ # -*- coding: utf-8 -*- { - 'name': "res_partner_mails_count", + "name": """Partner mails count""", + "summary": """Displays mails amount from and to customers.""", + "category": "Sales Management", + "images": ['images/1.png'], + "version": "1.0.0", - 'summary': """ - Short (1 phrase/line) summary of the module's purpose, used as - subtitle on modules listing or apps.openerp.com""", + "author": "IT-Projects LLC", + "website": "https://it-projects.info", + "license": "GPL-3", + "price": 10.00, + "currency": "EUR", - 'description': """ - Long description of module's purpose - """, - - 'author': "Your Company", - 'website': "http://www.yourcompany.com", - - # Categories can be used to filter modules in modules listing - # Check https://github.com/odoo/odoo/blob/master/openerp/addons/base/module/module_data.xml - # for the full list - 'category': 'Uncategorized', - 'version': '0.1', - - # any module necessary for this one to work correctly - 'depends': ['base', 'mail'], - - # always loaded - 'data': [ - # 'security/ir.model.access.csv', + "depends": [ + 'base', + 'mail' , + ], + "external_dependencies": {"python": [], "bin": []}, + "data": [ 'views/res_partner_mails_count.xml', 'templates.xml', ], + "demo": [ + ], + "installable": True, + "auto_install": False, } \ No newline at end of file From 45b68ed39add2ecf26b1766a220c4f5e2be667f0 Mon Sep 17 00:00:00 2001 From: Ilyas Date: Fri, 25 Mar 2016 15:48:27 +0500 Subject: [PATCH 035/148] [ADD] appstore image --- res_partner_mails_count/images/1.png | Bin 0 -> 93689 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 res_partner_mails_count/images/1.png diff --git a/res_partner_mails_count/images/1.png b/res_partner_mails_count/images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..7ce0c1332609ee8add038424fc0207523c171809 GIT binary patch literal 93689 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
5h2Dgg$ama4u)Dml-n7J-)nScrU@+a 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 Date: Fri, 25 Mar 2016 16:44:21 +0500 Subject: [PATCH 036/148] [IMP] moar pictures --- res_partner_mails_count/__openerp__.py | 6 +++--- .../static/description/2.png | Bin 0 -> 92899 bytes .../static/description/3.png | Bin 0 -> 78557 bytes .../static/description/index.html | 10 +++++++++- 4 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 res_partner_mails_count/static/description/2.png create mode 100644 res_partner_mails_count/static/description/3.png diff --git a/res_partner_mails_count/__openerp__.py b/res_partner_mails_count/__openerp__.py index 9d0df1c..9e86c59 100644 --- a/res_partner_mails_count/__openerp__.py +++ b/res_partner_mails_count/__openerp__.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- { "name": """Partner mails count""", - "summary": """Displays mails amount from and to customers.""", + "summary": """Displays amount of incoming and outgoing partner mails.""", "category": "Sales Management", "images": ['images/1.png'], "version": "1.0.0", @@ -9,7 +9,7 @@ "author": "IT-Projects LLC", "website": "https://it-projects.info", "license": "GPL-3", - "price": 10.00, + "price": 30.00, "currency": "EUR", "depends": [ @@ -25,4 +25,4 @@ ], "installable": True, "auto_install": False, -} \ No newline at end of file +} diff --git a/res_partner_mails_count/static/description/2.png b/res_partner_mails_count/static/description/2.png new file mode 100644 index 0000000000000000000000000000000000000000..c335c0ddf65f5b3489cfd4a5853fa34f63e93886 GIT binary patch literal 92899 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 literal 0 HcmV?d00001 diff --git a/res_partner_mails_count/static/description/3.png b/res_partner_mails_count/static/description/3.png new file mode 100644 index 0000000000000000000000000000000000000000..9492b473e8f7f21e156c0edf5979cd8056dcfe2b GIT binary patch literal 78557 zcmZ^qWmsIxwytq^cY;H3Xxtii3&GvpHMqNn;1)c%ySuxE5Zv8eZfC8%?zw00egDnw zo=?}1s+u+4@y!S&1xaKC0t7HHFl1>du}@%NP!?cd5NL2Ppl^QDYZQTjeE^dd6aMU> zcajC`O|+0T_-y<(0a&T~qI;owpVpZR~9;-_&OP9^gh+xT?I@Gq~7= zUZa?Jcz!|(rh;J_K*;&Svw%}~L;bH0FfsnIQ0aMjdBVqFT;u=yxBq)%K!RLuWhDy3 zbo35(x3T&E=by5`5CK7g(68rU@>^2e%cItm<7{yW|1l;D8+Zf* zt??S6V03a@-ky#x@4Mc0u}c=6O0kh00(uVI3m{?^tOSB&WDso06No=60`|ohM-OMk z#l=gDG2WHJl3j5<&J4zBZiQnhbaH}XTuWkD)89&&0zW{LXAMb>NzN5pOhw!h#MP5V zj8o6n1k;n+WzP8Gl)c3y@hF{z^eiLKzoDPDQyuY(xA{`wD^i+@UdD(M&rIr8UmLkj zsUEB3#b{S_y*v(6#G708w}z6K^!mFGCT+xG^;L)EVp*(`pa$=3fw#8(x;*=3Z}_Th zpV!ieV&@UBt`t5pSG0Yt|MpP=H|`dZ9h8t~Q;a%rlt`dx$I{hS+5xIQYetB#8dd}l zQ|5DogiXX=<{Oe~84%OzH&VZ-BE!n`C&>~vtx0)G^vJ5q;i_;8{Yr9sx(EE3@*0f> zf%w}JU1O`9p}HyxQpHRU{h9v1Lc^@B9fSJR>*x@daQ2Ogm!wR47QwSJ|?Cnd(F4|0z4d*OHbuD`O-d||Z2f&myHrh}(9ldT{j z0z_T5l726KoGyX?Xq5w-7g_J^r+lxTtL(LWZvSqi+O^WBXKmegu9_?&uTd4`!?F*!z`O z*eH+rAA{0kJ_578HNgB3-W2K25SVR8)s-#kGXlhS`*8ye_=DV$RAzEIzFcRWwj9Y* zjKYa|w|lRI)n~iKm-G5=g9{5sNC6U6Lo=h09(OcCVhNgItY2EH+g2^?tHLIZdPfEo zTn@foZZKy9f7Ty$YlR#p1n#cOc`c20WnW2*oArQ!4-((;{g%s6{BG zOz|`?It7SnXGfl<$apLp%lbJ(>nPle9ZB6Du#~={WBI7_v+}Bt>w-Z27yW!{Xq#b3 z2JEgYL8V^+v&HC}B)huR$@~%0AV+nalTE-j0+Dm|D<=WYXGOnz;|3pg4MHo11;Mxh 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͎$>|<_s9HV&47p`C$q2CRh+qs`TsXMQNoZA05=n@C4xoz<;-`!s> z2dX;hvkYC8Io3VCZ)#maHbT^L9z0T|TDPm~<)cf@)LS4i! z&gy~tS!o>V2gavVjL4)~#0D=?$%rxjnU=r%kXuh?$27(3FzS3> z^qNCvhLKGUJApSC1WqJ8U#wj-z@uhW{=VSchEw&qi!i2D$W!FWg+x_m2Pxkh7{i+@ zL(!YzDj`9KS{9S*FG+6K=NN`%YG=KS7u&l%Qki87wy?pEDekIug?})*f5*c0vTw0{ z5Glr5n1$Ed4L;`=`a_8y>@>3on>?-`(Y69^ojr@5w}@XI9>O1@l`yPC7H>!q0HS7}2{s6BxJ_8Tie{Fvp=&53Y!Sbw6Bk*7SiKfy z{=-DEdWAgR00DED;=8mGX^8rqF0&DPA|{5!lMWh-IW6Ydx^P=IJu&q-^TQk(7R!fS z?c?q#YCDO{?o`%0e(%*DHWCjB1X4&Wi-q6*oZ3#w^@=Db_$+oW=hV!E_Np84%?Gjh zwK7CHm)k@3%|s+x5Lfy0j8>eUh@1o9G)p5hxCLhYHPO;Bwz%)f75_5xZ&`qu#pTkv zOQp?Cka9jY(cOPS0C_~ zukum3>@3liIL%^}zAjW&R`vncd(AIZcXx0KOx&}%X(zxKl>v=N^!wdK+{i`ZLMEB1s&F*XFfXkz|(}E0P($>MMaFyIGDWZ?Hw<=phgBb!| z(z=5J(U^%rg+ymKoU8pFu0xsM4ddE`LNnh#ikk`xgrCQLwn{T7tU}`}8Ng%QVb`$& zy;=$+$N8Ka*4@o@?4WkUo+9RR^8Ks`_tJezCn=FVeXRo<$8|m2${_p>xc}ZISnod} z&Bb<{(VUALtl8?vF||jzA~rgWJYJ8nqx1#2CTJ5>alQTN-0FN+5R z7iANoDXKeqLd~MO^^9b_qZ*VFCehcG)RQ0{79EYt(bRfc)H9fW8L}@J9Io)*{|xaW zI$Ppjxd5UOlaoaW++>R55pEbu(aCN3TZur{1Ztel*W81i^Fs>2gfj({t+b_`G7k(S z9?ogmj`OjewS

h7eIg}DBy?NcqgW{=-p!D1dSs)*PJ8dr~)IC4Yk>j5_} zdeM$~;b)==%An|?A~X~$^v?U-7Ps~eO1U(S-gO(+^9582Sre6f^ko;1Hvwyr*epCr{{MPhk~r3*P`G3 z-NxWG%(um&v#}-q*XGxo*VCy$QwRGg-qgk)~7pLh{? z-C?j)(#ltQIhqrYH1n7_4F4)KiDM=4tAs~6Ou z{e?>Ar@mN%I4wa$F2L+GrYuXuq2+u%^mSTos5)Pbp*>HIIR75$Ut>#ur<9i&OpFRE z$Np1qPpMu+%=$RC(AvfkFf*QL<+D$jJ58PwFY$;VXl+E3Y@|$Z6+pC{c@-P0w4oQj z+2>n7kMV_8VmuW9sV&XO`21e5%{zW3{WZhj%^c18ye7&_*{@^gp+x;8%Y!;`tk?n> zc-AHtYD<62^*pf+-#Kw&rU8vN+ zv!_VTmI(F26esuNjhG<;aqa-wTHh~mnD)M8x$w4+U(8KAgB1#rysdtA~1mC~#P8z-W06+Hcj!1BXtQoka{BrD{ow%pS zz~+yvSQTS>cvQSL;H12NEJpupqH-PUTUvwX%5An~B`g_WFQ}7!VJHvFEjA*ii+UK+ zPT8>;tly@&DliDF!c&Ni%r+7Wx+zKGK6_Jq?{*~o$OgQIdnqM)Ic1lMjHF-+HwZXb zxY=W)M*C?s_3rd$VR->Vd7q#G${lWD1|^l(uL?qGqav} zoDX}(Yp$L5_NyLwymL7vnlpi1`&;B$ZfAiMI^5C?!m+1@XT; zh`3sIFhp+zC1i^$(PBcHM}S(8A0+WtlC1Z~oT|630^`#sh<~OREiz=sSWOm^OvaO> zNm)%Yk+|pwVN)z$*_b5a->f{C0S?YDSKk%^*!HEC*<9qrRshD(Rd-+eYk|-ZrNR$w z--Fh5dI*x7UZSg-MGaAyVTu*mKn|n(mT5`&cqE?he(>+vNtW`cqfmK+>xd_nb9w`m zMonRh|M0ZafUb4Fxo6Po?Ig)7y4K(D&pW*}6O#Q8KF7T?a-j+~>wqIoCUUw4=MT7m zUytQ`z%!hUyYzQ~ynbXEVPDGL;KaA#YwW^NyF+UTdy*7#60@yv8_5GvMZ7!12CeSu zt__F^?KBgt4}}`*#_B`I98D%%MN%|41*+X}$_Fxg=>E%()q>6y#?Z2>@NJHf>p3XF z=a*<4QS*y0MJ^@1a+R+Qq8vYEhy6~AibGPE+KuR03zG?x8vlLs%AlhZGP93!J{SCW zZuw4a-h|EvoM5~;7{@M`^>z&-z|xf4FNtFCU8WItrE7ldv7u<0!G+nUK5Q?^rS50T zKMKf+u@(SZs1?$XC71T-WQk))YfcEQ9v~4(VK4?><56rjLQw;6oF1H4u}@jletpK4 zFGz-pL(zM*_&o31$-si+r@lV9xC@P``{2r|0$6v^Q_rjS3azD}83ST9#wqg&?3QiJ zEnngoP3S!msg|49P1bhKx9{-4Z+g_7Z*}Su6}EY|M%Z) zdgGr^gf+~s7teN&T2`L~lI0rCgPTknoekuJ0x_;bMhssI%^}NKp<#hin>RkoeWs(P{EbaGksa}I zq)8~an@lD~h~qGIoiq3`W?mab( z@geBVXfz0ud*cyo5orcg?s|E%0#R|q>Ar(gJSJOBbZN8RGRYc}ZIqXCYdME0M zq$At4!nXc*{~uv*0TpEzwG9iB0#ee_NOyOaN{DnzgLDm@N;4oLoq}{pgOt+JAvrWk z4l%^g@ZIB6zVH97|66O8>sIeLXPUabhnl zkl)}bIY`ATQ7wcr*0Qa#eO|5Z=sY#ZdT#>tT{}Ln#-n66B|$B;Ik-Vvn$YA>dLRk{(uF?(E7j%q*Wuu93cP%VZ(ZM3xR0+92wk0NNVJ<27vY z7Pl+fRBx4v`{CsEG1tnsl=&C!mxi--uCU_utq_cdlBYi6?fF18(+!?fQ!O%t`U*LF zI@&5eFidwLUiHib{GbA_@zXG=$%C0#2Qk33$>2J!He_>xx;TS}oS&kB$L1W=ocXLZ zO8kQkh3EmaXa{DuujJQ+5K;ag8+~~eTi58eGL$<^R=w0ftT=nLj`J9$S0k54I3JUH zc((pn?(yrG`$>GRGdZI(ufJhGmWt%K1EEn`_&4I)j)e#Ly!_Er?W?^G=Q1jx?4fj& z2qU>$XO4>-SYzqwjOXerO8H=w&96igf=$qG6~ahGl0i)<3|M=vZhaJ~`V#o=J6v)! zMrgEaz!6a^Muu#lw&RCRU$)V-bk${dn?cu?USfx4Hq?^Prr@iNQ;cN)pY&^ZMX)lN z{2sp0hCRc>g=yV!=IF!l-Op=r;MqeMYIxozt79Kzlgh>+WmYxEh&D}Pkd6* zPOa|n2+J_nai-SWX^^6;VJ2_2@O1WYuB_gosY2mifZsC_#Tt>JV*^3BFE+JV`AP)$ z`cI14FIH?I{)Uh0k8yxww)ba0KeT_1Q$o^q1zVdOT`OoCp4XWvz0_{<+#{O3S>NPz z+AX~|zjTcs`1!)I4jbv0`^;(x`m_PDINU)+7a5F3$+Wx>UBT5B()PVWCD;FwsA<1p z)O_#MopYoFfGG3WXEd7aCT~{f!x+Bs@6pGWUjAxw+Vd?p77<`c*NZh9R(A|!D*BFj z4Q;PlO>#HC6@LRxiLam$cT3kC2CP|J$%wf&ro;JU!10fxAKNjCD0|Vd_Rv8uh|N0w z(c9#@>a~Kgs)CMy_kM%i9oh{!B1>-umU+moe|1&@Ths&{-mVB>A<+)8?{sY+HS1;4 zCNNI>QH@7G<-Tqf<7nCA+?Rkc!c9`c(}cq&3v|~?eG<7_aXV{aKnyPYJ>@UvkRdF7 zdPs6~_1ft4iuJndd|OfV#lgdToG#gC8n`BYaAWBHeMYWUY+WHO^Ve3?ffwp|U}H2@ zvFtm@nJd3eT>MSXYj!X8R1&$F5*>a)(2CY`Cbc?+;P)kZXCyHieH>~cqG5IoH1A@N zRe9YoRkbitgO919eIJDaqb9cQSsU{bS`n7I?i-1PM$(f14`qfB?4F zwG@AMy(n+g?3=tvH}GnZ6DnaCJ;+%mr(m@qpPr3t(slJF#`U;<4HxacaN8~pbjR-N zj#bK67ZjEGM=WEX!0#x33L}I=+6fB^pt$puwH#3CVsh%h#?gEpyu``h?sJdpfO;%$ zv~_nsES0s!EL`3H%UXP8r)uq*?OedUySt3VNHgTyL#(o~S4(SJqLBfHOViPKDO@IR zrJ7xNqvNQ)sw)Jf9i=tx?q7rl#&B=055gjz58#V=K9aifIo=}tGGydfVhg(86Bc4}eff)|y2(t^seRSAHE8AD(vsi3 zH$;gpyI)3E=hd%iqoZT$I5a_Pv8j|v5q3@1Qt@vn5qt80wz`D*7Y^weV*#S7Dg zC<(5+hu;c>%nKu;uG;#Rzh*C?o^Pc;6~4}C;fC$(zSu1=;8iKx+_ImgHjR$2ED^HA z=o?!)M{CH+j7uux4AXVe$R+Dw8A!N(`sy(X`90&J!`jU_gU1)FxhOol>$>aeb&iTR zv!|1LpO->Sqs#8D>6<<-7%`BN3fEKL9UkjUvZ(b2qK}_*L11eUd9yuRy0*ZHOkJ9p z*CJweNxVqLxpTEP@kauKDO@x2)@90{Newahzo#%0WlGmIQiz#c3Vk@s>HBfS`-miI zT?K;LT5C@-lI_@e?Q`1XziK7ySxDx58_4yVgtN=kf4v1mJr#u}E*KtvQ&u}!s+Yve zD~O1J|NVP{JRaxu`37p_zcx=cKRv#GX4;zpD?3c^?ehpKXb&MBp}xc+zyI7dpD`VX znH(Rynow#bvGt9+CBIr9R9PER;A@F@?4m$_{@LTyT+8S4auhOn?a`~+)+gMO$T-2a zefrn%Q$kzusR&6&@FRI2M}cG`KHQn1vakIQ^Opo$FR3G{tDc0Cc0W~jcNvVvFuC4j z#O5>#y}RUDxnMf`sIYwWX{sptV;PLuB=8tp&9g7$g~*2Sazx=+6ciKL&A!5;8r^@3=$OsWb|oKHjXh2%_IGswSsshvTh1A*^c;P5(jvR?j}I zur`K_|2CtoF7ogBbp-y3HxIf&+e{98Fr!AH!{JK-8=$~9x=pwUXaAse9hZB0vz%+U zHr3?%t8UeNS2ov&sA$b9mD`n|P^IHh?asvVKL0G-4=N=^I8#y5(NtK&?Xz;i>2URm zj-1^3BfDxsII=3Md+5wh!Vp(N+apZ!09vFDe8k3AIR(a)y%u{MX;$2V<9vHf&BMYI z8KqFL1>KQjAXjofW_d&u#_bMQ;im%5X{Hhn-I>EW)K$MG?IA3!pUmJdVR|P`haU{j zUw!i4^UHf8jf+3jO*{s6?#*F~_nlS|oGC9s_dC1)NrOO>USKUrgsBhNfhTxmi>p#U z`qy)7i@f)rd4eYo+QX(V?OiOoK2)Rn(%;|Ocj!ygRC4+GgNBi-og8aYyr$s}$_bsH z3H^4+zEA_gDOGy>m^dsvc&+4l_0f^<2NIEAJY}ne()qnn6-OyRzUmsxA;Ct2+{``} z$*r(1O-CxtjW5SN@n*T>NL&=RBYx0kRK}7fy0X&gd5P`XIcU4K78_g0n`pl4eG0&^N;rS-~ZL)SZTZ zMrXTtj0QU4>`fnJY9W57g_>?>Wwtj5U_MihqXURo0b@Um+~+b&7sZX|jUtKdNn%P~ z2%fx8sS91mh^ErvG4-9$hdy*3n@enlJh`ncsPywIpU1C7V!^AO_KdHR=h~G=8;klaWdz^ zBvcjjnyhh%`?b=SCTHs%Nk(*xLx@t;6ca+55+dtf9qbbiHSZe?x#o}4gib<&!U6~- zL$y6i!-OohoFVaNX98xqZb-z#Y+co7qU?OOtUByUO+Hc&vv=;5a`ogX;1sLo(Eo2_T$kb~IeybecEt+$!XHvX0d6z@(1uHtHDxXO!jpvvyHGmuzzh2(5eNd((|3

+aJ;R(uiY6&%vcEr7p(!`U&Ncc!PFfhpND$8PCjls&wXnPZd{v<($kdsr< z?kQ$xj{+IKt>vT~V_?5z%IP0K{TijO%wzKTZ?;6>Vs%58D7UXFRU4jNsa=~Zu_Uvn z#ZBbV=^_u0jp2p+s;_CU?9$F9@#AG&p zfM`&|(7(E=(u8kx#DxPm?kXq}f0Vs0$lnvY*Ev>4gEcD%$V>{_S`38dP! z`?lS$GL$BX6v?=IK|~aWzb70@c$4_TRII%7Ei1RLlQ!{W*;NvvmFZatM5R;QNU+qm9gXw-5SG_{YGOhr-5=G z$+6`*?x}#_$VQ~+Vb4M9XVjS{x_2<*%OSX4g3Xp`GtyBK z(MiDzZkFcni?l zZrX}dUwi~7Ei646yBxb)V+iDA$tZs0D22&y%>w`@pZp|+e3ukDGy7GQrS}Qt9r$nK zKKC9bc7sEgSexz|pRPK7Mx(3ss325W`|VDino+S)sQt`P7&GOh-#JlhU?5p#n(43T z3DN|{`4CO?`23S2h19VlT5flw(wO&5`a5@#NXQ|iU!-Ouu=r9eE~U{!Q+}A1KjCwb zp&O6E4Lai_5b{SJH6Q1XfZfve<}RWSHPnvowzjY>Qq=ct%lny9m#pSb9dvno1EH_x>-e zRqzLCY)3znzGj7-&iX0G*;+?*HKO6Z>utjKkj7E!&IEVD>XUixREqhSlx6nb34s(@ z$K%tUZ^Lw|bUeW$g}C_HwRoD*iKr1^WN^0XV+`z%XA3@$OkYMExp)sHK-O}@;%=N* zPBP=ydwt73kg^18;FuQ$#iYdjuo#{wVa}6Ye@JCW!XHwHlJ0yx)nPJ}!)6=nk&ROG ze1)q6&NCb=;Rk1?sPVsWtJt%za_pL~&(UfhDOvrEj-v_?m-h550fkPitmHO0&!3Ow zS~a7DVxUGVHZY-fYb1u;`_j^KIJ7L4Z%l~s*7dm0sVDnvsVmOQ>(xksyUUDmPCS-4?lss~ZB3Wx4e z?~`x~G}VDIAG2%(D3vMX6GfQnSK!2YD=SQ2zbkHT?%b&qd?mIhbPQOuVg%lUw|KI^ z%0mg3r^&rJ1IU%?^0Rk#cVQ4mv9YDO7|o(|myIF2>$#lDt|2mjP+&anGOhN7i9tA4 z8wnok13O%#OE@D>xJitnpDGA(Ru?K__N%T=TDLZb&%gd0-+7^`it6Xo!Vy0 zVJF$YeW2WTn6`P}Uyw*%uRI>uDf}q@PMPXOt`(Nt;6pVk1MbL?WWf(ZnGxv|<3W0E zUFsxuu@PKbY5l!{y-r@woREY%-a4+~8rkxxp)Hc~6*^+RCN>HSFZqQL(e=o7 z!u)#-76QmB8zX!({2V!u*fumI6^>;Zq>PVy?@MH!1b??V2Bwv@UMfDasyM!!ii0)* zE-!{TGgTj#=?#vg!)sZ6JB+){pqoq`W#NQK`o|CK>uuk*^F0FF!lwENa9MpztIoan zCE+36uVpP|b9tiqONenA2z+^;jJ=5bK3MfYRN=R=^^O*~cfG-LTwdI7%RG{EEONBl z?=l3fW-=plNMJe*f3N&4$<3uk*c*<9$4_>VALbAcQBK@Kyqn(a$2e7GXVG7i8y_%U zLj^xdi8oWO`T&m&f) zOB0~?ApckwSql)k3g^idNA=)??*pexb0I|ut7VCYa|OcgI=eBG=54A|``@$3GGla` z%h3mYB)}yAC=BSsLKQZnq6HXO@L@tQE6X%{VeMj_*nC#cgr{=_rmN_;V ziP^s_hTyLDiS5HiqfM>@JJmZGWc*H1wE^vjytOlaffVXf#2Vv7>pnmRb53kI^ne(c zzA1oW8zz(4)=4+?284f^L+$wf##lb$MRFfb*V5Y}lXc>?IRV7+Nj4L3)&Xnd;*sj* z%g+FW`;o(z(&N!^z4u@qGP{2*s%rpd%ot?xeDnt(I*s*i9flQqU>f*SQmKOzt-8EL zQ$O(m2-v3?7JpL+NZ%sR5_dd>5hK7$UBcfy`dNOI5$1#V1Z2Cb(c>lw;z6%xt*mVVa{Gb-j_zr9ma9 z_b+px(BGpV(&%IVRQ%(I#@-B9Vg%?M=r#FWcWCmT`1DT*MEvUoZ|z&4GZw6h(1Lg7 z(80mLW1Guy!vDv&5LHG<20HeN4F$>vU3!GQm7HLn&j5Ubb4%@J0D3kkpGP@|m>n(G zBBFovSNam@@2Ams5eXx#=JV7!wGPu}#Zjk%`lIAO7D!XFi!vI4gizcBw@ z)$&iEPYM{=_06rZ1{lqXScsx92O*7Rr;_MQe4{k|anEal{%eZ(s4kxWOZ7r9$^zoq zY_h6;F68z{wwdze`WmLkn9plETWUrt95k90e~G4XfgUrD{hU$V3KIef`EvUu|K2r! zM`3H80>VO+3n8_7SF6zIt8o1a-ELAEgldLNge~z)Ak|w@Dkqj`KhtFL$nE$*n4KZol z9p>Df5HpU#H7|)_1!2K5Vf-o8O2o3-#s74(4S-7%Ib}@LktJz>rGqY$`x_1MR}4iO z*$(kpVo8%sbU?m8W$?C<0RwOK@jntq%<%qys$8Uufu%h0q<{D6SH#`tGzeVxeT-SU(9hZu%g5<=!|KAnV5P1&&D?+$|x$8-oc9y;MXrGJ`$Mcz}@83C?SmhV3?4M{=`z#Q!Us+S8?Jj+$94R0PGopX{4 z>6Juoeq;)0s`kWdF-brd^@b;dae*GJcctaOlU4)<7e-u_(IIVEFJN;|&q`$L0CNzm zkKcQiCFwptzot!HYG~+jsWV5(dXSdSRBL)-*EiZarrsl11j};JhD`~Z#vXS+wrBg+ zX_qW^y8EMXsmQ_1W~!q}Fv$lxjVm_ZecoGt5ZT&!*cYQZLVmiU*IK*x*w?a7M=YRfRSvyuU?56~-lLEWr&cP$HZA!_I) z==f@g1zN;EKr_M|1KOnhP#xo0VGg&Ub_mBq%eBZMoibO;Q)A13f$PSjp1n{AYeQ*l zIk7r#j`l|0kaH1)J4vD788q`UX^!n`Auj4-$qN$y%&!GCkkwTSCfCE*=%_U>7NAr- zOM3hJ(UVFs*e0iL9b$^XgoeLRYLUK#BF*hMyG0asaPdO>9|?*+7I! z`^^gSjuA2Wk@<})S^a<3O4A#bmxyx@61UeBN9~@bv@5H48a2k?2w@3|!DKf&9I)r; z7^hsV7EWFF-jWxEwzE4?XNi^veEd>t{_##B3gP5Jr>ytG@cs>i~UD>VS*hg%$2_5Cubx{)A7E2yuj znPkXawIDkULb?koa+C7D>i)Xa`ga`(*9^i8u8$lyA^41tH^gpLDWrE#t{7m$fFTJd z-D(l5sp0<8!FoLv7V98GQ>zM`$XJgD8h|Ho zzSD8k+N>P#PaLLbQLqpdEDmh>K0CM(wX=|TN`GbaE8FWxKdc}cht+Y&z0=7-D4=9W zBdM8rx6iJ!lv^tew?@RqOG>!S`7~|dtbHe-6Lbsgsl9hRd0}Z!R_sGI)DOPce>l6l zDUupy2lM-qG+fTL^Bb)fhyY3*+$b|Z6r$Lp)}qh=4VVgxnv`oDFxRoFF046+<$<43 z^E%Z?TILKA8`q33@}_Wn7y_ee|>_p~;rzQ*fuEuK~FoYgEI@V4hrAZ#MVOk1lBjB~YI4SdO1M=d_bSV%#vVM1nu z#$15)X?xZpXg&Jf&P@M2Y1gQuR$2?0TeHmr{^rLLcaVJ@<--o8x_AE=Nnhg;W)lx< zot-%5qqou)#Ojt(6g`9%+?j7_i9YtfHX85H=bi}C*>)Fa!s9SXEL_F@%vi zPnr6kn9UvHEmDeg+_fl2Cb_Ny4%LLRtxb$cl0%*Eo(XDL7oq!&5&`NOpb%)bDw>=w zTsV3={jWpx6B&4IGv1T=)Th8b*oI)Jw4tNSd#hDok^ii-TDAuMRha2Nvo09L4N;zJ z6i>6K4kR$iDMAz(2Vx_n=|gw5=$RH*jxVnfwcbJIPu2f>2#EgvQ5}pG!k7dlNqd!l zU%lXKwd)r*2%)nH8{#`$|2^_Qz7q`aVXVH>6^XBpFr;=lA;TLu+THQUkecKK)4tB}4Faeb=L{Zy!n zF(Wa`!X_T*60~}=|4-v|3E}kND8b*iAUs9V9%9NWJk=rDsOGGtUbR;|SmHV}VqnLi z1s;eM)nujfji|OppKx1wZ~x-9(qJ24KlZY{M{s@oYo*c{0?o3F5$`+2LNdkT4-AnP zQ~r8@XsU#4UHl(6N&}7;I2KQ8)C&;GkwoW76%9h?I;752br5C<-HF$}(L31(EvPh7 zd)=eL-b#-0QFd)xWTSBJyw4yq*Mobvk#atuE0vbmFlqajRf{m%f9O|R1tRSK9M=L} zRD^T4fn3RTIBC39WN!AwVxTf5V1L@W>dIZLUHi(z(d~=mVtd zq6CEl$m}#HR<9#P?P4jsiBhTFl+Bg(|Nm2Y(JQN`$Ocx`Rb1zuRp2zy8YsRPtViX= zEbZ>{4mrS`@g-*+z*5l}6dUCe@CnT+I9(-1iJL4_nqZRXKw`Ay0md*Br4KiV=uL1C zBKn}tZu=C3n5+-I;+`RA1G8O#H+?7M=#cyi4)iEjMieSi4vI7=BYoPBPxSI-r z?#|@~KEo0#Jo(%Yp*qA6v;{x|BqLdoqcx1U4Oi-=^Uc)(_J?P8Iv=b84KQUvpfB5l zQEfgduv+8f1cwbkYgsV8v@#F;eyx46po#{rmP&$>CJD|F+s1|_KHzHjD~|F4n74{q zM1~tofTp}4)AiMU1*}j`@IX1D(wTc)@9X=HuJbmlNW_2dB9@_}Ot8x`@bk|eBt|c^& z4b&sLt-msA<&r1SSEXnXRD(C+JDvm%A-_vJq&uF3I5WV1m&1l3LU*g(>DdN=liii} z*YX74g)$q`T#cF=d~ih0~{gG zx|HAgIoAcTkuA(l9y0(R%*15)Jyw4OO8yND{6|;;uoM6R69nzR5pDFzAJLHq83?5q zC)H+yhM>6ki3+^U2VYV25AF(7RX_kT5ji97F@%U)5UKJDd?nvMZV6LCs4%6Rb}Z!f z3Yp^~uSEeyS%j7ANhvU{&N|afg%Lcr;n7E_4$*|A%>2KCd_ZW^f=T5Qo!%!mRo2yd za;C-V$u>zMDQ{ILgj6zI^QZpYA4vdFtU3U5x1G?|GVd+a-CcUILETDL7@RP2zHO8d zP2I}q1>Ey}adzD8&)CXeq6<@_*+d~P3l?$Ys2Ow^zp9=O|7l(JK04CeA^)yXGThaF zy=g6=u>o?r*PA2TLF+aJtd3@Kk$Kg>W8R3i%`7aAHRsUJm7L)T}lJfrtKmQ5tyRpIvhM^*gOfo`)-N-^M*-kwhl2rrC!9 zfmn+jLPq1Ik~k>HsBuplYS3}3W>-6$5ya`3Sc2Bs4kI=7d^`o(K2-L?ZrR;4-%GA) zrY_qBJ6hg|UF;T8XZZldV^#IFx;@VB3)&7Eb{4-feAofqe5_obHJK?GD3sPw#0zUn z8o9CZ;y_JTd0~~)EdMnH2*}fI(dzt9A5A8WCa$14fy%kKmno82&)i9RjiXO*LSqbH#p73-cpG&YAX zZZ2xwySsmw6y!K*-1Nz>ZDuW)M5P?4av+xPPGwz-c}BrS`sq^Qlj-IMnZ$?Bfo9Eb z#b!c1C*zx?v}L+Vv!Yji@@GT&EbdG$Y&WY0{I%`!d5c*7iWDCTg=FH{LQybb?MdDi zOp&Sf)udPTWvKM?!kFBw$dS6p;6*Jr0^6Zj%iD9mFB76-z`ErX64D}p=VjdzKt7gF z#11>k`<0y`*x^cJL8N`-caWWrL$i&xMQ1jr?ae{Qvx=Q+H>7*jHIrKzP7yv=sXW6* zb&Z$LKV1aOVZVB;G%7IXe@GWslbR|uDjy5osP-9YZVnncD_RWLm=1FHn?fx$7HgB5 zYanUy`|eF0Eor$BJGLd+OKY4<0y+b6CwO-OA_9v9zENN%b)d zus+L<=BT+~&scU67P+Y4CDESmzjnP8&l1^7uAi!nfL$%TZfUr<8r^U1uHYzXutEEW zr`ax~*Ks2%I@O#=uV`26@&q_PC9!0kUq;(uBn8uiIS^RGDxWH-3>L%}Qp2#zdh(Jm zEKKh0NW}!T*d5ei)cetB8aI&#BpT<7Ci6tsM0g2dq4)Bzj5MX;g4|ySMrgJX@{!SN zn?mlI#R3Xr^13Ss2aNRnvM=o9sh5lBL7fD7NS~UB_6xG}(27Rio%DBo;akGhr7zY1ekJe5@41QF5ews`mJRv^gztd&n;8&=26jnoUi zA^-_aH`ZUn3YILn)=;o|SlsaOcNqC7DVPhD+*prWu5mDsr-9JXQvXR!Ue|_!K&g57 zfM<;Z#Ue>9_2rdXgIJW5wc>^7N31EX2mDJ)OHIstXPl4+A8XDNB_1~$f1W?JsayQ+ zRD{~R6fxDnNF=81EzB{INi}VSyBTZozFft!U+b~<{*XhrvLI92n$?M^m0xIe0KgkY z>E2?Xme=+S^meNACH3I57aBy^S_c98LA(jdNj9uJpDj4A0^frR-0o%rqzYL@i>dJU zdW9Bog=UKDRExldW}1TPS>{$kURLh&3q=E7kQ@Hds8F0WqZH|FzG1v0LaHy z1Nm4WRg~zQyN!!!iAW+IY?oT%rIPq4vSm`ehgNF(e0JjtPkSbMQx;d&srswRwG_9q z2Hk_mkF>8^;I$SYR*hdHT4aN}q-j@)i&biSSq_@8<>56GM&AB?^rUJnK(#u?c7{;2 z0OMRbOK)M*!z@{w zcRZueZf6zTS}(b!?Hm>=%~+Nyu~hp~{bZ`)k?qSTeY;0tfWhP+#c;!H3uxt5oDOJ} za!mxe`=yH@F}#MyN^+JXQWK_X#hw&l+K5{VjBx3q5nfJ#AGz)qyMuLndNwpQcU~eB zUa6NC;qRk(E<<&%A$BqE2LkBr=_Q5YENp;tK}zQyf?~YMu!#J$NLFixqCEntkH%GV zE{$F`D-!D_9V}`=1x86)nnV{#N?|XX8?}Us>v-Y{I+s~=YD9{TYiVPo4`|hqz(GibP=Mfkohu=ZG&`6 zD&yjcBd#WF4%j{8k|s0x-L#vF_V(X+w5Mef7x(&gJ)AN)iT3quos$d{f?blUTg|x+OR>56)d{!k!PBbnsbRT=| zj{vr=bpL3^02V!juOWEik%{83{&mS$jeA3=P z0U4NNBccCNe2roujA*)8k5H7O_rbbYs`}IVCY^)#i-2q~v3%8j#t+3!ZH9LUhO?T! zZ2Bu8=s+IS9isD2+5oVVK83}T0GYs_7)WImN+RaI-_q=~BR;LrjF|y;=?ri~lVUH{ zQ7q6-aV+LV78OK0`SwrJ|BK1|+li-$iKtZ!BPTc{L+Zfb-yAu;he1b*eHn{4{Ab?% zkndk|w?M(fhJ@cKtnbVwAT=P5`<3fIa<|!Y;Sr7hf<(b6N1@Uh8W>4QRscoX09Mcz z3g#zSz|Lp=;f;fN9vf_mLY`yxQRGic9C7`Q58=Y76x%Xm&LWKBxj+1bzwT{DI22BO z@zaUHKt@cec0 z$Kwckzf6q(PZJ@CCW5YQB@mv&|41q$63ijuh&&T+s4|IiFxme~6#wqwe~;S&FLI&# zU*CTx?F4i@5dzCUMMTqaH@+50-PpArc49ST_e%%@`9Lb z@JapUKmMKI4uJtpuoh=_2g)wFk*vooNnOHQQZOIXjP^ax9p6*#%f`-EDe-H(oyA$x zmSPe47W1c&+z@n>nYgr+G)PXa1E(T1hO>i`Mbe2&*e-(ro1bs1kH8-y4@OY3W|AR1 z$W$2%>hA7CB_sx#TcPW_x;t!|do*!x;hM~Iyx9PMZB{Pa>4l%>K@Wf2^wWFF4DvSf z&rj0Ef~d%h{75hu{P;R7kwd07*CcMNmZ+XU)_!_aOz!2T%UJ9$4^XjDK%u->&UIbU zA+ae%!IZeI<&-lm+@hMncuSj&v+l$`xjCo$mU4u4J*)P_6n(CMn<32kRd`9Gp z0Fv2Pwt$cMOb#0=#PcgsO}qv1w0vO@~zaEr%Ga3HY9#Nb!)U@aOPYd%RO_ z{YXofN5e`dOPJ6?gHf?~($-P*r6oPD*w}tgRC`k^>ll8_&|hL~Uv+9|ubXpIb5<#+ zrK9~ZKc6xwsqH>xJ&~O(PRncqeww{+}xXmB`lU`i*sF`0mEzsO~y218O>hW3A*+!*JWw=prU8?=e-N+Z_)3lQ}si6pzXCoa>GGQzI8v zX<{e0evA9!>e_%kunm7p;<0WJTs~I$*~h0Z<)2P~VAGWJF=>E0<{J~-d|4#D?qKkG z58rlP3^m2ge{3mkG{8=h${*@;y{&D;Uykcr?^*H1uB;e3VI*3R z#rwhY0so%&PDxR<^Kzh(=aiD@-M;_QkJ-1s26b18^U=%~nyP1;Ezo<_N#l1)S0XYQ z-YFXBF%RVoxmK1O{d zd43O_{9&%OJPy3|iW9!S7*V3hv`&4y8q;*1hvmA2x@iHK-rHI%5_NQ{D5)yT$B+gt~C&*z*$A8EPK18J3sZOI#3Lvn7cH&@}W8P^Kq zwboXo&xxhje5eW^%7Xr&mH;EzLizd|vX5=PjD)#@80zz} zEB3x#p_9YZO|#;&Du}$>;FOu-Ae6w%JwuHpod}AKL#x&swfp3|4_7+fN4l}N*t@z3 zI>dVoT|#ZzuMK)r z6|~Fwc)X0@?B;xVY}_DTeaRaO)Mgrje}lI6)*^g0Qj+rg^15o31Z%%fLaG^EE}Rma z#%Hqv{kqsy4onK%m1RR4 z6zbdKrEagElo#J0Ya!3?d)Pf&Eyr!v`3gJk6zApBWHd(`#FTY!cpOl;=p&)2Vt5CS!j(DFO>eofY9vR{S@fun`844G&WY|dn5gQI zu2*vc{aE$q<_5#>&zH{k?(vMD9mh@a2ca>Z?LDk>6{0#%sHH2A;=Eh%Q1MWR>-BP3 zj-NJ1M_bF!5hGf6`MgM5HMwucRFUhtN9nK$xA&K5TwO??Ha0xmqOULZ1PcFiB!ySk zG+n}K4I%->NRLpAsUtpoBNUlmOggmUdJ7r(8;mW9EVnmV-3FPB zQ)l(wV?N9#tI`BG3k`yhg1YvrfW!vsr)97C z^TG>ptL|i~_CS?lIS~~oN07raif-+UvfS&Q^VD3HKV#t^2$f5u*9qOR*=!BYoW71e z)R#G?BEEGISaNXJna_+9S$ja9gZI_ z+_(N}yw}B{#zIX#=N69)7BS7L>ICVG=2EJvauiFAh4v;B`yWf)5~dh|@HvGy*&P<@ z$gqedB1~_OXcu_ybcSvY=d#Wo&&`K7rf_u)R<*`8yar1HBh?t`ebNk z9B&lXRO&j29Ynj`wj4XEjqEnG+-(}UOP1~QJn@(#*AIi~5I`TS6Z!pBcO3aF*Kygm zypsCOHhs*xpY(C%>Fiq`;XpmtZbE^o)_9cnH1BXi&^Trfzw(OL)Kd}(p{X9g zG+ovgzGc~rmA3?uQF#I!R-WvVt{2SM_KOi#i#AgynKF~~t@q??RKE3%kVZyd2Iy6L z9uvLh~BQ*fv_!1iM$|geR5`ju*K(pONt=k@~?{ zn*7}a<{N&jwJ$p;8TZimpB!uQ#38E^oEp^#vW%r_F0W=1EG)&{KRw8I3ZlHkt@tK^ zb;|{6t*t#aN=4tlBU+lTCOq&w=}jDMjkT9@6RB*5yM0KhH{Tii=Di^m^fnslzRUim z^Opaj;6SD}U)%~{*YOx*xo1+Jb!185NLh`rQrx}^29j<#&wq1aM@L9Q+C9BjD?r#) zww?Rmn9Ox#=~N9Dsp?L=HsrqF{;2RH7~LZePneDNLL2Gz(L|&54sfXn923QS#1;~Z z!9T**0I)Iw&~&FDMpm@7_q*ynKli6NDj>_=04-J$+tMT9DVc|UraIr z&PTryi5E5spXRud-};Uu6gw=&_wAd6&4?`*;C%IInVfp_`B%sbGW$jRnPNN? zg49CX4LUiu{Q$~>%N`M_(3bM`-Q79S!nwL>@3^LVXsvj!KG9^oLGOiqB)Mj!>?;K1 z;IAJG-B`E;7iXuv99QSuebYW_9qe8o5-`|UUgYz(54&F(iCQKv@f$Rz|HIdNKvVty zf8c$jp-}eT*R`^8NwzZX#U+#xl97FrWUo+UTr=TXH>+&IwJGCD60YqUagFSeJ^$}p zpZWd$|NnEG+dbWT->>z2J)e)~=EE(U{Pejtu1GeYc9Y((_Z31Y<5OpszDw_d zeTu3WtG*z5Ex#=sPVuB7Ve##4F~2#^ev$jpY!mKwEhlc3p3ge8m+kB>2p&A#>bG*~ zs8Mej->3-aTJrqSVK$6Ezg5f>tmEq|7gD*}zR2fTR*0dbNNd;KYVM)Ie#c!_3oiJh zT+SM|AbSpVH86MT%!JYI`Oz<5o_w7V*c;tl#RgqCy`a9m@>0j#gKo}mlZJ5&Kx~s^ zLD8pOiVt0_*m5J~nVXKQ@EfhWr}|#>h8ShE z%gK`4U2U#nxkCzt59(Rf)BVV>b@NWx@6O|+ZJs;hg!Q*0>Th>85?!`b=dG+s96A~e z1EL>M#BaPEv3k;TEVXRBOa2BSdwxDm@zYN)^1xnFve*29Gv`p$=Q>MaoEbziu^(#M z6-oEDeDYrSFsnh z$nL3;8;4V0Bi=RpjXWm*0|%^x=&a;Tc0X_CL|li&!8a_0(ZSd9y&si7*XK;|Pj*H9 zBchLI>5|0vN$*Nly{#{#DoQ{MPmBg$VD}^Mo^az(xNa@yUSb|m(72%*DSLVioyq!s zu}xUJP3j5bl|KyvAT=}-K4bsv1ZvMB^=7?KWx%nF+(|p-*TyZCt?s-@8z;Y$D@J(7 z^WTyc>V14-d3xjmh1muepY%T@=kQ^T;z&7ke}_egJ{)<&oGR|4^<%IQix4VvT6*|Z z2663R^A0NYLuZO6(d&%+rkEv44On=-hM6{Pd0jj0)AL<)Rtz1CdI~YPo4Nc-@L5G= zmX4Q@pvmGC>%^hI;{|uQCdw%q8A4N)MtmR&&qkccm#D5SmYr<0c|JOQJAZeFU7W(zCc0fIq15F} zfd2ukUUHf|Rl;R`>cW=Pjm*cB?8{>x{$Rmi9<~;iyDYAcMNt+{Zpyv6HW_~QUY5($ z*a+h=jZYPSKgkxmB-?x!W2k?^QE}@hWs(|V8pLJ!2~83KVn2q|R}GF6&C#cX$tNrD z8xNN|;-5cg=p8J$gkUS;7j;y_UvL{Pv!pOMUA3>@`%%t#;}NyU2@c69?sJ{_45ZTV zt%n!y!94@LbQr9mkK#{qgI)oa==+HGWNZ!em03{?$AV<`D8@#lM74HEfMVy)NXhTh zN=2sx-z3mEK4JE-IR27YTIPLTM8?eyG?~i4Q&Cy@cKaj!(MFz!*iW%Qn{!bLYfh0e znbdT2bYmxJ>CM@EOvL1vtgtLRP}u@lhv^kzpm5&FnjedE@g9#z-H~Nv%5^$6zk|2S z!QM_r``iX4-c-&_2jGxh_VDD4`b+x7HLQN^e?%$i-wWIPc0;;s^&gYf zM;$bkv*Ipj@Vn>NbU(TC1qRL1Qj2AX?WcuflH|6jH<)hUGR&xWy9yL;wJaHt4#>Qf zy5LgARA-u!G^->H*0Mim-U>I%V6k4^`{TW!`h`*5)xt#krI%4r z8m|rCye+IJH@y`f{`4KqpA;4&ND}o5Xt)#wKo#J&esMWk9+7^aXTMlwG3#1TYP(17 zYlpjfSD+Ocm5cB^S%5RT%q25AX7vIW?2TfWn|em*&vyGN*~+*6cn7(vqi#FKXVf-n zddQ*lai;p9xufJCl^c)htEbE!{%}bWCs;?$C`0n{b!Fn&h_>Z;A#V*5HRA1Q>+Quw zeV{}))KDE_oIXV%ou`g#uk-|bJkuY^j$E|3-Q%;at8|YkRn#czVqeXj+?M^Or_vm5 zerkasxBrd-{r-exRglJ3=#I&;P5ssw%X{g4?$n!7M&$PRN@gA5fD7sw?lRhp{g)FG z67mQ5qAvE|ucFjBwP%QuUvgqCk*&z>oWhtH)p$ytPYs{~Lz&?}*$d4M_?%W{>B?;* zRVN#k)|*)(@lme(=zLhDUJhlFJbwW(KMG=u_kb8^lJ zuQ@kw&R1CuGtEEL=+;Q{Gumja{;6Ce zz~E)t{eJ2zWnaL2Pv#r4`d%?2{m7bQ8DGuX-LRu@ppzPsm-VIe5kh#U@)_Gx(+84Q zX~1j|4}69Q1C;^TbOnOA50;jE4gbn)$aJn1urv>DN62oBWjQ~b@hTU~-2K$zmb1p41|WTt-m$UBHwOsMNBek2=_S_G>tnh~ zsW$|L)ld6!(E&aZ_wS>6)<0bsuCirtAGr5$MnFQ`&*_|$TqEsDxnd+t*(7^($6}kq zfbjWBTJT2H+O}+&y{-Ic>N)APwbtS{N@a|a#~qoEWBm%~V@iAiNDXnSXMbswL3`W$Vp zTpt#Fbz|cp5%4o~eWZ{bwU9P5(4*~_-JY83`$c}lcBSWHG)0o%h=6=a*5k1n%B96n z!c2OVoTOEsL`0eE^vk51g;fU+$Ah`=2+0`YAgirQoi{RfD_q4~t$E%k9+5=JSb?Kf z2O1D{DL%%Bhrdv7)b{n$8RjzAZC6hV zACCU5(cp3Q)E5%A9t|3G{>KE*xsO_=Qf}yk&d@N3@S5fErrSp{K8v1owjX}YFvi9D zb+peto%wz5v`N?d>#GH#Rzsid87EKJ^RcWECknmUS%kCw3OjuL8E$0SWJVVHOpvQupmxey^_*ANDV?9CJ2M%E{z_QHsq&;2Uc-OF@RuANWH!cFXEeR($8;0H*2+%c1Z# _R0;5Iu+=E$m@2x#k5%NRpS0kC+$(qv9o5)Fjdu|2i)psTuuxP+|SfadSCFv>a?!& z2=X|WyQ`vtr!@`DPm0Dvojn$*U4wuJJEfeJHOIONVbEOfSa&{sUa+-1_}rKlN_Js8 zG2UxJi$s-}kQEDlW062i_T$=jS7EfJgV+2Ng_#Assq%2Pe@e^Zu}yB+^Lh|%QSqk) zy(;m?+7iaBx0MQP>e5VSm+JVQ;2&;DI` z3@Y%4Vd)c98pHk{z7f{OBV3jthslQP{LhSvPl3}pDk&=JDwoV(GXD@{FfW~P*v6sm z`Ba73qmvG(hhUp{Y)f>w7Fvh<$0-qO?_Rs|59a5W`(rJf-tfhSH?NuKGt$*?#ewh7aZ-2=civ${Myyiw1(eQ-nRQ_ z0B#DD-Zup+QD#8Ghl3OTrocZj6Iz8VTN_=oQ@a$Iw>QwR3r2z8tz{oVA!nFHje(zN zNNtl7%Q8;*Q#Jk-3-E7`3G`yN9$GvM1iQ@dG8)}y5Zlk(0*wI%C7r@S{+ZaH{?tIF zTvFyx^|)sBR1BdaAynoe0~0X_gFu#j_z&Lx#jJRBIQvMDLP6E|%z7c`dXt=HgPCf& z?-d*2g32Tj3lb$1hANu|Z}3e4hxAqY2}gSo6u_v%cj(7@=nPF=UR}A&AR_mb?;X5n z9`mjJQG35LZYQgCX^iHAEWYvQ_yfzel5);dTr-SD6W6GrFeBS^ax&%%?owv4Rq*8P zRUehEtAF6YMM!RFK90$-zOOP5Apbkj4K>D3Y$~qGr{g!DwQpVzfTCK!>LaKr=8-3l8ck^ND0}2TvQ2;2c5y} zHowW}%kn#<5%rKtb8a{P3&N&^#^i|)Zbp-J11gp6nX?pk3@Tx;{E%TS2g7S~Ct{>7 z$4Z!Rurqm!g) zA#P9TaWd)K``#71LTYT{Y9UE|K_Y|4v1ENP_%K`g6#eOO0{;$tfl{ghE7kfIiAOFECgL7ZsZ6^m}9Z)70I zf43L>>!3bPk?H}3BfD*4RcM{7af^)aiu%=RA1`(vr`q;BxdH?R{u^;0>22Bv%|#u-~PKW8$>#=DP zG+dind9StW{-oM6;W0EvtR)U7TVD1C&&^kH`uq;FAVy+u^ap`HLWde2@fMZ3j5>^# z-i0XvapTAkJ#YNXb*4CQ-6#wL2^`wu8CgHfEKAl*sRj>QSUz8|9(T{AgM519^kR0* zQPfGrPPLMMKlUh*R4^~fY2||W8;6^T;*R;9{MX<#2>XOLGfmIrFLBtj!n_iS9T&lc zbCtV}(-(bq?Aj~3ergixu+I4Uce_=B^1m7^E(4I6(2@3gYG^8R2;zgu{Vh47C1fVv z{m3sF{Q4w)43;=&zL@5dvlGW=|0n`P3X;@yuYqoiXgz7Rj0H>SrAoz*Wb-XBi)Z$n z%*l+r-h6A})S~oLrDuz&5*d;RdJNsr5O?s6Nxy+|K`=+?ed9e1#s>8JLj7*KOO~P1 z%~3`T*Ji{22^z(&4(m@^k{ z0kH4ofY+h~6q#YtdyCq+=$6+v7kp`8kXUdkjuf2O5i869zoy56XdJ7CNHVl?zUL4K zWggV?3q{=PZ57!l?@Go`u+(+Y*P-P++siWSlNgx{wY4NmylO}1K6Z=pE95;MTN1g^ zm;d(tO`P0~N&?hdO>-O6=Fn+QlLB7*v#QBe#lTEjJJXHUwns93SRZg?9~Lw!?H*Jd zx=pBBab6mYRLrR`3I{gTT6PH~x}QsyI~Re;MP{JqE(i3(5F$e6S~MmLa&&MxW^G)y z_~$0{;+A$b&;!ceH^xDu_Hq6N3iZ4>{$VWCNY|Xj4)W-&AyqA)2|+@;_|Zb-%GmW@xSGLt0t!#3A}!)mznG}v8m}u zx9ji>_j0F)Nc^k!esk9aB+205l$utCxp$EL@{M-vnK)JJDH`(qmEOSnkAKXm?6(ho;4ng40!JQPYJZof&#yMrdH=(1H-NLKlS zCSWM!v=$Nz*=Cb^>SV6#ly6M2RLUH`2&M61C2+k8P0W}hXBH^IdBzxd9(UxFpnW90 z$bB%RvmM8=Ubmldg<2lcn(fDdE6E+48JcpVfl*7yzs;571z{(uf5JdoRTH* z)!d{H9Yz{&fHlU!<i;1}~P8*U{gYyer`r;lbg03%Z9+q$OQa+)*F^z_@xKMxIWqj4= z@ymPu{|B&s$1d^f5g`ktjJ%+NND4*1691`S15A4wQ0j8`o_=|yK|~zXS~9o)RN#KA zaX>DRAn_4`Y2>+g0p2Pw@KxgRKUnM6@mc~VwOpg?9nu=aUW;+sioyR0p8_61LVN^g z7qxp#o%f<2&{v|Ua{ob zy3p%rlt04D8y`9{v?V-X!YY-mu<0V7;WAS$Y7&UW3~t7$#Ry>=` zy)y5gXCCiqxn!I4W8`J#RZTyR;_6&u+4lt0y(G;lDcOSnkGCXhWd3 z%f7#PNltIo$p~dMyhX*Q1NWoP9|VDwyOVsQ$4g~CY)@twrqo`SHy^jX`+B}~p~m9C zFDA&`gV+QZI6Wnz-pqUJx8972XH-Rtld+w2q?*&dI$X;oi^$91YzlUQ`iH=u6Bch% zU(1~NC?q(85<*@?Z|H{ifwYoWBlOX|{UNzXg#5_UKJC{nDv*^Lg;8c4rmvOxt|QKG z^rS&6jF@DScv%yoTk5;uh>O9N;2pH%ZJxePW zLX%VoNAXgkeC@)`^9>bE;^FqQQQ%#dejPn2$hDje8&s=ac!kk8|d;w8r?=77C?B&03Mb&)fbT3MKC% z0Q!D5+cL;v-(0Y-SF&$eLd9E8qh@bels5BXTWF+5>pHIjN+H`QMA1kW+YL*pubTz%))VNg6o5I&nG*Dl(JcQ zp>T~s7aSYcPzrmO8>N*RU+4 zy4W`}p>SV->F&y=$P*>CQXDBz?@pRCj+Sh?qNwbVLsrd=j!dx;?E>?c4`VS3K&q=S z&&~u4#EVeaUtZ?!@&1PYd&(<$pIMj-+Ui%(Z8#Wvb!QZn9EahwiHR0Z_S zkMN&PZ^V(nU1s!t=1hXn!{O8@Sg5tWY)1!hDfbtAi@hRZY^bv>sP0nccBA3qjwsqrn`KU@=klJP&=+6Gjx27v9Q}>fTh%^A%0JJ*a z#$kCkGR3%>5e(b+3MNjpOv0vr@GP37jx`?pYY0)+E8w+yw8~I|*CNeX6-G;=@#-EQ z>^>AweTI+sZyMNCLWe$b;TYT02(%X64-Bn)= zMS<*Q1P%852E!TdbF~S5tv+2Dx5>63%v(6N4;oT__{)ka&_r5MV7|FT=hJy1(2@oc zE}ZV$f9CMFwB`)dzZ%r}5XE zF(5IJXiE8CfN-8fRiLMu8=1n{SHpi&Zl;xq6dHrtmhPF?2yd?mqe~O`9w-L;#u_wM zAI~_nKckPjL7A?spVUqQB+Nds{ZEt;aRaV01oo3bT+XS1D#0# z|JL{aCI%=cv2MoZ3-+T~Ha8+s1)8qs8i_kY@;=-g4c z{Q1pouBY=W`b*BtFNVdqU@W1JWJbo6p4S^Q0}uV(nVu=D3Fs6KM4WVT3kF&qZ8Fp9 zCn@Pil51_pI2P7Sn7@Mg7n5if@2az689LtPCP2Rr9 zc+zlUt;FdLULFApVAH~R_9tf7Pads52>gT`L|D~|F0&7Xz`m~UP92%aZjeQ^;GOSq zC=aD|J7Lbv2=>?=?HZ=;vNtuI$az|otq2uzgqig;=$$l_*{yjv@?L9FMpSG+%5USO z68UONacH_aG`t&qJH_@nf^8q+;}wczaxS{CZ<`N;7lj~s^nFqDfr{)YGKuL(|E94b z|6+4yWzNrvqL=%APRc&co^SFxGm?bL3;q|;3K`NAeNj*`Qozvm*_Ic5zOD8hd zk-ksbAaD1d7VJ}t!m)63?@E%$ncMx+759*fHYKECj-jDIisD}AQ&U&$;s=e5nrQ7PalQSz{ZgpZk&9En<1Kb z<<3Ue$gU;oHreB0jW&7-5lUQS5HP@ld6O*Nnmm0<@Ttm#<7pAN-qAJCX>hS-JXzn2 z;83Ghyw1?$J1fw5!LWvB0sZ$WQOkg*Rk>vQO)K*XNXChpuZj3Da`nMYdrJ!7*vxxc%~0$3 z9V)OO)HG|0*QHl$=V@2+vnH?zG9$OPx8IVMgFtVWsimEhKs#!y^g67-+T=^YGkK@N znd?!_=`9#H8(AA(8|EqKQWi#3;5-}wCA7a5g-H$myekm>{_%cd#VSg{Ec%$V|)%d6C0|~Aeurq3Dl&k?S0{z&Fbw(+vq#4;Q z+k>T;Pb+WsVKXb=CD+@l#9g}#LG5X|6(*w{T<18>GUIU|!&(vK6n~|V{8LG(U?V$E zJN%1TeMg=z<%-&P%(0_`@-($AQf)&$U-$u0wgiHJy@AC6S@}xo0LgXG{2;B11=nKC zkvh7gcB{SFw+<|e7x?liL_Jni#2w6WQq^MS*|k4)ww&;IE!yKs z=10^F{pPe84Swo1=C09ASMX)bkTB#I+0W)I0g#Q+!76O-!p(<5Auzw2L%i&{zAyaP zx0$jVbT)5lOyn@fZ?e9Y(3iuxLNq2IO|ruw#O=C7%;(@*D0ilQMNEWCQlcM@lqI`} zdhgH}bJ!$Zx2saNlqrT7xQHtC_Ne zWNgi8tm9$fb@>mHm9#s)8;Zfr-xM!xe&X;kI-=%F@s>!Fr85ZCo2WcK3^*m7HINDY zymK=@PdATVOA=^r0Z4xI9U{XCmpkMQWF*ogl?_$0#%6?l943PQ9QjMqyQI?Tcaw&p zF!Y^mP*^X zI8Iq$IBPz`t=FWHz`IiEpo^f5m&0b1-2r5ex?+`lN#hs`HoVj|jd^0ay{Fe+6yCdV z4EUR%vVcZt-+lF%=MQ4+$t9@M-`!z;IY|HkC_q%v+dAGlg3tgJt7!s-D}N!Ie_lD$ zNcH%7Ont`P)byHacPCT?Wc>KXL#3XB{Kza*-&9xn4zJz;q@5AfpMc@7M}uMzzdQn# z%5j-5rUieEduewC=`zyIz zqO2MHvVDS{(Ui(rf^Fhxh44who?E#6iP!!?H5fAM`)HSQ=R7*2JZ6y|EIPyCtT+6$ zSxS_sKn6()KS!Uaf}D-3j}NQpUm}Dy+vkRVwlh2nNENcq#KsBvB$_3$g+&jk2{=sx zW(dIM-S9t9jgy%EfCP4N1wGs{Z)$m1H)ID(A9w!+)vw6!U_@?e= zx3kHnAzr~LA$G^~`wqv_CD@V=`6#2FKh_d93c-Aj;M z(*3IZVXZH&bZ0<;O4QPq1Y%y0@r-`DS}_h4y4CjSL5ulPwA9?S$}FY$9H*SVq3kBl zb_??lTxQY1z6u9Dd&%^QkVg7icv<;oyP?(wz2-H0WLA>nyPj^g9UWq@sxBGelO_NO?FD+{$Z$e5Kug-EsR zC#tlkf3z#Np*PeC0k4I%YewDHhSojs!&nx#GdZ&gz!m9u(ZHc>J|>w_(|MA{o>K%X zZYcH9^7H1|+{r3im{?jFS}T!?;$(S{(Q>eE%X{g9hh{=pD4c^?L>ZB}>EUGm^O0p% z9?V%WHx_Nd(XY0tX*IMIZ!OB7;eYa&rEjl157C4ao6s9~bVcZw-%lA$s;s%l;tcNP zfj$$P)yQ`Y7*nnpEbXmuX^);MXf>*3-#LmssyLRP>UL#RTu8RfPexA)Ow3nq9rm77 zNv#p@NT4-v3pUmhNY4Oky~iBLnL&aiq|C&F8~K3}!tQ3pQtsJC@oWbBRoa2z)31a@ zT@}&4Utegg`lsM@ubW#6HsJ$K|eSx)p zO0emE3ivweBn$hnrS0xJ3;%Xqynitcq?i8|y+LDe1LKr)BB^y`#Y34AhpfhCqE}pZ9?=w|7VGmVQ|U4~nlP%~)f5serATdJPc78Oi4njNEL0!B^QD}oH?iCUuL1977u0KD zk8AcL=E{N>ze{*<;7YkfpCp@9>4%QRB3f^;2u)HFb_qE zqG@sXEv@)GAZZh4t=#u+g;W)_o;1CyV+!#_fMuDRo+h)xxPx*70=l5f!A7HV{g?)9 zJ3pd%59%b)!G->usM+PIivCZr?aS%_f09Frr+)_oC?uL zgZggWmS|}t3}9E6(JvYl0ASF_4LT-A#dtM+KWzG(l1U+Zndb`zDb}lWz|HZ9`+G+J z@F+AwDXSxzP#|nhq?4xCq9uy{r^lJ8_Hn%1qAsz%kum~ZZro0?Cy;CK$|4IPcw8lG zuqVnv>qD~USEgOni+{xeSP;hCwdPTdrxMUb#pPt)eQvX%Jxh}mO!wWQD-Y^$?k0Wo z0tkxPgXOO~Rp-0`esbp$QS>UmDF;FAFsietxN94qB@K4{FF{;@PTOpN6>O*Hb|0t( zqFjm)g>MCc#Q|F21NKs*@0|^|gTx8)0nX3p^>j_wQ=fI{pD zG3nQ&oOm-pHlt%ulAvd1EUqFX@Ykj=f6bwv9Xgw;wU1NI=DBCvIwd`vJ(cGgDC-*j zk`UY)_Dc=<71<5=Gr#)ncfSZ5@wJ=_!f3bk8XI`EQUSs1(){$_)I{PXP7^1j8~fGh zt~NK;J2pkmTi!;=wNe@C`R(yZ=^m6>yju~qo3{FrgE(d8$kb;1DcoZRe#NZ7jKLYj zCDCa-d{tl`&laZHQ?6&pi);~7zLih5P`k3%BR84N3hLm=SE9M_uKC#AwwoxA9|EQe zq`bt0GD#jWgw0K$%>DCRXQey$^zp6bqpGcts|&tNB@_!0^$@Cys9|V4m%!r%e|Uzn zAJj#&OvAslfM4vRmc$Kekr|iQnE|Tr;;a7Kg~+2 zfoSOi$&sE`;kH@R=<5>*N3lyy($nR$YrFc>w#?-d{$?yLZ8W^LgH33!vqV`q6H8P+ znr#e0F|+{ZhQ)Sen6U(6kExe|D$9~>&!S;T>zKq7pdU}%s(%hmy`O3Gzm`1<~I zB@4aBm|wM)7R?*<2_!xR4U3&CFWqxmg4h8OoyvXIqVFkNo;tJ)bhn$Ap|V< zTh(NQ1Ydfo`19btHp+ zQ_Y;vj}d{ks}O^ICgP;CiKrFwD7Z03Nd>??+(AOI_=@;c>QA4!QRim9R)oZ+IQF<{c_(1wbNWiTFer&C}_c=Ucq?ne-e*OlxcfJBM zpmlX;GU*@&*st8xoDO*=Ptj}psU7kp^U6P8Bwj*d@z2V?pUEG_qCC`q&(t!BI6{DA zDOF2^s~Q~J1G;ineOIeiCNXU*IwQrp{~0bu4p>cxgv}LDj5P2rj7PiTtVtjkO1^QK z6Z{DTeZFyizCje4VIPTZHN4wH*Yn7{B6A}$ z>f6(H@tUV2->Cl!cz*#5*c;KJc%=tKMe_1ot4x_!guVz#7>KmykJ{;|E)7QHUOc1H zUxBZ`A^cwky3bdEO73us<41#w;;Jm*Lh0QXX*4v?N{Y;LB^**4YZ?Ubk{WCOo?{$e zjCx@1xw^q4rU27z5zO*qwG#V)-q6H|`dU`# z_s<>^ZFN7Qg%oeFwQs`;moA3jOHYf6_6Xru#P+lJEKGTyW5=u4)E!HC5>C`E##Xfw z_hK3P)8S6JAl3~kQv!y*BC9p*vlSsha-gwm^|x$o|8syb*Gasn?NIB3(~0XnOI;!B zhYuIqby{9#6->AH)pA6SH(V;Y;ibhPe@VTmoNg^!cl{!@72p6fXHd0?1@?d@pGp%H zs8-&_A0;K#=v@w!>ivINJ40YDF}1q`NbM$@eV;5v#qf=6E}zsxEIM&r?^niT?nNnE zsZTX)Vy&LNtdsnFxk<6O-h$jK%5d))AnPmYvMA%LgeFsuCyrD= zo#mrU4V}9GQ(r)g^3lZFuO zk4TQSVD*F(ZV|PN_kT#DvO|qGcYw-J-PMfV(0Kkhuz5IFRph@4V?sF(NjEurma)!j zror$Zp`D61&eF7<^)gu>Z0TI@!MdYuXcfFijQY`(Li9zS!r4~dGb%FO=wb_3kS{QJ z9*)wjK8h=29BQI7dD9pkY9M)rE_gkxTc_>E;PZQ;p$Hy_X4GM##RetXvcGI^n3qSa zzmMOx(>{tFGe8UID#!dP^&Y|kxep6AG3O%G3gfs1k}AqPht$qG``=N=wAbH@lyID(t3PKs-th0q~l*9*1yFg4$gUnq|3*1d3C_E zp@Y+4Zy&OXJ*)VXH0`AN$hGfEakahgh23L2VfTle3I{d%;@@1qb#e*0dXK(z(!3-s z0j}4vkBDDNX);qZ-5g;`S{}LGzcWRbbu9+j%b!{leJfqh zAw49ub$~2u^ah#eXo6JH8et)$p49fjAetts?Q7VvcwxX<_QRax@C-B^B$i1R4coXn zP@@*8)*e>$A4~v9L{1=Ao3rN((zzj|&VN^A^iEi>1bBLEA-LAOyn#uR-g(8lYe(1W z$+5X?$;jhRAr}B1QnZq0+xc}nO}WqKh;~fcqja7e#Yl=$Xq2!M;Rt+NbXd9^D``}T zhnabB$eX-<{#GLQyOk}uit4dKp;7&LAq*zeS^w$RidD5C_mT%m2eExmR)4rJ8&%Rb zncWYS^0>@6MyK-4@zcAh?8T>BfrsvVHwKf4%UIgGd#DEoNr3eK;7s@ozyA4irXjXsnd4{ZqRXz1M?%taeo zU6{ZF{B@8p#phw^p?~urn(d`#_e!YZN&Vqiiivic^gKcx>9gLPdB1SD|BU)=px_E= zpDpFBmCWs7E;jITwNVp`j@$=!M|bIxwc=JF`*yn7zRPoKD5dvVv-Q#T?Csv#IXAhj z8IfhgS?{69PkhD8(R{1!4;cL4Gt#l}0GcdI@*8$tbQvjj?myxafIvhE3ZOmunxVAx z;4mSV=7e`sI5Ktg2jGU*f1q#j%cVpNWB~qQ>85(nf!5CDMk5}eI(uRABh&wxLe4Ef6G~aY z9vdBN2^;hezWpYDnv;3OL0g7CF~bLP{!W@ef_Q9)v_Oybb;PrORXY1Uus0xLEW~4! zr~tI5PYT<5@dR%e5bAt{SKnj@9FCZk_>27ES9Di54j%h7Ar3*(v-ml{M#tq|^JMCl z^h&B?-+KHN^9nyZ{A{!Ekb>53%2VeQ+om-1VFLnmXt6Om?2^pqqI1`s8Hkz)viv!e zlu?d}s#s}u7(KkUt!SvZaWkcJZ=UE0T_E}!8fxC!g3ti6RYMAHQ;dryzufzf?3jT& zcJWodLamYQe+;WaWUOU|bv9Kmw^9WRTR%Vu4xM55=M;q=TQLD+!psex*ArGuOXl!!l(9 ze-1sbc-kzxzcaB^X`3$;kdfP1?^3rd&}L=H8^#isbQOr~ZX6S~QYMEJzWGGk9NDW- z2Q1^P%}oqZjV%V@(8}y>p7&`Lw|IxVT@GI#kU22qI1AV+*TfveIyvlJI8OhmFcgG2 ze?h*ap-EQq_yff+O_9 zx-yN!{AmYhfS)X-{^oft6UA(pTTjzh&E2F$k*`+*{50ZqXCisG z+bJk3pn!YeG(eZR)jvCbXuJTHH4UxUdUV|`s3`fndQJCM+rZA{r^6uCgIgSL27Jpu zAn}-n8-v-F5pjKJ)@mAoU6fjOSx04sUh|xH%qg>Zwp851Oe#sxMypMwHf=!WSQZtV z6W%U;!lJO^IClGCoU~F1+D#mO1=D_j-t``^C(p)G~B1Ci9 zRjSjL@qUpK1v7h;cwni{ldI zg?gaf>!tHWx$GmqTxM~^`hBq43OI=uF)CLFO|y)Z{j}r3Lq?_TV;{$+ijD;zW14TX z#$UT(pf4C_nUls??Qg$1h2;9WRytNA6{Nz1@CTU(8#!Wl?7%5;(5thxeIP9J&G986DS7bXS!W4Yg)tY; zfX1B_d*9xQ4ec*kdsOaCtsg}%4!>f|-QW)+#}Mvzf(kJeUKb+-H0pJItLQ?TJsl5+ z)_W_;x{9j&Oi7S)Og!>@Y%Ca|i~rwuEz7uT=H}zxPtMUKa6_Q=`v$XxMhnj50j~A7 z%=$>>BS*f%^V8P?Qec@NZRk+&(cqXB9yov~nYZq1mrW383&Thfcxq56jJ&sWAe_PF zfTc1$sP(dwN^xa!!ujC6C}o5J_PLF>(qgQq(PlwM=aLuOuR(y&%L*>90Un zJ0Y2BbGh;NX=F7(#V&+dEV00uU<-Z_A?l~Rb3nV5GkN?q01WM!S2pgtP*8o2HeTM@ zSGlB?(sH#yJw5~NJKV2i$|IDoM9|);-{uMq2@Y>}?*;i>hBV7Agm4sQ_TE4;w$>ZV3#8OrtChrJ)?j8 z@s|#+Gzj={I=s&>D3YB40-Ub@i4A|-Qh?V$CmLv)lIx1w(3Iisgk!d#+3tj0-yj$n zWj4?ESqG6Z>MrGi|0y5+<7$UqY08`?jUIR0ZJ0QBpx5g=N-Rt7kWW|iKMX-kI< zFVb4n?ab!#Rbl{%t;g@h|MPlPB2eoxWHo!d4vCdr*wtPTpUKPa3dMia+l|BrsM zMtWVeN4m9Hg{e=H#{P81?4WKk%5bKX>Ivl7?i_uS^c2Ix=Hf#ynSh}^n-6(KKTNGI zZ}!dj+=;xe*f$CkHo7lyyXk+Qs-({OlLTo_x>15Eqq57sCkm!g5_*;7+nF<2>It8Y z9R&VqF?c&%d?$=L;I+?KHR8CBBBvRXsibdovi$FgkiQ@+F+2o&TPzV4&@-dxG#jR7 z6svNzs=Ji#I#^td;M_=x;^cyb3n!ZDq8BoKz6iW~cCx?K*KM&nrs?YUX5IfkXGlEH zKvp6>0?xlntZ_zGU*0~W)QT}H5w<@U3!>fc4iF!C^MW%^t>KuIOj|Ei+23A;wWFla zbpF!sq|v|q<$u~^#Q+)=pt8$kuNNvh-+NJPRKlSm7`oX3Se3Ge(}M|g?G?xN1WhYh zLv+|Qi(!w-TddFj?%1#3LA`4|&}ogNi&G)IBc(N~!t$^eWi{;Ylz7^*Ea=y+c1BAA z{W_+;KKMUB79d7(H-mdn_h>C>p1~j&7ft%!flNt(;OvCrx<;7*2g8p^7&4gcu$?cN z;2q?;<(I0uSs05+QW_dzi3`ukK5we$4j55X-?;xD)lZR_&F9&6K{TZFhE&Z82&nAO zAf-T^Dzj-|0=RVK(y7zm}J@?*o&pDrSVrWh?a4Kkv{JNecu7HYBC(7ZuW`H3i z9~di`{K_j>C(vD{l|mE2C<^p-&qz7!w=1Z`NvMgV&*9HkpeD+b6r6r*Vidym5SHG# z7~Ka=u%A||{T(Fp0~-9~KG?`4Kg}xm{?-KKlb6X`_?FiQiU)j8j+*AT5x<30+I*(M zgW}Xs+U1_zz3~TqFGF#9+$N%jVv$hf&m*v3djP<%Z&_|y4*(4|BO?1(GC?H$iNYa- zhAV#CrGIWzNSZ##LNKtAK^AET&PmKn|JJ{Ko4rCvo+)0|2kL4X=Bxjj(0`cu``zb| zwlILuI5Pj-Ilr&5pCBG@fP}0)`P=xRJsz?lP&)jf*ZlwW`n$_3q*0f4vHB%rFfg5g#fF$ubYDvDIhuNJNm;UV!?|($|D>n2cuYKU`NJu> zkyo82x0`R#v^<`?x9|MDe7@r&W%A-Qwpy_q8UU{U?>PWv+He0>y0dWr$EQH|_vut2 zNdq865Au(@(K50N*7RdG(E_U;;!C6n*1AfWca>a*Z{~}{BSjMkp~zeH4%6qCM9-bP zc0L^tK_n{f7yAc95@9q=BqQPu`K%6qB{GeR-B!Lvt`HU}JCD*Ls|20Wh=+0H4GLE` zc&FgzxW(U9syG>xeeKnP0$tUG-wXeps%gS7b{?1X2*lYs`nVMGMST8Y2AQF37dQHi z$M3R(i|}Njoc4@Gxol?3R+nQBT0yE8$hBVg_hDb4*)bg84Hac#W7{DBise3@a?BB@!dY^$=S^*cz7A@i;8tH6~-`Re4Qm?C9&4 z_ZFm1uzqk~XQacq3?g7tY|rlm6efMN*>{MFie1G}N6QSx&f$^{bCULg+z{U_q2usLuM zpu#{lg&1zE^TN;`V|r)_jX$VL)6yR=()9h7zv~~W8A5naPV0VAtQuJAvHHEUQGhSa z0fC-K33`9K?0w@@C`HzvA&oYM!ZI)lO-tFeWn8X|RsL|yRa4C^fzPewh=*qgp<>)P z1aRqd00JkT_K4E%=57FmQh#p3ntYgA5DV12T8HrVN$6|cT zX-z}x@W-lXWA)nNWxxUa0dnv>v3&AJSiKO~EI1hoPz@j@oevCS;5B{j;mrp@9~x5l7KE`~5INu6ZwC{C zRfEdn?Xy3Lhz5gV*KcMq5WWUV_fXA3px6KZ>%g#NMZF`yoS1?kjx!)i{{h!S-;o6P zzmDzY9(Ds|tZ18TBk^@y!|3=>IlWVX_F-sx|I3B)17v9ISJ2rp5QYE&>~zMo@kW!zaRs{clgDf;8BS?#!G>y& zHm^@Tcs35N@HuYsJ{KN3z3BBT6jR~$kIbs%idTGBW$58o%pVitp zJ(g{?bmdr*x+g5FX7njC_Pipv3Nak;1R{n6B$v{fP?hddDFQ@N(I?g z7(bupYP|_hiLa#2nY>w@s>XU=_L-KVMpcUV&W*UB@{HwWHv3X=jAS7cz>Vnq*8gtX zFofaFJV2ri%3i)QLpnF^i7K2REEM|;tZ)9M4Id~Tch6vRaT{I!ijkNXb4v`Cv&f~r zZvTacFdUwtKJe&5fnW7beX5XZ$kKD3(a}8I+(q5asBj+px+Zc3R=srKjD|O_Uhu3{ zncv4hyEckdirj6Y6*cW5-LGmQrKP;;o{XVu{zhGDeyd$C2nBw1NxN=->s=v&Rtr=BdM6@gn ze`?#7D@F)lFIBF_#jEwmC8w zp9$mBEEiA=+@C-7f;`fFAuZqoyt!;jN8qMf`!D7-Ho& zAG)eAmVWu1Y&zUlj$8B$4Oc^iUdD}6ilYvI%?ikiIiT_vAygCEF`qNu_N48cv>Fr-KKesCx&TzLJ&zqCYMt0)n zqz}}Ev1*2WR9eu#9lM!D&8x6zZ0oz)9j~5l)m7j;8#KnCw*G}K$!CV-Xq4;NomWLk zT&U6$xFttfPmK4-?f_M~r^sZC`OnN?YHjU%dzz}4ob^iBgx>Jh}k zw=1n9d7$wbNxVW{Izd!6rs`PFW{ag@UXd}ZvPzr5Ut)$2Z;u{US(vWACBR;`bC-T` zHcyjE%r4?or4qM!3%zB#@%p^DyyRutmQ$&AH|9W0eD?v1VOP{sJc<^dWtSW4s*C3; zG(1R~Flf3XT~X-Z9(VMw-ZpuH+qUxJ;-x5I>ML5h)(leqtC&@u9eR>o;h=*zmGj`& zK%&~sL->0q5}!hsnEPVk9=p<%6bsNqg)D}kFKbN>3uXgE5he-?kG0%ntITmO_qy)hfCo! z$#ZDFppY5Oe}kB#};F4a`V zrPF%N>NA`I3i-69Bn%x>P(D@O@g~>s0N&-wO-q%A^s7pu*jLcGSd44mjSUL|cYPNr zGP#dfdA%(v4D=`a>ddK}BKPe@1TBh8E@Za7axX%ax%AT(p(!yJ-{l1Q5SnutO6NBO zA8KxBIT#9{t3_2N=q8Y)+|-B6!8M&FV!Zyw}mt2ST$EJzG>X2(%dYg;lp+ZHh+Be??R%<(t=ni#}g z&16;GD~WSuJCao>__v!UI3>focT*CbIRXo{Xop22g3t|-sWhhzxG=2T4~M456*-Et z>fOc5r3O6Pyi+${lPp_olAf&F7DyV;9-l;UtZ8l@>QO6X^DkER3$i_)PIov@O)ypi zLC{Y^4=9(dt62=a1i|j<-_yfuCtpO@`}@i0+qKywy}3~AcHy=nxgr!gdsM%jJ@QkT zeZ0q4+CN^qI>6PGMs7TN6ic_6zp~agoZ@pw-<O0F; z`HNo|pQo&~5yrxu14@?5co$6L4u~(rxa}XElK(>`EEDDP;f$@%X0+GF-pAMd*RS{E zU-S6|jS0Ys<$ISa2~`u7v4w{5ew&q}Y7?^(?m^dq5-pf+m?#%~Ao!`{^(M*ThHR(6 zLw$|9{|JiTrCdms{2|?{blk@QA-L-)N&4EV@z+Zdw5&|x?Nq%bG@2U?g6o|JryHqo zsXlzNiJOkbeyj{Vj8uVS$0-UR1|Hd6_X0h`%;N-Ca_F!lRj1=y4V81#9($Hh0I_m? zy5oI1mE}GAk+b%z904=AfAnf@a}zg;6y)=-DSA{ck_uR~(S2YoG>TIV#04E75hl10 zH*%@^={t%KI|*{Pi5+=8L0TL>;i*<(lw*${@bnEh!J@ncwq}{pqfh?~P=wu?U116w8zDo{b9+0GpiH^Jbe#s@?kyfwkxq z&&Z-^Q~s4Pk2Y+zHo7N=)PQe2SbTvxZQ6&j{yA^#CO7Fln_ts?>2|9UCI{<4I*-!j zg`M5HL=Y27-m_y#f;;6I`#TI?I8B!w!e zIuCn+&rUNxCL1j@a#=#QbW4AoP&(SMxcCrsLPwgAHI2jiG9~<-s%^367R*}`^l3W` z8kx_h77J0x;=~~G=-_u`H!^bH@WE=)dy@g-Qy#(hhBO|SruN1?LXOb#M|-xEo+-V; zCuF}Oe6g2E1Aon45=`dD9c4tcIc~S4y!<1dri2urKk@#q_C-xWFYYM2QsJOjubJo_ zt~)_pl(jL!3_aPQ`=B&7+^OgEPG};Em5Dok+Rk3vZEV;mz8%BD;X>RKuU->nly;m> znYbaCG?((8IF=EKQVtUusVB{Up};DH${LlKG6lLs+JTyh`P8oVDa{H}$~`nb#=;(9 zkmf*xNBK19E?3^VT9(&2M235meroK+h0!46(ndM<5g+iRJdn@g5;uSUKvI3~PIZ}T zW!Umbd+~1EV3FMDO`eN&Z}53zMfgo@K9^WaF6+T!e~Z3#OPEid3d3;`%%{1JWAv>D zt1SarNpC3a+M%pAcQ3PBC43xfED2BqXYwttf#lTM8{C#|>`PGcg$~Mr5q|ROSr4HX zZB=m#6xF2Omw}QuBui9u1s3c5_5;IjljPy=mp1GETdyOMZuCLa{wJo*MUh*4}G|ICiEeSmq&d zS&(FX5!8@yOt)t6} z)4pzac^XzWyIQ)2Lb;gG9Le3M4=sQtVN(sA-?HD8i6w2k}~!(=A8#hu3J z7i3J*W_mXH(#?^F<#cXHK4%Ct+sbFgc5oqTm9FTkEAi8096b8{aaa~6!JoFV1Ac5g mP8mW%px!>-|Mk$~q@m&zMKzWEb;ybe{0wzXbaGERg#HKrVy}(> literal 0 HcmV?d00001 diff --git a/res_partner_mails_count/static/description/index.html b/res_partner_mails_count/static/description/index.html index 825c831..d9c91e8 100644 --- a/res_partner_mails_count/static/description/index.html +++ b/res_partner_mails_count/static/description/index.html @@ -4,8 +4,16 @@

Smart buttons for mails count

Display amount of messages from/to customer

- Open partner form and look up how many messages from and to some partner. + Open partner (customer) form and look up how many messages he got and sent: +

+

+ If you click any of this buttons: + +

+

+ You will see those mails: +

From bac088a50a8bf2b32f5589220e039cb5012dbad2 Mon Sep 17 00:00:00 2001 From: x620 Date: Mon, 28 Mar 2016 11:05:16 +0500 Subject: [PATCH 037/148] Init commit: worked 8.0 version, which will be changed to 9.0. Changed __openerp__.py and README.rst only. --- res_partner_mails_count/README.rst | 16 +++++++ res_partner_mails_count/__init__.py | 2 + res_partner_mails_count/__openerp__.py | 33 +++++++++++++ res_partner_mails_count/models.py | 19 ++++++++ res_partner_mails_count/static/src/js/main.js | 10 ++++ res_partner_mails_count/templates.xml | 48 +++++++++++++++++++ res_partner_mails_count/tests/__init__.py | 3 ++ res_partner_mails_count/tests/test_mail.py | 33 +++++++++++++ .../views/res_partner_mails_count.xml | 18 +++++++ 9 files changed, 182 insertions(+) create mode 100644 res_partner_mails_count/README.rst create mode 100644 res_partner_mails_count/__init__.py create mode 100644 res_partner_mails_count/__openerp__.py create mode 100644 res_partner_mails_count/models.py create mode 100644 res_partner_mails_count/static/src/js/main.js create mode 100644 res_partner_mails_count/templates.xml create mode 100644 res_partner_mails_count/tests/__init__.py create mode 100644 res_partner_mails_count/tests/test_mail.py create mode 100644 res_partner_mails_count/views/res_partner_mails_count.xml diff --git a/res_partner_mails_count/README.rst b/res_partner_mails_count/README.rst new file mode 100644 index 0000000..8a14292 --- /dev/null +++ b/res_partner_mails_count/README.rst @@ -0,0 +1,16 @@ +Smart buttons for mails count +============================= + +This module adds Smart buttons with "Mails from" and "Mails to" count of mails in the partner form. + +Usage +----- + +You can see Smart buttons "Mails from" and "Mails to" in the contact form in the Messaging/Contacts menu. If you click on these buttons, you can see list of corresponded mails. Click on the "Send a message" link to send mail to the partner. + +Further information +------------------- + +HTML Description: https://apps.odoo.com/apps/modules/9.0/res_partner_mails_count/ + +Tested on Odoo 9.0 \ No newline at end of file diff --git a/res_partner_mails_count/__init__.py b/res_partner_mails_count/__init__.py new file mode 100644 index 0000000..0f7cb6b --- /dev/null +++ b/res_partner_mails_count/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +import models \ No newline at end of file diff --git a/res_partner_mails_count/__openerp__.py b/res_partner_mails_count/__openerp__.py new file mode 100644 index 0000000..9110da5 --- /dev/null +++ b/res_partner_mails_count/__openerp__.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +{ + "name": "Smart buttons for mails count", + + "summary": """ + This module adds Smart buttons with "Mails from" and "Mails to" count of mails in the partner form. + """, + + "description": """ + You can see Smart buttons "Mails from" and "Mails to" in the contact + form in the Messaging/Contacts menu. If you click on these buttons, + you can see list of corresponded mails. Click on the "Send a message" + link to send mail to the partner. + """, + + "author": "IT-Projects LLC, Pavel Romanchenko", + "website": "http://www.it-projects.info", + + # Categories can be used to filter modules in modules listing + # Check https://github.com/odoo/odoo/blob/master/openerp/addons/base/module/module_data.xml + # for the full list + "category": "Uncategorized", + "version": "1.0.0", + + # any module necessary for this one to work correctly + "depends": ["base", "mail"], + + # always loaded + "data": [ + "views/res_partner_mails_count.xml", + "templates.xml", + ], +} diff --git a/res_partner_mails_count/models.py b/res_partner_mails_count/models.py new file mode 100644 index 0000000..0ca91e6 --- /dev/null +++ b/res_partner_mails_count/models.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- + +from openerp import models, fields, api + + +class res_partner(models.Model): + _inherit = 'res.partner' + mails_to = fields.Integer(compute="_mails_to") + mails_from = fields.Integer(compute="_mails_from") + + @api.one + def _mails_to(self): + for r in self: + r.mails_to = self.env['mail.message'].sudo().search_count([('notified_partner_ids', 'in', r.id)]) + + @api.one + def _mails_from(self): + for r in self: + r.mails_from = self.env['mail.message'].sudo().search_count([('author_id', '=', r.id)]) diff --git a/res_partner_mails_count/static/src/js/main.js b/res_partner_mails_count/static/src/js/main.js new file mode 100644 index 0000000..16c9d56 --- /dev/null +++ b/res_partner_mails_count/static/src/js/main.js @@ -0,0 +1,10 @@ +openerp.res_partner_mails_count = function(instance){ + instance.mail.Wall.include({ + init: function(){ + this._super.apply(this, arguments); + if(this.context.ignore_search_model){ + delete this.defaults.model; + } + } + }); +}; diff --git a/res_partner_mails_count/templates.xml b/res_partner_mails_count/templates.xml new file mode 100644 index 0000000..936ba1c --- /dev/null +++ b/res_partner_mails_count/templates.xml @@ -0,0 +1,48 @@ + + + + + + + mail.message.search.notified_partner + mail.message + 50 + + + + + + + + + + res.partner.mails.count + res.partner + + + + + + + + + + + diff --git a/res_partner_mails_count/tests/__init__.py b/res_partner_mails_count/tests/__init__.py new file mode 100644 index 0000000..300df16 --- /dev/null +++ b/res_partner_mails_count/tests/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import test_mail diff --git a/res_partner_mails_count/tests/test_mail.py b/res_partner_mails_count/tests/test_mail.py new file mode 100644 index 0000000..f606964 --- /dev/null +++ b/res_partner_mails_count/tests/test_mail.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- + +from openerp.tests.common import TransactionCase + + +class test_message_count(TransactionCase): + post_install = True + def test_count(self): + new_partner1 = self.env['res.partner'].sudo().create({'name': 'rpmc Test Partner one', 'email': 'tt@tt', 'notify_email': 'always'}) + new_partner2 = self.env['res.partner'].sudo().create({'name': 'rpmc Test Partner two', 'email': 'rr@rr', 'notify_email': 'always'}) + self.assertEqual(new_partner1.mails_to, 0, 'rpmc: new partner have mails_to != 0') + mail_compose = self.env['mail.compose.message'] + compose = mail_compose.with_context( + { + 'default_composition_mode': 'comment', + }).create( + { + 'subject': 'test subj', + 'body': 'test body', + 'partner_ids': [(4, new_partner2.id)], + 'email_from': 'tt@tt', + 'author_id': new_partner1.id + }) + compose.send_mail() + self.assertEqual(new_partner1.mails_to, 0) + self.assertEqual(new_partner1.mails_from, 1, 'rpmc: one message but mails_from != 1') + self.assertEqual(new_partner2.mails_to, 1, 'rpmc: one message but mails_to != 1') + self.assertEqual(new_partner2.mails_from, 0) + compose.send_mail() + self.assertEqual(new_partner1.mails_to, 0) + self.assertEqual(new_partner1.mails_from, 2, 'rpmc: one message but mails_from != 2') + self.assertEqual(new_partner2.mails_to, 2, 'rpmc: one message but mails_to != 2') + self.assertEqual(new_partner2.mails_from, 0) \ No newline at end of file diff --git a/res_partner_mails_count/views/res_partner_mails_count.xml b/res_partner_mails_count/views/res_partner_mails_count.xml new file mode 100644 index 0000000..bd2d7d0 --- /dev/null +++ b/res_partner_mails_count/views/res_partner_mails_count.xml @@ -0,0 +1,18 @@ + + + + + Mails + mail.wall + mail.message + { + 'ignore_search_model': True, + } + +

+ Mails not found. Probably, they exist, but you don't have access. +

+
+
+
+
From 471f5f4ce8bc593872216487db5e518968befd0d Mon Sep 17 00:00:00 2001 From: x620 Date: Mon, 28 Mar 2016 15:45:51 +0500 Subject: [PATCH 038/148] Show smart buttons and calculate mails count. notified_partner_ids was removed in 9.0, so it changed to partner_ids. --- res_partner_mails_count/models.py | 2 +- res_partner_mails_count/static/src/js/main.js | 26 ++++++++++++------- res_partner_mails_count/templates.xml | 22 ++++------------ .../views/res_partner_mails_count.xml | 16 +++++++++++- 4 files changed, 37 insertions(+), 29 deletions(-) diff --git a/res_partner_mails_count/models.py b/res_partner_mails_count/models.py index 0ca91e6..dcd036a 100644 --- a/res_partner_mails_count/models.py +++ b/res_partner_mails_count/models.py @@ -11,7 +11,7 @@ class res_partner(models.Model): @api.one def _mails_to(self): for r in self: - r.mails_to = self.env['mail.message'].sudo().search_count([('notified_partner_ids', 'in', r.id)]) + r.mails_to = self.env['mail.message'].sudo().search_count([('partner_ids', 'in', r.id)]) @api.one def _mails_from(self): diff --git a/res_partner_mails_count/static/src/js/main.js b/res_partner_mails_count/static/src/js/main.js index 16c9d56..4c44a0f 100644 --- a/res_partner_mails_count/static/src/js/main.js +++ b/res_partner_mails_count/static/src/js/main.js @@ -1,10 +1,16 @@ -openerp.res_partner_mails_count = function(instance){ - instance.mail.Wall.include({ - init: function(){ - this._super.apply(this, arguments); - if(this.context.ignore_search_model){ - delete this.defaults.model; - } - } - }); -}; +// openerp.res_partner_mails_count = function(instance){ +// instance.mail.Wall.include({ +// init: function(){ +// this._super.apply(this, arguments); +// if(this.context.ignore_search_model){ +// delete this.defaults.model; +// } +// } +// }); +// }; + + +// odoo.define('res_partner_mails_count.main', function(require) { +// "use strict"; +// +// }); diff --git a/res_partner_mails_count/templates.xml b/res_partner_mails_count/templates.xml index 936ba1c..79f4b1a 100644 --- a/res_partner_mails_count/templates.xml +++ b/res_partner_mails_count/templates.xml @@ -10,38 +10,26 @@ - - mail.message.search.notified_partner - mail.message - 50 - - - - - - - - res.partner.mails.count res.partner - - - - +
diff --git a/res_partner_mails_count/views/res_partner_mails_count.xml b/res_partner_mails_count/views/res_partner_mails_count.xml index bd2d7d0..11f4302 100644 --- a/res_partner_mails_count/views/res_partner_mails_count.xml +++ b/res_partner_mails_count/views/res_partner_mails_count.xml @@ -3,7 +3,7 @@ Mails - mail.wall + mail.chat.instant_messaging mail.message { 'ignore_search_model': True, @@ -14,5 +14,19 @@

+ + + + + + + + + + + + + +
From 621ed51475b587e1947f6974a54f064ad270fe60 Mon Sep 17 00:00:00 2001 From: x620 Date: Tue, 29 Mar 2016 10:38:57 +0500 Subject: [PATCH 039/148] Add mail_archive module in current repo. Create mail_base dir for future module which contain common code for other modules. --- mail_archives/README.rst | 15 ++++++ mail_archives/__init__.py | 3 ++ mail_archives/__openerp__.py | 26 +++++++++++ mail_archives/models/__init__.py | 3 ++ mail_archives/models/models.py | 15 ++++++ mail_archives/static/src/js/archives.js | 61 +++++++++++++++++++++++++ mail_archives/static/src/xml/menu.xml | 10 ++++ mail_archives/views/templates.xml | 12 +++++ mail_archives/views/views.xml | 59 ++++++++++++++++++++++++ mail_base/README.rst | 11 +++++ 10 files changed, 215 insertions(+) create mode 100644 mail_archives/README.rst create mode 100644 mail_archives/__init__.py create mode 100644 mail_archives/__openerp__.py create mode 100644 mail_archives/models/__init__.py create mode 100644 mail_archives/models/models.py create mode 100644 mail_archives/static/src/js/archives.js create mode 100644 mail_archives/static/src/xml/menu.xml create mode 100644 mail_archives/views/templates.xml create mode 100644 mail_archives/views/views.xml create mode 100644 mail_base/README.rst diff --git a/mail_archives/README.rst b/mail_archives/README.rst new file mode 100644 index 0000000..100ef14 --- /dev/null +++ b/mail_archives/README.rst @@ -0,0 +1,15 @@ +Mail Archives +============= + +Display archive channel which contain read messages + +Usage +----- +Click by archive menu item and receive read messages (having attribute read = true) + +Further information +------------------- + +HTML Description: https://apps.odoo.com/apps/modules/9.0/mail_archives/ + +Tested on Odoo 9.0 \ No newline at end of file diff --git a/mail_archives/__init__.py b/mail_archives/__init__.py new file mode 100644 index 0000000..5305644 --- /dev/null +++ b/mail_archives/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import models \ No newline at end of file diff --git a/mail_archives/__openerp__.py b/mail_archives/__openerp__.py new file mode 100644 index 0000000..316de3e --- /dev/null +++ b/mail_archives/__openerp__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +{ + "name": "mail_archives", + "summary": """Create archive channel""", + "category": "Uncategorized", + "images": [], + "version": "1.0.0", + + "author": "IT-Projects LLC, Pavel Romanchenko", + "website": "http://www.it-projects.info", + "license": "LGPL-3", + + "depends": [ + "base", + "mail" + ], + + "data": [ + "views/views.xml", + "views/templates.xml", + ], + "qweb": [ + "static/src/xml/menu.xml", + ], + 'installable': True, +} diff --git a/mail_archives/models/__init__.py b/mail_archives/models/__init__.py new file mode 100644 index 0000000..5305644 --- /dev/null +++ b/mail_archives/models/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import models \ No newline at end of file diff --git a/mail_archives/models/models.py b/mail_archives/models/models.py new file mode 100644 index 0000000..a3a40fa --- /dev/null +++ b/mail_archives/models/models.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- + +from openerp import models, fields, api + +# class mail_arhives(models.Model): +# _name = 'mail_arhives.mail_arhives' + +# name = fields.Char() +# value = fields.Integer() +# value2 = fields.Float(compute="_value_pc", store=True) +# description = fields.Text() +# +# @api.depends('value') +# def _value_pc(self): +# self.value2 = float(self.value) / 100 \ No newline at end of file diff --git a/mail_archives/static/src/js/archives.js b/mail_archives/static/src/js/archives.js new file mode 100644 index 0000000..6079f66 --- /dev/null +++ b/mail_archives/static/src/js/archives.js @@ -0,0 +1,61 @@ +odoo.define('mail_archives.archives', function (require) { +"use strict"; + +// var core = require('web.core'); +// var utils = require('web.utils'); +// var Widget = require('web.Widget'); +var Model = require('web.Model'); +var MessageModel = new Model('mail.message', session.context); + +var chat_manager = require('mail.chat_manager'); +console.log('qqq'); + +var LIMIT = 100; + +function get_channel_cache (channel, domain) { + var stringified_domain = JSON.stringify(domain || []); + if (!channel.cache[stringified_domain]) { + channel.cache[stringified_domain] = { + all_history_loaded: false, + loaded: false, + messages: [], + }; + } + return channel.cache[stringified_domain]; +} + +function fetch_from_channel (channel, options) { + options = options || {}; + var domain = + (channel.id === "channel_inbox") ? [['needaction', '=', true]] : + (channel.id === "channel_starred") ? [['starred', '=', true]] : + (channel.id === "channel_archive") ? [['read', '=', true]] : + [['channel_ids', 'in', channel.id]]; + var cache = get_channel_cache(channel, options.domain); + + if (options.domain) { + domain = new data.CompoundDomain(domain, options.domain || []); + } + if (options.load_more) { + var min_message_id = cache.messages[0].id; + domain = new data.CompoundDomain([['id', '<', min_message_id]], domain); + } + + return MessageModel.call('message_fetch', [domain], {limit: LIMIT}).then(function (msgs) { + if (!cache.all_history_loaded) { + cache.all_history_loaded = msgs.length < LIMIT; + } + cache.loaded = true; + + // _.each(msgs, function (msg) { + // add_message(msg, {channel_id: channel.id, silent: true, domain: options.domain}); + // }); + var channel_cache = get_channel_cache(channel, options.domain || []); + return channel_cache.messages; + }); +} + +//TODO: переложить все в репозиторий mail_addons-9.0-res_partner_mails_count +return chat_manager; + +}); diff --git a/mail_archives/static/src/xml/menu.xml b/mail_archives/static/src/xml/menu.xml new file mode 100644 index 0000000..c6151b9 --- /dev/null +++ b/mail_archives/static/src/xml/menu.xml @@ -0,0 +1,10 @@ + + diff --git a/mail_archives/views/templates.xml b/mail_archives/views/templates.xml new file mode 100644 index 0000000..a99a03d --- /dev/null +++ b/mail_archives/views/templates.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/mail_archives/views/views.xml b/mail_archives/views/views.xml new file mode 100644 index 0000000..dc3a5bb --- /dev/null +++ b/mail_archives/views/views.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mail_base/README.rst b/mail_base/README.rst new file mode 100644 index 0000000..ed52ea7 --- /dev/null +++ b/mail_base/README.rst @@ -0,0 +1,11 @@ +Mail Base +========= + +Module contain common code for other mail modules + +Usage +----- + + +Further information +------------------- From d71af40fef87a8fdfb6c58f53cfe31846b56392e Mon Sep 17 00:00:00 2001 From: x620 Date: Wed, 30 Mar 2016 10:31:57 +0500 Subject: [PATCH 040/148] Create channel_archive in archives.js. Display archive messages or message about empty archive page now. --- mail_archives/static/src/js/archives.js | 383 +++++++++++++++++++++++- mail_archives/static/src/xml/menu.xml | 15 + 2 files changed, 389 insertions(+), 9 deletions(-) diff --git a/mail_archives/static/src/js/archives.js b/mail_archives/static/src/js/archives.js index 6079f66..08327bd 100644 --- a/mail_archives/static/src/js/archives.js +++ b/mail_archives/static/src/js/archives.js @@ -4,32 +4,267 @@ odoo.define('mail_archives.archives', function (require) { // var core = require('web.core'); // var utils = require('web.utils'); // var Widget = require('web.Widget'); -var Model = require('web.Model'); -var MessageModel = new Model('mail.message', session.context); +var bus = require('bus.bus').bus; +var core = require('web.core'); +var data = require('web.data'); var chat_manager = require('mail.chat_manager'); -console.log('qqq'); +var session = require('web.session'); +var time = require('web.time'); +var _t = core._t; var LIMIT = 100; +var Model = require('web.Model'); +var MessageModel = new Model('mail.message', session.context); + +// Private model +//---------------------------------------------------------------------------------- +var messages = []; +var channels = []; +var chat_unread_counter = 0; +var unread_conversation_counter = 0; +var needaction_counter = 0; +var mention_partner_suggestions = []; +var emojis = []; +var emoji_substitutions = {}; +var discuss_ids = {}; +var client_action_open = false; + +function parse_and_transform(html_string, transform_function) { + var open_token = "OPEN" + Date.now(); + var string = html_string.replace(/</g, open_token); + var children = $('
').html(string).contents(); + return _parse_and_transform(children, transform_function) + .replace(new RegExp(open_token, "g"), "<"); +} + +function _parse_and_transform(nodes, transform_function) { + return _.map(nodes, function (node) { + return transform_function(node, function () { + return _parse_and_transform(node.childNodes, transform_function); + }); + }).join(""); +} + +// suggested regexp (gruber url matching regexp, adapted to js, see https://gist.github.com/gruber/8891611) +var url_regexp = /\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/gi; +function add_link (node, transform_children) { + if (node.nodeType === 3) { // text node + return node.data.replace(url_regexp, function (url) { + var href = (!/^(f|ht)tps?:\/\//i.test(url)) ? "http://" + url : url; + return '' + url + ''; + }); + } + if (node.tagName === "A") return node.outerHTML; + node.innerHTML = transform_children(); + return node.outerHTML; +} + +// Message and channel manipulation helpers +//---------------------------------------------------------------------------------- + +// options: channel_id, silent +function add_message (data, options) { + options = options || {}; + var msg = _.findWhere(messages, { id: data.id }); + if (!msg) { + msg = make_message(data); + // Keep the array ordered by id when inserting the new message + messages.splice(_.sortedIndex(messages, msg, 'id'), 0, msg); + _.each(msg.channel_ids, function (channel_id) { + var channel = chat_manager.get_channel(channel_id); + if (channel) { + add_to_cache(msg, []); + if (options.domain && options.domain !== []) { + add_to_cache(msg, options.domain); + } + if (channel.hidden) { + channel.hidden = false; + chat_manager.bus.trigger('new_channel', channel); + } + if (channel.type !== 'static' && !msg.is_author && !msg.is_system_notification) { + if (options.increment_unread) { + update_channel_unread_counter(channel, channel.unread_counter+1); + } + if (channel.is_chat && options.show_notification) { + if (!client_action_open && config.device.size_class !== config.device.SIZES.XS) { + // automatically open chat window + chat_manager.bus.trigger('open_chat', channel, { passively: true }); + } + var query = {is_displayed: false}; + chat_manager.bus.trigger('anyone_listening', channel, query); + // notify_incoming_message(msg, query); + } + } + } + }); + if (!options.silent) { + chat_manager.bus.trigger('new_message', msg); + } + } else if (options.domain && options.domain !== []) { + add_to_cache(msg, options.domain); + } + return msg; +} + +function make_message (data) { + var msg = { + id: data.id, + author_id: data.author_id, + body_short: data.body_short || "", + body: data.body || "", + date: moment(time.str_to_datetime(data.date)), + message_type: data.message_type, + subtype_description: data.subtype_description, + is_author: data.author_id && data.author_id[0] === session.partner_id, + is_note: data.is_note, + is_system_notification: data.message_type === 'notification' && data.model === 'mail.channel', + attachment_ids: data.attachment_ids, + subject: data.subject, + email_from: data.email_from, + record_name: data.record_name, + tracking_value_ids: data.tracking_value_ids, + channel_ids: data.channel_ids, + model: data.model, + res_id: data.res_id, + url: session.url("/mail/view?message_id=" + data.id), + }; + + _.each(_.keys(emoji_substitutions), function (key) { + var escaped_key = String(key).replace(/([.*+?=^!:${}()|[\]\/\\])/g, '\\$1'); + var regexp = new RegExp("(?:^|\\s|<[a-z]*>)(" + escaped_key + ")(?=\\s|$|)", "g"); + msg.body = msg.body.replace(regexp, ' '+emoji_substitutions[key]+' '); + }); + + function property_descr(channel) { + return { + enumerable: true, + get: function () { + return _.contains(msg.channel_ids, channel); + }, + set: function (bool) { + if (bool) { + add_channel_to_message(msg, channel); + } else { + msg.channel_ids = _.without(msg.channel_ids, channel); + } + } + }; + } + + Object.defineProperties(msg, { + is_starred: property_descr("channel_starred"), + is_needaction: property_descr("channel_inbox"), + is_archive: property_descr("channel_archive"), + }); + + if (_.contains(data.needaction_partner_ids, session.partner_id)) { + msg.is_needaction = true; + } + if (_.contains(data.starred_partner_ids, session.partner_id)) { + msg.is_starred = true; + } + msg.is_archive = true; + if (msg.model === 'mail.channel') { + var real_channels = _.without(msg.channel_ids, 'channel_inbox', 'channel_starred', 'channel_archive'); + var origin = real_channels.length === 1 ? real_channels[0] : undefined; + var channel = origin && chat_manager.get_channel(origin); + if (channel) { + msg.origin_id = origin; + msg.origin_name = channel.name; + } + } + + // Compute displayed author name or email + if ((!msg.author_id || !msg.author_id[0]) && msg.email_from) { + msg.mailto = msg.email_from; + } else { + msg.displayed_author = msg.author_id && msg.author_id[1] || + msg.email_from || _t('Anonymous'); + } + + // Don't redirect on author clicked of self-posted messages + msg.author_redirect = !msg.is_author; + + // Compute the avatar_url + if (msg.author_id && msg.author_id[0]) { + msg.avatar_src = "/web/image/res.partner/" + msg.author_id[0] + "/image_small"; + } else if (msg.message_type === 'email') { + msg.avatar_src = "/mail/static/src/img/email_icon.png"; + } else { + msg.avatar_src = "/mail/static/src/img/smiley/avatar.jpg"; + } + + // add anchor tags to urls + msg.body = parse_and_transform(msg.body, add_link); + + // Compute url of attachments + _.each(msg.attachment_ids, function(a) { + a.url = '/web/content/' + a.id + '?download=true'; + }); + + return msg; +} + +function add_channel_to_message (message, channel_id) { + message.channel_ids.push(channel_id); + message.channel_ids = _.uniq(message.channel_ids); +} + +function add_channel (data, options) { + options = typeof options === "object" ? options : {}; + var channel = chat_manager.get_channel(data.id); + if (channel) { + if (channel.is_folded !== (data.state === "folded")) { + channel.is_folded = (data.state === "folded"); + chat_manager.bus.trigger("channel_toggle_fold", channel); + } + } else { + channel = chat_manager.make_channel(data, options); + channels.push(channel); + channels = _.sortBy(channels, function (channel) { return channel.name.toLowerCase(); }); + if (!options.silent) { + chat_manager.bus.trigger("new_channel", channel); + } + if (channel.is_detached) { + chat_manager.bus.trigger("open_chat", channel); + } + } + return channel; +} + function get_channel_cache (channel, domain) { var stringified_domain = JSON.stringify(domain || []); if (!channel.cache[stringified_domain]) { channel.cache[stringified_domain] = { all_history_loaded: false, loaded: false, - messages: [], + messages: [] }; } return channel.cache[stringified_domain]; } +function add_to_cache(message, domain) { + _.each(message.channel_ids, function (channel_id) { + var channel = chat_manager.get_channel(channel_id); + if (channel) { + var channel_cache = get_channel_cache(channel, domain); + var index = _.sortedIndex(channel_cache.messages, message, 'id'); + if (channel_cache.messages[index] !== message) { + channel_cache.messages.splice(index, 0, message); + } + } + }); +} + function fetch_from_channel (channel, options) { options = options || {}; var domain = (channel.id === "channel_inbox") ? [['needaction', '=', true]] : (channel.id === "channel_starred") ? [['starred', '=', true]] : - (channel.id === "channel_archive") ? [['read', '=', true]] : + (channel.id === "channel_archive") ? [] : [['channel_ids', 'in', channel.id]]; var cache = get_channel_cache(channel, options.domain); @@ -47,15 +282,145 @@ function fetch_from_channel (channel, options) { } cache.loaded = true; - // _.each(msgs, function (msg) { - // add_message(msg, {channel_id: channel.id, silent: true, domain: options.domain}); - // }); + _.each(msgs, function (msg) { + add_message(msg, {channel_id: channel.id, silent: true, domain: options.domain}); + }); var channel_cache = get_channel_cache(channel, options.domain || []); return channel_cache.messages; }); } -//TODO: переложить все в репозиторий mail_addons-9.0-res_partner_mails_count +function update_channel_unread_counter (channel, counter) { + if (channel.unread_counter > 0 && counter === 0) { + unread_conversation_counter = Math.max(0, unread_conversation_counter-1); + } else if (channel.unread_counter === 0 && counter > 0) { + unread_conversation_counter++; + } + if (channel.is_chat) { + chat_unread_counter = Math.max(0, chat_unread_counter - channel.unread_counter + counter); + } + channel.unread_counter = counter; + chat_manager.bus.trigger("update_channel_unread_counter", channel); +} + +chat_manager.make_message = make_message; + +chat_manager.get_channel = function (id) { + return _.findWhere(channels, {id: id}); +}; + +chat_manager.get_messages = function (options) { + var channel; + + if ('channel_id' in options && options.load_more) { + // get channel messages, force load_more + channel = this.get_channel(options.channel_id); + return fetch_from_channel(channel, {domain: options.domain || {}, load_more: true}); + } + if ('channel_id' in options) { + // channel message, check in cache first + channel = this.get_channel(options.channel_id); + var channel_cache = get_channel_cache(channel, options.domain); + if (channel_cache.loaded) { + return $.when(channel_cache.messages); + } else { + return fetch_from_channel(channel, {domain: options.domain}); + } + } + if ('ids' in options) { + // get messages from their ids (chatter is the main use case) + return fetch_document_messages(options.ids, options).then(function(result) { + chat_manager.mark_as_read(options.ids); + return result; + }); + } + if ('model' in options && 'res_id' in options) { + // get messages for a chatter, when it doesn't know the ids (use + // case is when using the full composer) + var domain = [['model', '=', options.model], ['res_id', '=', options.res_id]]; + MessageModel.call('message_fetch', [domain], {limit: 30}).then(function (msgs) { + return _.map(msgs, add_message); + }); + } +}; + +chat_manager.toggle_star_status = function (message_id) { + var msg = _.findWhere(messages, { id: message_id }); + return MessageModel.call('set_message_starred', [[message_id], !msg.is_starred]); +}; + +chat_manager.mark_channel_as_seen = function (channel) { + if (channel.unread_counter > 0 && channel.type !== 'static') { + update_channel_unread_counter(channel, 0); + channel_seen(channel); + } +}; + +chat_manager.mark_all_as_read = function (channel, domain) { + if ((channel.id === "channel_inbox" && needaction_counter) || (channel && channel.needaction_counter)) { + return MessageModel.call('mark_all_as_read', [], {channel_ids: channel.id !== "channel_inbox" ? [channel.id] : [], domain: domain}); + } + return $.when(); +}; + +chat_manager.bus.on('client_action_open', null, function (open) { + client_action_open = open; +}); + + +// Initialization +// --------------------------------------------------------------------------------- +function init () { + add_channel({ + id: "channel_inbox", + name: _t("Inbox"), + type: "static" + }, { display_needactions: true }); + + add_channel({ + id: "channel_starred", + name: _t("Starred"), + type: "static" + }); + + add_channel({ + id: "channel_archive", + name: _t("Archive"), + type: "static" + }); + + var load_channels = session.rpc('/mail/client_action').then(function (result) { + _.each(result.channel_slots, function (channels) { + _.each(channels, add_channel); + }); + needaction_counter = result.needaction_inbox_counter; + mention_partner_suggestions = result.mention_partner_suggestions; + }); + + var load_emojis = session.rpc("/mail/chat_init").then(function (result) { + emojis = result.emoji; + _.each(emojis, function(emoji) { + emoji_substitutions[_.escape(emoji.source)] = emoji.substitution; + }); + }); + + var ir_model = new Model("ir.model.data"); + var load_menu_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_menu_root_chat"], {}, {shadow: true}); + var load_action_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_action_client_chat"], {}, {shadow: true}); + + // bus.on('notification', null, on_notification); + + return $.when(load_menu_id, load_action_id, load_channels, load_emojis).then(function (menu_id, action_id) { + discuss_ids = { + menu_id: menu_id, + action_id: action_id + }; + bus.start_polling(); + }); +} + + +chat_manager.is_ready = init(); return chat_manager; }); diff --git a/mail_archives/static/src/xml/menu.xml b/mail_archives/static/src/xml/menu.xml index c6151b9..b4dcb23 100644 --- a/mail_archives/static/src/xml/menu.xml +++ b/mail_archives/static/src/xml/menu.xml @@ -1,5 +1,6 @@ From 4fb100aaf5536a8f86b733e5ded0415a24452b1e Mon Sep 17 00:00:00 2001 From: x620 Date: Wed, 30 Mar 2016 13:32:17 +0500 Subject: [PATCH 041/148] Restored functionality: toggle starred, mark as read, reply etc. --- mail_archives/static/src/js/archives.js | 784 ++++++++++++++++++++++-- 1 file changed, 721 insertions(+), 63 deletions(-) diff --git a/mail_archives/static/src/js/archives.js b/mail_archives/static/src/js/archives.js index 08327bd..7872751 100644 --- a/mail_archives/static/src/js/archives.js +++ b/mail_archives/static/src/js/archives.js @@ -1,36 +1,101 @@ odoo.define('mail_archives.archives', function (require) { "use strict"; -// var core = require('web.core'); -// var utils = require('web.utils'); -// var Widget = require('web.Widget'); - var bus = require('bus.bus').bus; +var config = require('web.config'); var core = require('web.core'); var data = require('web.data'); -var chat_manager = require('mail.chat_manager'); +var Model = require('web.Model'); var session = require('web.session'); var time = require('web.time'); +var web_client = require('web.web_client'); var _t = core._t; var LIMIT = 100; +var preview_msg_max_size = 350; // optimal for native english speakers -var Model = require('web.Model'); var MessageModel = new Model('mail.message', session.context); +var ChannelModel = new Model('mail.channel', session.context); +var UserModel = new Model('res.users', session.context); +var PartnerModel = new Model('res.partner', session.context); +var chat_manager = require('mail.chat_manager'); // Private model //---------------------------------------------------------------------------------- var messages = []; var channels = []; +var channels_preview_def; +var channel_defs = {}; var chat_unread_counter = 0; var unread_conversation_counter = 0; -var needaction_counter = 0; -var mention_partner_suggestions = []; var emojis = []; var emoji_substitutions = {}; +var needaction_counter = 0; +var mention_partner_suggestions = []; var discuss_ids = {}; +var global_unread_counter = 0; +var pinned_dm_partners = []; // partner_ids we have a pinned DM with var client_action_open = false; +// Utils: Window focus/unfocus, beep, tab title, parsing html strings +//---------------------------------------------------------------------------------- +var beep = (function () { + if (typeof(Audio) === "undefined") { + return function () {}; + } + var audio = new Audio(); + var ext = audio.canPlayType("audio/ogg; codecs=vorbis") ? ".ogg" : ".mp3"; + audio.src = session.url("/mail/static/src/audio/ting" + ext); + return function () { audio.play(); }; +})(); + +bus.on("window_focus", null, function() { + global_unread_counter = 0; + web_client.set_title_part("_chat"); +}); + +// to do: move this to mail.utils +function send_native_notification(title, content) { + var notification = new Notification(title, {body: content, icon: "/mail/static/src/img/odoo_o.png"}); + notification.onclick = function (e) { + window.focus(); + if (this.cancel) { + this.cancel(); + } else if (this.close) { + this.close(); + } + }; +} + +function notify_incoming_message (msg, options) { + if (bus.is_odoo_focused() && options.is_displayed) { + // no need to notify + return; + } + var title = _t('New message'); + if (msg.author_id[1]) { + title = _.escape(msg.author_id[1]); + } + var content = parse_and_transform(msg.body, strip_html).substr(0, preview_msg_max_size); + + if (!bus.is_odoo_focused()) { + global_unread_counter++; + var tab_title = _.str.sprintf(_t("%d Messages"), global_unread_counter); + web_client.set_title_part("_chat", tab_title); + } + + if (Notification && Notification.permission === "granted") { + if (bus.is_master) { + send_native_notification(title, content); + } + } else { + web_client.do_notify(title, content); + if (bus.is_master) { + beep(); + } + } +} + function parse_and_transform(html_string, transform_function) { var open_token = "OPEN" + Date.now(); var string = html_string.replace(/</g, open_token); @@ -61,6 +126,20 @@ function add_link (node, transform_children) { return node.outerHTML; } +function strip_html (node, transform_children) { + if (node.nodeType === 3) return node.data; // text node + if (node.tagName === "BR") return "\n"; + return transform_children(); +} + +function inline (node, transform_children) { + if (node.nodeType === 3) return node.data; + if (node.tagName === "BR") return " "; + if (node.tagName.match(/^(A|P|DIV|PRE|BLOCKQUOTE)$/)) return transform_children(); + node.innerHTML = transform_children(); + return node.outerHTML; +} + // Message and channel manipulation helpers //---------------------------------------------------------------------------------- @@ -68,8 +147,9 @@ function add_link (node, transform_children) { function add_message (data, options) { options = options || {}; var msg = _.findWhere(messages, { id: data.id }); + if (!msg) { - msg = make_message(data); + msg = chat_manager.make_message(data); // Keep the array ordered by id when inserting the new message messages.splice(_.sortedIndex(messages, msg, 'id'), 0, msg); _.each(msg.channel_ids, function (channel_id) { @@ -94,7 +174,7 @@ function add_message (data, options) { } var query = {is_displayed: false}; chat_manager.bus.trigger('anyone_listening', channel, query); - // notify_incoming_message(msg, query); + notify_incoming_message(msg, query); } } } @@ -156,7 +236,7 @@ function make_message (data) { Object.defineProperties(msg, { is_starred: property_descr("channel_starred"), is_needaction: property_descr("channel_inbox"), - is_archive: property_descr("channel_archive"), + is_archive: property_descr("channel_archive") }); if (_.contains(data.needaction_partner_ids, session.partner_id)) { @@ -234,18 +314,84 @@ function add_channel (data, options) { return channel; } +function make_channel (data, options) { + var channel = { + id: data.id, + name: data.name, + type: data.type || data.channel_type, + all_history_loaded: false, + uuid: data.uuid, + is_detached: data.is_minimized, + is_folded: data.state === "folded", + autoswitch: 'autoswitch' in options ? options.autoswitch : true, + hidden: options.hidden, + display_needactions: options.display_needactions, + mass_mailing: data.mass_mailing, + needaction_counter: data.message_needaction_counter || 0, + unread_counter: 0, + last_seen_message_id: data.seen_message_id, + cache: {'[]': { + all_history_loaded: false, + loaded: false, + messages: [], + }}, + }; + if (channel.type === "channel" && data.public !== "private") { + channel.type = "public"; + } else if (data.public === "private") { + channel.type = "private"; + } + if (_.size(data.direct_partner) > 0) { + channel.type = "dm"; + channel.name = data.direct_partner[0].name; + channel.direct_partner_id = data.direct_partner[0].id; + channel.status = data.direct_partner[0].im_status; + pinned_dm_partners.push(channel.direct_partner_id); + bus.update_option('bus_presence_partner_ids', pinned_dm_partners); + } else if ('anonymous_name' in data) { + channel.name = data.anonymous_name; + } + channel.is_chat = !channel.type.match(/^(public|private|static)$/); + if (data.message_unread_counter) { + update_channel_unread_counter(channel, data.message_unread_counter); + } + return channel; +} + +function remove_channel (channel) { + if (!channel) { return; } + if (channel.type === 'dm') { + var index = pinned_dm_partners.indexOf(channel.direct_partner_id); + if (index > -1) { + pinned_dm_partners.splice(index, 1); + bus.update_option('bus_presence_partner_ids', pinned_dm_partners); + } + } + channels = _.without(channels, channel); + delete channel_defs[channel.id]; +} + function get_channel_cache (channel, domain) { var stringified_domain = JSON.stringify(domain || []); if (!channel.cache[stringified_domain]) { channel.cache[stringified_domain] = { all_history_loaded: false, loaded: false, - messages: [] + messages: [], }; } return channel.cache[stringified_domain]; } +function invalidate_caches(channel_ids) { + _.each(channel_ids, function (channel_id) { + var channel = chat_manager.get_channel(channel_id); + if (channel) { + channel.cache = { '[]': channel.cache['[]']}; + } + }); +} + function add_to_cache(message, domain) { _.each(message.channel_ids, function (channel_id) { var channel = chat_manager.get_channel(channel_id); @@ -259,6 +405,15 @@ function add_to_cache(message, domain) { }); } +function remove_message_from_channel (channel_id, message) { + message.channel_ids = _.without(message.channel_ids, channel_id); + var channel = _.findWhere(channels, { id: channel_id }); + _.each(channel.cache, function (cache) { + cache.messages = _.without(cache.messages, message); + }); +} + +// options: domain, load_more function fetch_from_channel (channel, options) { options = options || {}; var domain = @@ -290,6 +445,31 @@ function fetch_from_channel (channel, options) { }); } +// options: force_fetch +function fetch_document_messages (ids, options) { + var loaded_msgs = _.filter(messages, function (message) { + return _.contains(ids, message.id); + }); + var loaded_msg_ids = _.pluck(loaded_msgs, 'id'); + + options = options || {}; + if (options.force_fetch || _.difference(ids.slice(0, LIMIT), loaded_msg_ids).length) { + var ids_to_load = _.difference(ids, loaded_msg_ids).slice(0, LIMIT); + + return MessageModel.call('message_format', [ids_to_load]).then(function (msgs) { + var processed_msgs = []; + _.each(msgs, function (msg) { + processed_msgs.push(add_message(msg, {silent: true})); + }); + return _.sortBy(loaded_msgs.concat(processed_msgs), function (msg) { + return msg.date; + }); + }); + } else { + return $.when(loaded_msgs); + } +} + function update_channel_unread_counter (channel, counter) { if (channel.unread_counter > 0 && counter === 0) { unread_conversation_counter = Math.max(0, unread_conversation_counter-1); @@ -303,71 +483,549 @@ function update_channel_unread_counter (channel, counter) { chat_manager.bus.trigger("update_channel_unread_counter", channel); } -chat_manager.make_message = make_message; - -chat_manager.get_channel = function (id) { - return _.findWhere(channels, {id: id}); -}; +var channel_seen = _.throttle(function (channel) { + return ChannelModel.call('channel_seen', [[channel.id]], {}, {shadow: true}); +}, 3000); -chat_manager.get_messages = function (options) { - var channel; +// Notification handlers +// --------------------------------------------------------------------------------- +function on_notification (notifications) { + // sometimes, the web client receives unsubscribe notification and an extra + // notification on that channel. This is then followed by an attempt to + // rejoin the channel that we just left. The next few lines remove the + // extra notification to prevent that situation to occur. + var unsubscribed_notif = _.find(notifications, function (notif) { + return notif[1].info === "unsubscribe"; + }); + if (unsubscribed_notif) { + notifications = _.reject(notifications, function (notif) { + return notif[0][1] === "mail.channel" && notif[0][2] === unsubscribed_notif[1].id; + }); + } + _.each(notifications, function (notification) { + var model = notification[0][1]; + if (model === 'ir.needaction') { + // new message in the inbox + on_needaction_notification(notification[1]); + } else if (model === 'mail.channel') { + // new message in a channel + on_channel_notification(notification[1]); + } else if (model === 'res.partner') { + // channel joined/left, message marked as read/(un)starred, chat open/closed + on_partner_notification(notification[1]); + } else if (model === 'bus.presence') { + // update presence of users + on_presence_notification(notification[1]); + } + }); +} - if ('channel_id' in options && options.load_more) { - // get channel messages, force load_more - channel = this.get_channel(options.channel_id); - return fetch_from_channel(channel, {domain: options.domain || {}, load_more: true}); - } - if ('channel_id' in options) { - // channel message, check in cache first - channel = this.get_channel(options.channel_id); - var channel_cache = get_channel_cache(channel, options.domain); - if (channel_cache.loaded) { - return $.when(channel_cache.messages); - } else { - return fetch_from_channel(channel, {domain: options.domain}); +function on_needaction_notification (message) { + message = add_message(message, { + channel_id: 'channel_inbox', + show_notification: true, + increment_unread: true, + }); + invalidate_caches(message.channel_ids); + needaction_counter++; + _.each(message.channel_ids, function (channel_id) { + var channel = chat_manager.get_channel(channel_id); + if (channel) { + channel.needaction_counter++; } + }); + chat_manager.bus.trigger('update_needaction', needaction_counter); +} + +function on_channel_notification (message) { + var def; + var channel_already_in_cache = true; + if (message.channel_ids.length === 1) { + channel_already_in_cache = !!chat_manager.get_channel(message.channel_ids[0]); + def = chat_manager.join_channel(message.channel_ids[0], {autoswitch: false}); + } else { + def = $.when(); } - if ('ids' in options) { - // get messages from their ids (chatter is the main use case) - return fetch_document_messages(options.ids, options).then(function(result) { - chat_manager.mark_as_read(options.ids); - return result; - }); + def.then(function () { + // don't increment unread if channel wasn't in cache yet as its unread counter has just been fetched + add_message(message, { show_notification: true, increment_unread: channel_already_in_cache }); + invalidate_caches(message.channel_ids); + }); +} + +function on_partner_notification (data) { + if (data.info === "unsubscribe") { + remove_channel(chat_manager.get_channel(data.id)); + chat_manager.bus.trigger("unsubscribe_from_channel", data.id); + } else if (data.type === 'toggle_star') { + on_toggle_star_notification(data); + } else if (data.type === 'mark_as_read') { + on_mark_as_read_notification(data); + } else if (data.type === 'mark_as_unread') { + on_mark_as_unread_notification(data); + } else if (data.info === 'channel_seen') { + on_channel_seen_notification(data); + } else { + on_chat_session_notification(data); } - if ('model' in options && 'res_id' in options) { - // get messages for a chatter, when it doesn't know the ids (use - // case is when using the full composer) - var domain = [['model', '=', options.model], ['res_id', '=', options.res_id]]; - MessageModel.call('message_fetch', [domain], {limit: 30}).then(function (msgs) { - return _.map(msgs, add_message); +} + +function on_toggle_star_notification (data) { + _.each(data.message_ids, function (msg_id) { + var message = _.findWhere(messages, { id: msg_id }); + if (message) { + invalidate_caches(message.channel_ids); + message.is_starred = data.starred; + if (!message.is_starred) { + remove_message_from_channel("channel_starred", message); + } else { + add_to_cache(message, []); + var channel_starred = chat_manager.get_channel('channel_starred'); + channel_starred.cache = _.pick(channel_starred.cache, "[]"); + } + chat_manager.bus.trigger('update_message', message); + } + }); +} + +function on_mark_as_read_notification (data) { + _.each(data.message_ids, function (msg_id) { + var message = _.findWhere(messages, { id: msg_id }); + if (message) { + invalidate_caches(message.channel_ids); + remove_message_from_channel("channel_inbox", message); + chat_manager.bus.trigger('update_message', message); + } + }); + if (data.channel_ids) { + _.each(data.channel_ids, function (channel_id) { + var channel = chat_manager.get_channel(channel_id); + if (channel) { + channel.needaction_counter = Math.max(channel.needaction_counter - data.message_ids.length, 0); + } + }); + } else { // if no channel_ids specified, this is a 'mark all read' in the inbox + _.each(channels, function (channel) { + channel.needaction_counter = 0; }); } -}; + needaction_counter = Math.max(needaction_counter - data.message_ids.length, 0); + chat_manager.bus.trigger('update_needaction', needaction_counter); +} -chat_manager.toggle_star_status = function (message_id) { - var msg = _.findWhere(messages, { id: message_id }); - return MessageModel.call('set_message_starred', [[message_id], !msg.is_starred]); -}; - -chat_manager.mark_channel_as_seen = function (channel) { - if (channel.unread_counter > 0 && channel.type !== 'static') { - update_channel_unread_counter(channel, 0); - channel_seen(channel); +function on_mark_as_unread_notification (data) { + _.each(data.message_ids, function (message_id) { + var message = _.findWhere(messages, { id: message_id }); + if (message) { + invalidate_caches(message.channel_ids); + add_channel_to_message(message, 'channel_inbox'); + add_to_cache(message, []); + } + }); + var channel_inbox = chat_manager.get_channel('channel_inbox'); + channel_inbox.cache = _.pick(channel_inbox.cache, "[]"); + + _.each(data.channel_ids, function (channel_id) { + var channel = chat_manager.get_channel(channel_id); + if (channel) { + channel.needaction_counter += data.message_ids.length; + } + }); + needaction_counter += data.message_ids.length; + chat_manager.bus.trigger('update_needaction', needaction_counter); +} + +function on_channel_seen_notification (data) { + var channel = chat_manager.get_channel(data.id); + if (channel) { + channel.last_seen_message_id = data.last_message_id; + if (channel.unread_counter) { + update_channel_unread_counter(channel, 0); + } + } +} + +function on_chat_session_notification (chat_session) { + var channel; + if ((chat_session.channel_type === "channel") && (chat_session.state === "open")) { + add_channel(chat_session, {autoswitch: false}); + if (!chat_session.is_minimized && chat_session.info !== 'creation') { + web_client.do_notify(_t("Invitation"), _t("You have been invited to: ") + chat_session.name); + } + } + // partner specific change (open a detached window for example) + if ((chat_session.state === "open") || (chat_session.state === "folded")) { + channel = chat_session.is_minimized && chat_manager.get_channel(chat_session.id); + if (channel) { + channel.is_detached = true; + channel.is_folded = (chat_session.state === "folded"); + chat_manager.bus.trigger("open_chat", channel); + } + } else if (chat_session.state === "closed") { + channel = chat_manager.get_channel(chat_session.id); + if (channel) { + channel.is_detached = false; + chat_manager.bus.trigger("close_chat", channel, {keep_open_if_unread: true}); + } + } +} + +function on_presence_notification (data) { + var dm = chat_manager.get_dm_from_partner_id(data.id); + if (dm) { + dm.status = data.im_status; + chat_manager.bus.trigger('update_dm_presence', dm); } -}; +} + +// Public interface +//---------------------------------------------------------------------------------- + // these two functions are exposed for extensibility purposes and shouldn't be called by other modules +chat_manager.make_message = make_message; +chat_manager.make_channel = make_channel; + +chat_manager.post_message = function (data, options) { + options = options || {}; + var msg = { + partner_ids: data.partner_ids, + body: _.str.trim(data.content), + attachment_ids: data.attachment_ids, + }; + if ('subject' in data) { + msg.subject = data.subject; + } + if ('channel_id' in options) { + // post a message in a channel + return ChannelModel.call('message_post', [options.channel_id], _.extend(msg, { + message_type: 'comment', + content_subtype: 'html', + subtype: 'mail.mt_comment', + })); + } + if ('model' in options && 'res_id' in options) { + // post a message in a chatter + _.extend(msg, { + content_subtype: data.content_subtype, + context: data.context, + message_type: data.message_type, + subtype: data.subtype, + subtype_id: data.subtype_id, + }); + + var model = new Model(options.model); + return model.call('message_post', [options.res_id], msg).then(function (msg_id) { + return MessageModel.call('message_format', [msg_id]).then(function (msgs) { + msgs[0].model = options.model; + msgs[0].res_id = options.res_id; + add_message(msgs[0]); + }); + }); + } + }; + +chat_manager.get_message = function (id) { + return _.findWhere(messages, {id: id}); + }; +chat_manager.get_messages = function (options) { + var channel; + if ('channel_id' in options && options.load_more) { + // get channel messages, force load_more + channel = this.get_channel(options.channel_id); + return fetch_from_channel(channel, {domain: options.domain || {}, load_more: true}); + } + if ('channel_id' in options) { + // channel message, check in cache first + channel = this.get_channel(options.channel_id); + var channel_cache = get_channel_cache(channel, options.domain); + if (channel_cache.loaded) { + return $.when(channel_cache.messages); + } else { + return fetch_from_channel(channel, {domain: options.domain}); + } + } + if ('ids' in options) { + // get messages from their ids (chatter is the main use case) + return fetch_document_messages(options.ids, options).then(function(result) { + chat_manager.mark_as_read(options.ids); + return result; + }); + } + if ('model' in options && 'res_id' in options) { + // get messages for a chatter, when it doesn't know the ids (use + // case is when using the full composer) + var domain = [['model', '=', options.model], ['res_id', '=', options.res_id]]; + MessageModel.call('message_fetch', [domain], {limit: 30}).then(function (msgs) { + return _.map(msgs, add_message); + }); + } + }; +chat_manager.toggle_star_status = function (message_id) { + var msg = _.findWhere(messages, { id: message_id }); + + return MessageModel.call('set_message_starred', [[message_id], !msg.is_starred]); + }; +chat_manager.unstar_all = function () { + return MessageModel.call('unstar_all', [[]], {}); + }; +chat_manager.mark_as_read = function (message_ids) { + var ids = _.filter(message_ids, function (id) { + var message = _.findWhere(messages, {id: id}); + // If too many messages, not all are fetched, and some might not be found + return !message || message.is_needaction; + }); + if (ids.length) { + return MessageModel.call('set_message_done', [ids]); + } else { + return $.when(); + } + }; chat_manager.mark_all_as_read = function (channel, domain) { - if ((channel.id === "channel_inbox" && needaction_counter) || (channel && channel.needaction_counter)) { - return MessageModel.call('mark_all_as_read', [], {channel_ids: channel.id !== "channel_inbox" ? [channel.id] : [], domain: domain}); + if ((channel.id === "channel_inbox" && needaction_counter) || (channel && channel.needaction_counter)) { + return MessageModel.call('mark_all_as_read', [], {channel_ids: channel.id !== "channel_inbox" ? [channel.id] : [], domain: domain}); + } + return $.when(); + }; +chat_manager.undo_mark_as_read = function (message_ids, channel) { + return MessageModel.call('mark_as_unread', [message_ids, [channel.id]]); + }; +chat_manager.mark_channel_as_seen = function (channel) { + if (channel.unread_counter > 0 && channel.type !== 'static') { + update_channel_unread_counter(channel, 0); + channel_seen(channel); + } + }; + +chat_manager.get_channels = function () { + return _.clone(channels); + }; + +chat_manager.get_channel = function (id) { + return _.findWhere(channels, {id: id}); + }; + +chat_manager.get_dm_from_partner_id = function (partner_id) { + return _.findWhere(channels, {direct_partner_id: partner_id}); + }; + +chat_manager.all_history_loaded = function (channel, domain) { + return get_channel_cache(channel, domain).all_history_loaded; + }; + +chat_manager.get_mention_partner_suggestions = function (channel) { + if (!channel) { + return mention_partner_suggestions; + } + if (!channel.members_deferred) { + channel.members_deferred = ChannelModel + .call("channel_fetch_listeners", [channel.uuid], {}, {shadow: true}) + .then(function (members) { + var suggestions = []; + _.each(mention_partner_suggestions, function (partners) { + suggestions.push(_.filter(partners, function (partner) { + return !_.findWhere(members, { id: partner.id }); + })); + }); + + return [members]; + }); + } + return channel.members_deferred; + }; + +chat_manager.get_emojis = function() { + return emojis; + }; + +chat_manager.get_needaction_counter = function () { + return needaction_counter; + }; +chat_manager.get_chat_unread_counter = function () { + return chat_unread_counter; + }; +chat_manager.get_unread_conversation_counter = function () { + return unread_conversation_counter; + }; + +chat_manager.get_last_seen_message = function (channel) { + if (channel.last_seen_message_id) { + var messages = channel.cache['[]'].messages; + var msg = _.findWhere(messages, {id: channel.last_seen_message_id}); + if (msg) { + var i = _.sortedIndex(messages, msg, 'id') + 1; + while (i < messages.length && (messages[i].is_author || messages[i].is_system_notification)) { + msg = messages[i]; + i++; + } + return msg; + } + } + }; + +chat_manager.get_discuss_ids = function () { + return discuss_ids; } - return $.when(); -}; + +chat_manager.detach_channel = function (channel) { + return ChannelModel.call("channel_minimize", [channel.uuid, true], {}, {shadow: true}); + }; +chat_manager.remove_chatter_messages = function (model) { + messages = _.reject(messages, function (message) { + return message.channel_ids.length === 0 && message.model === model; + }); + }; +chat_manager.bus = new core.Bus(); + +chat_manager.create_channel = function (name, type) { + var method = type === "dm" ? "channel_get" : "channel_create"; + var args = type === "dm" ? [[name]] : [name, type]; + + return ChannelModel + .call(method, args) + .then(add_channel); + }; +chat_manager.join_channel = function (channel_id, options) { + if (channel_id in channel_defs) { + // prevents concurrent calls to channel_join_and_get_info + return channel_defs[channel_id]; + } + var channel = this.get_channel(channel_id); + if (channel) { + // channel already joined + channel_defs[channel_id] = $.when(channel); + } else { + channel_defs[channel_id] = ChannelModel + .call('channel_join_and_get_info', [[channel_id]]) + .then(function (result) { + return add_channel(result, options); + }); + } + return channel_defs[channel_id]; + }; +chat_manager.open_and_detach_dm = function (partner_id) { + return ChannelModel.call('channel_get_and_minimize', [[partner_id]]).then(add_channel); + }; +chat_manager.open_channel = function (channel) { + chat_manager.bus.trigger(client_action_open ? 'open_channel' : 'detach_channel', channel); + }; + +chat_manager.unsubscribe = function (channel) { + var def; + if (_.contains(['public', 'private'], channel.type)) { + def = ChannelModel.call('action_unfollow', [[channel.id]]); + } else { + def = ChannelModel.call('channel_pin', [channel.uuid, false]); + } + return def.then(function () { + remove_channel(channel); + }); + }; +chat_manager.close_chat_session = function (channel_id) { + var channel = this.get_channel(channel_id); + ChannelModel.call("channel_fold", [], {uuid : channel.uuid, state : "closed"}, {shadow: true}); + }; +chat_manager.fold_channel = function (channel_id, folded) { + var args = { + uuid: this.get_channel(channel_id).uuid, + }; + if (_.isBoolean(folded)) { + args.state = folded ? 'folded' : 'open'; + } + return ChannelModel.call("channel_fold", [], args, {shadow: true}); + }; + /** + * Special redirection handling for given model and id + * + * If the model is res.partner, and there is a user associated with this + * partner which isn't the current user, open the DM with this user. + * Otherwhise, open the record's form view, if this is not the current user's. + */ +chat_manager.redirect = function (res_model, res_id, dm_redirection_callback) { + var self = this; + var redirect_to_document = function (res_model, res_id, view_id) { + web_client.do_action({ + type:'ir.actions.act_window', + view_type: 'form', + view_mode: 'form', + res_model: res_model, + views: [[view_id || false, 'form']], + res_id: res_id, + }); + }; + if (res_model === "res.partner") { + var domain = [["partner_id", "=", res_id]]; + UserModel.call("search", [domain]).then(function (user_ids) { + if (user_ids.length && user_ids[0] !== session.uid) { + self.create_channel(res_id, 'dm').then(dm_redirection_callback || function () {}); + } else if (!user_ids.length) { + redirect_to_document(res_model, res_id); + } + }); + } else { + new Model(res_model).call('get_formview_id', [res_id, session.context]).then(function (view_id) { + redirect_to_document(res_model, res_id, view_id); + }); + } + }; + +chat_manager.get_channels_preview = function (channels) { + var channels_preview = _.map(channels, function (channel) { + var info = _.pick(channel, 'id', 'is_chat', 'name', 'status', 'unread_counter'); + info.last_message = _.last(channel.cache['[]'].messages); + if (!info.is_chat) { + info.image_src = '/web/image/mail.channel/'+channel.id+'/image_small'; + } else if (channel.direct_partner_id) { + info.image_src = '/web/image/res.partner/'+channel.direct_partner_id+'/image_small'; + } else { + info.image_src = '/mail/static/src/img/smiley/avatar.jpg'; + } + return info; + }); + var missing_channels = _.where(channels_preview, {last_message: undefined}); + if (!channels_preview_def) { + if (missing_channels.length) { + var missing_channel_ids = _.pluck(missing_channels, 'id'); + channels_preview_def = ChannelModel.call('channel_fetch_preview', [missing_channel_ids], {}, {shadow: true}); + } else { + channels_preview_def = $.when(); + } + } + return channels_preview_def.then(function (channels) { + _.each(missing_channels, function (channel_preview) { + var channel = _.findWhere(channels, {id: channel_preview.id}); + if (channel) { + channel_preview.last_message = add_message(channel.last_message); + } + }); + return _.filter(channels_preview, function (channel) { + return channel.last_message; // remove empty channels + }); + }); + }; +chat_manager.get_message_body_preview = function (message_body) { + return parse_and_transform(message_body, inline); + }; + +chat_manager.search_partner = function (search_val, limit) { + return PartnerModel.call('im_search', [search_val, limit || 20], {}, {shadow: true}).then(function(result) { + var values = []; + _.each(result, function(user) { + var escaped_name = _.escape(user.name); + values.push(_.extend(user, { + 'value': escaped_name, + 'label': escaped_name, + })); + }); + return values; + }); + }; + +chat_manager.send_native_notification = send_native_notification; chat_manager.bus.on('client_action_open', null, function (open) { client_action_open = open; }); - // Initialization // --------------------------------------------------------------------------------- function init () { @@ -408,19 +1066,19 @@ function init () { var load_menu_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_menu_root_chat"], {}, {shadow: true}); var load_action_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_action_client_chat"], {}, {shadow: true}); - // bus.on('notification', null, on_notification); + bus.on('notification', null, on_notification); return $.when(load_menu_id, load_action_id, load_channels, load_emojis).then(function (menu_id, action_id) { discuss_ids = { menu_id: menu_id, - action_id: action_id + action_id: action_id, }; bus.start_polling(); }); } - chat_manager.is_ready = init(); +console.log('q2w'); return chat_manager; }); From af6a4ce90db54bb78fb4654af1fe2591a50183e5 Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 31 Mar 2016 12:20:02 +0500 Subject: [PATCH 042/148] Converted functions to methods of class in order to be able to inherit class and override methods. --- mail_archives/static/src/js/archives.js | 1079 +-------------------- mail_archives/static/src/js/base.js | 1131 +++++++++++++++++++++++ mail_archives/views/templates.xml | 1 + 3 files changed, 1133 insertions(+), 1078 deletions(-) create mode 100644 mail_archives/static/src/js/base.js diff --git a/mail_archives/static/src/js/archives.js b/mail_archives/static/src/js/archives.js index 7872751..a01dd04 100644 --- a/mail_archives/static/src/js/archives.js +++ b/mail_archives/static/src/js/archives.js @@ -1,1084 +1,7 @@ odoo.define('mail_archives.archives', function (require) { "use strict"; -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 _t = core._t; -var LIMIT = 100; -var preview_msg_max_size = 350; // optimal for native english speakers - -var MessageModel = new Model('mail.message', session.context); -var ChannelModel = new Model('mail.channel', session.context); -var UserModel = new Model('res.users', session.context); -var PartnerModel = new Model('res.partner', session.context); -var chat_manager = require('mail.chat_manager'); - -// Private model -//---------------------------------------------------------------------------------- -var messages = []; -var channels = []; -var channels_preview_def; -var channel_defs = {}; -var chat_unread_counter = 0; -var unread_conversation_counter = 0; -var emojis = []; -var emoji_substitutions = {}; -var needaction_counter = 0; -var mention_partner_suggestions = []; -var discuss_ids = {}; -var global_unread_counter = 0; -var pinned_dm_partners = []; // partner_ids we have a pinned DM with -var client_action_open = false; - -// Utils: Window focus/unfocus, beep, tab title, parsing html strings -//---------------------------------------------------------------------------------- -var beep = (function () { - if (typeof(Audio) === "undefined") { - return function () {}; - } - var audio = new Audio(); - var ext = audio.canPlayType("audio/ogg; codecs=vorbis") ? ".ogg" : ".mp3"; - audio.src = session.url("/mail/static/src/audio/ting" + ext); - return function () { audio.play(); }; -})(); - -bus.on("window_focus", null, function() { - global_unread_counter = 0; - web_client.set_title_part("_chat"); -}); - -// to do: move this to mail.utils -function send_native_notification(title, content) { - var notification = new Notification(title, {body: content, icon: "/mail/static/src/img/odoo_o.png"}); - notification.onclick = function (e) { - window.focus(); - if (this.cancel) { - this.cancel(); - } else if (this.close) { - this.close(); - } - }; -} - -function notify_incoming_message (msg, options) { - if (bus.is_odoo_focused() && options.is_displayed) { - // no need to notify - return; - } - var title = _t('New message'); - if (msg.author_id[1]) { - title = _.escape(msg.author_id[1]); - } - var content = parse_and_transform(msg.body, strip_html).substr(0, preview_msg_max_size); - - if (!bus.is_odoo_focused()) { - global_unread_counter++; - var tab_title = _.str.sprintf(_t("%d Messages"), global_unread_counter); - web_client.set_title_part("_chat", tab_title); - } - - if (Notification && Notification.permission === "granted") { - if (bus.is_master) { - send_native_notification(title, content); - } - } else { - web_client.do_notify(title, content); - if (bus.is_master) { - beep(); - } - } -} - -function parse_and_transform(html_string, transform_function) { - var open_token = "OPEN" + Date.now(); - var string = html_string.replace(/</g, open_token); - var children = $('
').html(string).contents(); - return _parse_and_transform(children, transform_function) - .replace(new RegExp(open_token, "g"), "<"); -} - -function _parse_and_transform(nodes, transform_function) { - return _.map(nodes, function (node) { - return transform_function(node, function () { - return _parse_and_transform(node.childNodes, transform_function); - }); - }).join(""); -} - -// suggested regexp (gruber url matching regexp, adapted to js, see https://gist.github.com/gruber/8891611) -var url_regexp = /\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/gi; -function add_link (node, transform_children) { - if (node.nodeType === 3) { // text node - return node.data.replace(url_regexp, function (url) { - var href = (!/^(f|ht)tps?:\/\//i.test(url)) ? "http://" + url : url; - return '' + url + ''; - }); - } - if (node.tagName === "A") return node.outerHTML; - node.innerHTML = transform_children(); - return node.outerHTML; -} - -function strip_html (node, transform_children) { - if (node.nodeType === 3) return node.data; // text node - if (node.tagName === "BR") return "\n"; - return transform_children(); -} - -function inline (node, transform_children) { - if (node.nodeType === 3) return node.data; - if (node.tagName === "BR") return " "; - if (node.tagName.match(/^(A|P|DIV|PRE|BLOCKQUOTE)$/)) return transform_children(); - node.innerHTML = transform_children(); - return node.outerHTML; -} - -// Message and channel manipulation helpers -//---------------------------------------------------------------------------------- - -// options: channel_id, silent -function add_message (data, options) { - options = options || {}; - var msg = _.findWhere(messages, { id: data.id }); - - if (!msg) { - msg = chat_manager.make_message(data); - // Keep the array ordered by id when inserting the new message - messages.splice(_.sortedIndex(messages, msg, 'id'), 0, msg); - _.each(msg.channel_ids, function (channel_id) { - var channel = chat_manager.get_channel(channel_id); - if (channel) { - add_to_cache(msg, []); - if (options.domain && options.domain !== []) { - add_to_cache(msg, options.domain); - } - if (channel.hidden) { - channel.hidden = false; - chat_manager.bus.trigger('new_channel', channel); - } - if (channel.type !== 'static' && !msg.is_author && !msg.is_system_notification) { - if (options.increment_unread) { - update_channel_unread_counter(channel, channel.unread_counter+1); - } - if (channel.is_chat && options.show_notification) { - if (!client_action_open && config.device.size_class !== config.device.SIZES.XS) { - // automatically open chat window - chat_manager.bus.trigger('open_chat', channel, { passively: true }); - } - var query = {is_displayed: false}; - chat_manager.bus.trigger('anyone_listening', channel, query); - notify_incoming_message(msg, query); - } - } - } - }); - if (!options.silent) { - chat_manager.bus.trigger('new_message', msg); - } - } else if (options.domain && options.domain !== []) { - add_to_cache(msg, options.domain); - } - return msg; -} - -function make_message (data) { - var msg = { - id: data.id, - author_id: data.author_id, - body_short: data.body_short || "", - body: data.body || "", - date: moment(time.str_to_datetime(data.date)), - message_type: data.message_type, - subtype_description: data.subtype_description, - is_author: data.author_id && data.author_id[0] === session.partner_id, - is_note: data.is_note, - is_system_notification: data.message_type === 'notification' && data.model === 'mail.channel', - attachment_ids: data.attachment_ids, - subject: data.subject, - email_from: data.email_from, - record_name: data.record_name, - tracking_value_ids: data.tracking_value_ids, - channel_ids: data.channel_ids, - model: data.model, - res_id: data.res_id, - url: session.url("/mail/view?message_id=" + data.id), - }; - - _.each(_.keys(emoji_substitutions), function (key) { - var escaped_key = String(key).replace(/([.*+?=^!:${}()|[\]\/\\])/g, '\\$1'); - var regexp = new RegExp("(?:^|\\s|<[a-z]*>)(" + escaped_key + ")(?=\\s|$|)", "g"); - msg.body = msg.body.replace(regexp, ' '+emoji_substitutions[key]+' '); - }); - - function property_descr(channel) { - return { - enumerable: true, - get: function () { - return _.contains(msg.channel_ids, channel); - }, - set: function (bool) { - if (bool) { - add_channel_to_message(msg, channel); - } else { - msg.channel_ids = _.without(msg.channel_ids, channel); - } - } - }; - } - - Object.defineProperties(msg, { - is_starred: property_descr("channel_starred"), - is_needaction: property_descr("channel_inbox"), - is_archive: property_descr("channel_archive") - }); - - if (_.contains(data.needaction_partner_ids, session.partner_id)) { - msg.is_needaction = true; - } - if (_.contains(data.starred_partner_ids, session.partner_id)) { - msg.is_starred = true; - } - msg.is_archive = true; - if (msg.model === 'mail.channel') { - var real_channels = _.without(msg.channel_ids, 'channel_inbox', 'channel_starred', 'channel_archive'); - var origin = real_channels.length === 1 ? real_channels[0] : undefined; - var channel = origin && chat_manager.get_channel(origin); - if (channel) { - msg.origin_id = origin; - msg.origin_name = channel.name; - } - } - - // Compute displayed author name or email - if ((!msg.author_id || !msg.author_id[0]) && msg.email_from) { - msg.mailto = msg.email_from; - } else { - msg.displayed_author = msg.author_id && msg.author_id[1] || - msg.email_from || _t('Anonymous'); - } - - // Don't redirect on author clicked of self-posted messages - msg.author_redirect = !msg.is_author; - - // Compute the avatar_url - if (msg.author_id && msg.author_id[0]) { - msg.avatar_src = "/web/image/res.partner/" + msg.author_id[0] + "/image_small"; - } else if (msg.message_type === 'email') { - msg.avatar_src = "/mail/static/src/img/email_icon.png"; - } else { - msg.avatar_src = "/mail/static/src/img/smiley/avatar.jpg"; - } - - // add anchor tags to urls - msg.body = parse_and_transform(msg.body, add_link); - - // Compute url of attachments - _.each(msg.attachment_ids, function(a) { - a.url = '/web/content/' + a.id + '?download=true'; - }); - - return msg; -} - -function add_channel_to_message (message, channel_id) { - message.channel_ids.push(channel_id); - message.channel_ids = _.uniq(message.channel_ids); -} - -function add_channel (data, options) { - options = typeof options === "object" ? options : {}; - var channel = chat_manager.get_channel(data.id); - if (channel) { - if (channel.is_folded !== (data.state === "folded")) { - channel.is_folded = (data.state === "folded"); - chat_manager.bus.trigger("channel_toggle_fold", channel); - } - } else { - channel = chat_manager.make_channel(data, options); - channels.push(channel); - channels = _.sortBy(channels, function (channel) { return channel.name.toLowerCase(); }); - if (!options.silent) { - chat_manager.bus.trigger("new_channel", channel); - } - if (channel.is_detached) { - chat_manager.bus.trigger("open_chat", channel); - } - } - return channel; -} - -function make_channel (data, options) { - var channel = { - id: data.id, - name: data.name, - type: data.type || data.channel_type, - all_history_loaded: false, - uuid: data.uuid, - is_detached: data.is_minimized, - is_folded: data.state === "folded", - autoswitch: 'autoswitch' in options ? options.autoswitch : true, - hidden: options.hidden, - display_needactions: options.display_needactions, - mass_mailing: data.mass_mailing, - needaction_counter: data.message_needaction_counter || 0, - unread_counter: 0, - last_seen_message_id: data.seen_message_id, - cache: {'[]': { - all_history_loaded: false, - loaded: false, - messages: [], - }}, - }; - if (channel.type === "channel" && data.public !== "private") { - channel.type = "public"; - } else if (data.public === "private") { - channel.type = "private"; - } - if (_.size(data.direct_partner) > 0) { - channel.type = "dm"; - channel.name = data.direct_partner[0].name; - channel.direct_partner_id = data.direct_partner[0].id; - channel.status = data.direct_partner[0].im_status; - pinned_dm_partners.push(channel.direct_partner_id); - bus.update_option('bus_presence_partner_ids', pinned_dm_partners); - } else if ('anonymous_name' in data) { - channel.name = data.anonymous_name; - } - channel.is_chat = !channel.type.match(/^(public|private|static)$/); - if (data.message_unread_counter) { - update_channel_unread_counter(channel, data.message_unread_counter); - } - return channel; -} - -function remove_channel (channel) { - if (!channel) { return; } - if (channel.type === 'dm') { - var index = pinned_dm_partners.indexOf(channel.direct_partner_id); - if (index > -1) { - pinned_dm_partners.splice(index, 1); - bus.update_option('bus_presence_partner_ids', pinned_dm_partners); - } - } - channels = _.without(channels, channel); - delete channel_defs[channel.id]; -} - -function get_channel_cache (channel, domain) { - var stringified_domain = JSON.stringify(domain || []); - if (!channel.cache[stringified_domain]) { - channel.cache[stringified_domain] = { - all_history_loaded: false, - loaded: false, - messages: [], - }; - } - return channel.cache[stringified_domain]; -} - -function invalidate_caches(channel_ids) { - _.each(channel_ids, function (channel_id) { - var channel = chat_manager.get_channel(channel_id); - if (channel) { - channel.cache = { '[]': channel.cache['[]']}; - } - }); -} - -function add_to_cache(message, domain) { - _.each(message.channel_ids, function (channel_id) { - var channel = chat_manager.get_channel(channel_id); - if (channel) { - var channel_cache = get_channel_cache(channel, domain); - var index = _.sortedIndex(channel_cache.messages, message, 'id'); - if (channel_cache.messages[index] !== message) { - channel_cache.messages.splice(index, 0, message); - } - } - }); -} - -function remove_message_from_channel (channel_id, message) { - message.channel_ids = _.without(message.channel_ids, channel_id); - var channel = _.findWhere(channels, { id: channel_id }); - _.each(channel.cache, function (cache) { - cache.messages = _.without(cache.messages, message); - }); -} - -// options: domain, load_more -function fetch_from_channel (channel, options) { - options = options || {}; - var domain = - (channel.id === "channel_inbox") ? [['needaction', '=', true]] : - (channel.id === "channel_starred") ? [['starred', '=', true]] : - (channel.id === "channel_archive") ? [] : - [['channel_ids', 'in', channel.id]]; - var cache = get_channel_cache(channel, options.domain); - - if (options.domain) { - domain = new data.CompoundDomain(domain, options.domain || []); - } - if (options.load_more) { - var min_message_id = cache.messages[0].id; - domain = new data.CompoundDomain([['id', '<', min_message_id]], domain); - } - - return MessageModel.call('message_fetch', [domain], {limit: LIMIT}).then(function (msgs) { - if (!cache.all_history_loaded) { - cache.all_history_loaded = msgs.length < LIMIT; - } - cache.loaded = true; - - _.each(msgs, function (msg) { - add_message(msg, {channel_id: channel.id, silent: true, domain: options.domain}); - }); - var channel_cache = get_channel_cache(channel, options.domain || []); - return channel_cache.messages; - }); -} - -// options: force_fetch -function fetch_document_messages (ids, options) { - var loaded_msgs = _.filter(messages, function (message) { - return _.contains(ids, message.id); - }); - var loaded_msg_ids = _.pluck(loaded_msgs, 'id'); - - options = options || {}; - if (options.force_fetch || _.difference(ids.slice(0, LIMIT), loaded_msg_ids).length) { - var ids_to_load = _.difference(ids, loaded_msg_ids).slice(0, LIMIT); - - return MessageModel.call('message_format', [ids_to_load]).then(function (msgs) { - var processed_msgs = []; - _.each(msgs, function (msg) { - processed_msgs.push(add_message(msg, {silent: true})); - }); - return _.sortBy(loaded_msgs.concat(processed_msgs), function (msg) { - return msg.date; - }); - }); - } else { - return $.when(loaded_msgs); - } -} - -function update_channel_unread_counter (channel, counter) { - if (channel.unread_counter > 0 && counter === 0) { - unread_conversation_counter = Math.max(0, unread_conversation_counter-1); - } else if (channel.unread_counter === 0 && counter > 0) { - unread_conversation_counter++; - } - if (channel.is_chat) { - chat_unread_counter = Math.max(0, chat_unread_counter - channel.unread_counter + counter); - } - channel.unread_counter = counter; - chat_manager.bus.trigger("update_channel_unread_counter", channel); -} - -var channel_seen = _.throttle(function (channel) { - return ChannelModel.call('channel_seen', [[channel.id]], {}, {shadow: true}); -}, 3000); - -// Notification handlers -// --------------------------------------------------------------------------------- -function on_notification (notifications) { - // sometimes, the web client receives unsubscribe notification and an extra - // notification on that channel. This is then followed by an attempt to - // rejoin the channel that we just left. The next few lines remove the - // extra notification to prevent that situation to occur. - var unsubscribed_notif = _.find(notifications, function (notif) { - return notif[1].info === "unsubscribe"; - }); - if (unsubscribed_notif) { - notifications = _.reject(notifications, function (notif) { - return notif[0][1] === "mail.channel" && notif[0][2] === unsubscribed_notif[1].id; - }); - } - _.each(notifications, function (notification) { - var model = notification[0][1]; - if (model === 'ir.needaction') { - // new message in the inbox - on_needaction_notification(notification[1]); - } else if (model === 'mail.channel') { - // new message in a channel - on_channel_notification(notification[1]); - } else if (model === 'res.partner') { - // channel joined/left, message marked as read/(un)starred, chat open/closed - on_partner_notification(notification[1]); - } else if (model === 'bus.presence') { - // update presence of users - on_presence_notification(notification[1]); - } - }); -} - -function on_needaction_notification (message) { - message = add_message(message, { - channel_id: 'channel_inbox', - show_notification: true, - increment_unread: true, - }); - invalidate_caches(message.channel_ids); - needaction_counter++; - _.each(message.channel_ids, function (channel_id) { - var channel = chat_manager.get_channel(channel_id); - if (channel) { - channel.needaction_counter++; - } - }); - chat_manager.bus.trigger('update_needaction', needaction_counter); -} - -function on_channel_notification (message) { - var def; - var channel_already_in_cache = true; - if (message.channel_ids.length === 1) { - channel_already_in_cache = !!chat_manager.get_channel(message.channel_ids[0]); - def = chat_manager.join_channel(message.channel_ids[0], {autoswitch: false}); - } else { - def = $.when(); - } - def.then(function () { - // don't increment unread if channel wasn't in cache yet as its unread counter has just been fetched - add_message(message, { show_notification: true, increment_unread: channel_already_in_cache }); - invalidate_caches(message.channel_ids); - }); -} - -function on_partner_notification (data) { - if (data.info === "unsubscribe") { - remove_channel(chat_manager.get_channel(data.id)); - chat_manager.bus.trigger("unsubscribe_from_channel", data.id); - } else if (data.type === 'toggle_star') { - on_toggle_star_notification(data); - } else if (data.type === 'mark_as_read') { - on_mark_as_read_notification(data); - } else if (data.type === 'mark_as_unread') { - on_mark_as_unread_notification(data); - } else if (data.info === 'channel_seen') { - on_channel_seen_notification(data); - } else { - on_chat_session_notification(data); - } -} - -function on_toggle_star_notification (data) { - _.each(data.message_ids, function (msg_id) { - var message = _.findWhere(messages, { id: msg_id }); - if (message) { - invalidate_caches(message.channel_ids); - message.is_starred = data.starred; - if (!message.is_starred) { - remove_message_from_channel("channel_starred", message); - } else { - add_to_cache(message, []); - var channel_starred = chat_manager.get_channel('channel_starred'); - channel_starred.cache = _.pick(channel_starred.cache, "[]"); - } - chat_manager.bus.trigger('update_message', message); - } - }); -} - -function on_mark_as_read_notification (data) { - _.each(data.message_ids, function (msg_id) { - var message = _.findWhere(messages, { id: msg_id }); - if (message) { - invalidate_caches(message.channel_ids); - remove_message_from_channel("channel_inbox", message); - chat_manager.bus.trigger('update_message', message); - } - }); - if (data.channel_ids) { - _.each(data.channel_ids, function (channel_id) { - var channel = chat_manager.get_channel(channel_id); - if (channel) { - channel.needaction_counter = Math.max(channel.needaction_counter - data.message_ids.length, 0); - } - }); - } else { // if no channel_ids specified, this is a 'mark all read' in the inbox - _.each(channels, function (channel) { - channel.needaction_counter = 0; - }); - } - needaction_counter = Math.max(needaction_counter - data.message_ids.length, 0); - chat_manager.bus.trigger('update_needaction', needaction_counter); -} - -function on_mark_as_unread_notification (data) { - _.each(data.message_ids, function (message_id) { - var message = _.findWhere(messages, { id: message_id }); - if (message) { - invalidate_caches(message.channel_ids); - add_channel_to_message(message, 'channel_inbox'); - add_to_cache(message, []); - } - }); - var channel_inbox = chat_manager.get_channel('channel_inbox'); - channel_inbox.cache = _.pick(channel_inbox.cache, "[]"); - - _.each(data.channel_ids, function (channel_id) { - var channel = chat_manager.get_channel(channel_id); - if (channel) { - channel.needaction_counter += data.message_ids.length; - } - }); - needaction_counter += data.message_ids.length; - chat_manager.bus.trigger('update_needaction', needaction_counter); -} - -function on_channel_seen_notification (data) { - var channel = chat_manager.get_channel(data.id); - if (channel) { - channel.last_seen_message_id = data.last_message_id; - if (channel.unread_counter) { - update_channel_unread_counter(channel, 0); - } - } -} - -function on_chat_session_notification (chat_session) { - var channel; - if ((chat_session.channel_type === "channel") && (chat_session.state === "open")) { - add_channel(chat_session, {autoswitch: false}); - if (!chat_session.is_minimized && chat_session.info !== 'creation') { - web_client.do_notify(_t("Invitation"), _t("You have been invited to: ") + chat_session.name); - } - } - // partner specific change (open a detached window for example) - if ((chat_session.state === "open") || (chat_session.state === "folded")) { - channel = chat_session.is_minimized && chat_manager.get_channel(chat_session.id); - if (channel) { - channel.is_detached = true; - channel.is_folded = (chat_session.state === "folded"); - chat_manager.bus.trigger("open_chat", channel); - } - } else if (chat_session.state === "closed") { - channel = chat_manager.get_channel(chat_session.id); - if (channel) { - channel.is_detached = false; - chat_manager.bus.trigger("close_chat", channel, {keep_open_if_unread: true}); - } - } -} - -function on_presence_notification (data) { - var dm = chat_manager.get_dm_from_partner_id(data.id); - if (dm) { - dm.status = data.im_status; - chat_manager.bus.trigger('update_dm_presence', dm); - } -} - -// Public interface -//---------------------------------------------------------------------------------- - // these two functions are exposed for extensibility purposes and shouldn't be called by other modules -chat_manager.make_message = make_message; -chat_manager.make_channel = make_channel; - -chat_manager.post_message = function (data, options) { - options = options || {}; - var msg = { - partner_ids: data.partner_ids, - body: _.str.trim(data.content), - attachment_ids: data.attachment_ids, - }; - if ('subject' in data) { - msg.subject = data.subject; - } - if ('channel_id' in options) { - // post a message in a channel - return ChannelModel.call('message_post', [options.channel_id], _.extend(msg, { - message_type: 'comment', - content_subtype: 'html', - subtype: 'mail.mt_comment', - })); - } - if ('model' in options && 'res_id' in options) { - // post a message in a chatter - _.extend(msg, { - content_subtype: data.content_subtype, - context: data.context, - message_type: data.message_type, - subtype: data.subtype, - subtype_id: data.subtype_id, - }); - - var model = new Model(options.model); - return model.call('message_post', [options.res_id], msg).then(function (msg_id) { - return MessageModel.call('message_format', [msg_id]).then(function (msgs) { - msgs[0].model = options.model; - msgs[0].res_id = options.res_id; - add_message(msgs[0]); - }); - }); - } - }; - -chat_manager.get_message = function (id) { - return _.findWhere(messages, {id: id}); - }; -chat_manager.get_messages = function (options) { - var channel; - - if ('channel_id' in options && options.load_more) { - // get channel messages, force load_more - channel = this.get_channel(options.channel_id); - return fetch_from_channel(channel, {domain: options.domain || {}, load_more: true}); - } - if ('channel_id' in options) { - // channel message, check in cache first - channel = this.get_channel(options.channel_id); - var channel_cache = get_channel_cache(channel, options.domain); - if (channel_cache.loaded) { - return $.when(channel_cache.messages); - } else { - return fetch_from_channel(channel, {domain: options.domain}); - } - } - if ('ids' in options) { - // get messages from their ids (chatter is the main use case) - return fetch_document_messages(options.ids, options).then(function(result) { - chat_manager.mark_as_read(options.ids); - return result; - }); - } - if ('model' in options && 'res_id' in options) { - // get messages for a chatter, when it doesn't know the ids (use - // case is when using the full composer) - var domain = [['model', '=', options.model], ['res_id', '=', options.res_id]]; - MessageModel.call('message_fetch', [domain], {limit: 30}).then(function (msgs) { - return _.map(msgs, add_message); - }); - } - }; -chat_manager.toggle_star_status = function (message_id) { - var msg = _.findWhere(messages, { id: message_id }); - - return MessageModel.call('set_message_starred', [[message_id], !msg.is_starred]); - }; -chat_manager.unstar_all = function () { - return MessageModel.call('unstar_all', [[]], {}); - }; -chat_manager.mark_as_read = function (message_ids) { - var ids = _.filter(message_ids, function (id) { - var message = _.findWhere(messages, {id: id}); - // If too many messages, not all are fetched, and some might not be found - return !message || message.is_needaction; - }); - if (ids.length) { - return MessageModel.call('set_message_done', [ids]); - } else { - return $.when(); - } - }; -chat_manager.mark_all_as_read = function (channel, domain) { - if ((channel.id === "channel_inbox" && needaction_counter) || (channel && channel.needaction_counter)) { - return MessageModel.call('mark_all_as_read', [], {channel_ids: channel.id !== "channel_inbox" ? [channel.id] : [], domain: domain}); - } - return $.when(); - }; -chat_manager.undo_mark_as_read = function (message_ids, channel) { - return MessageModel.call('mark_as_unread', [message_ids, [channel.id]]); - }; -chat_manager.mark_channel_as_seen = function (channel) { - if (channel.unread_counter > 0 && channel.type !== 'static') { - update_channel_unread_counter(channel, 0); - channel_seen(channel); - } - }; - -chat_manager.get_channels = function () { - return _.clone(channels); - }; - -chat_manager.get_channel = function (id) { - return _.findWhere(channels, {id: id}); - }; - -chat_manager.get_dm_from_partner_id = function (partner_id) { - return _.findWhere(channels, {direct_partner_id: partner_id}); - }; - -chat_manager.all_history_loaded = function (channel, domain) { - return get_channel_cache(channel, domain).all_history_loaded; - }; - -chat_manager.get_mention_partner_suggestions = function (channel) { - if (!channel) { - return mention_partner_suggestions; - } - if (!channel.members_deferred) { - channel.members_deferred = ChannelModel - .call("channel_fetch_listeners", [channel.uuid], {}, {shadow: true}) - .then(function (members) { - var suggestions = []; - _.each(mention_partner_suggestions, function (partners) { - suggestions.push(_.filter(partners, function (partner) { - return !_.findWhere(members, { id: partner.id }); - })); - }); - - return [members]; - }); - } - return channel.members_deferred; - }; - -chat_manager.get_emojis = function() { - return emojis; - }; - -chat_manager.get_needaction_counter = function () { - return needaction_counter; - }; -chat_manager.get_chat_unread_counter = function () { - return chat_unread_counter; - }; -chat_manager.get_unread_conversation_counter = function () { - return unread_conversation_counter; - }; - -chat_manager.get_last_seen_message = function (channel) { - if (channel.last_seen_message_id) { - var messages = channel.cache['[]'].messages; - var msg = _.findWhere(messages, {id: channel.last_seen_message_id}); - if (msg) { - var i = _.sortedIndex(messages, msg, 'id') + 1; - while (i < messages.length && (messages[i].is_author || messages[i].is_system_notification)) { - msg = messages[i]; - i++; - } - return msg; - } - } - }; - -chat_manager.get_discuss_ids = function () { - return discuss_ids; - } - -chat_manager.detach_channel = function (channel) { - return ChannelModel.call("channel_minimize", [channel.uuid, true], {}, {shadow: true}); - }; -chat_manager.remove_chatter_messages = function (model) { - messages = _.reject(messages, function (message) { - return message.channel_ids.length === 0 && message.model === model; - }); - }; -chat_manager.bus = new core.Bus(); - -chat_manager.create_channel = function (name, type) { - var method = type === "dm" ? "channel_get" : "channel_create"; - var args = type === "dm" ? [[name]] : [name, type]; - - return ChannelModel - .call(method, args) - .then(add_channel); - }; -chat_manager.join_channel = function (channel_id, options) { - if (channel_id in channel_defs) { - // prevents concurrent calls to channel_join_and_get_info - return channel_defs[channel_id]; - } - var channel = this.get_channel(channel_id); - if (channel) { - // channel already joined - channel_defs[channel_id] = $.when(channel); - } else { - channel_defs[channel_id] = ChannelModel - .call('channel_join_and_get_info', [[channel_id]]) - .then(function (result) { - return add_channel(result, options); - }); - } - return channel_defs[channel_id]; - }; -chat_manager.open_and_detach_dm = function (partner_id) { - return ChannelModel.call('channel_get_and_minimize', [[partner_id]]).then(add_channel); - }; -chat_manager.open_channel = function (channel) { - chat_manager.bus.trigger(client_action_open ? 'open_channel' : 'detach_channel', channel); - }; - -chat_manager.unsubscribe = function (channel) { - var def; - if (_.contains(['public', 'private'], channel.type)) { - def = ChannelModel.call('action_unfollow', [[channel.id]]); - } else { - def = ChannelModel.call('channel_pin', [channel.uuid, false]); - } - return def.then(function () { - remove_channel(channel); - }); - }; -chat_manager.close_chat_session = function (channel_id) { - var channel = this.get_channel(channel_id); - ChannelModel.call("channel_fold", [], {uuid : channel.uuid, state : "closed"}, {shadow: true}); - }; -chat_manager.fold_channel = function (channel_id, folded) { - var args = { - uuid: this.get_channel(channel_id).uuid, - }; - if (_.isBoolean(folded)) { - args.state = folded ? 'folded' : 'open'; - } - return ChannelModel.call("channel_fold", [], args, {shadow: true}); - }; - /** - * Special redirection handling for given model and id - * - * If the model is res.partner, and there is a user associated with this - * partner which isn't the current user, open the DM with this user. - * Otherwhise, open the record's form view, if this is not the current user's. - */ -chat_manager.redirect = function (res_model, res_id, dm_redirection_callback) { - var self = this; - var redirect_to_document = function (res_model, res_id, view_id) { - web_client.do_action({ - type:'ir.actions.act_window', - view_type: 'form', - view_mode: 'form', - res_model: res_model, - views: [[view_id || false, 'form']], - res_id: res_id, - }); - }; - if (res_model === "res.partner") { - var domain = [["partner_id", "=", res_id]]; - UserModel.call("search", [domain]).then(function (user_ids) { - if (user_ids.length && user_ids[0] !== session.uid) { - self.create_channel(res_id, 'dm').then(dm_redirection_callback || function () {}); - } else if (!user_ids.length) { - redirect_to_document(res_model, res_id); - } - }); - } else { - new Model(res_model).call('get_formview_id', [res_id, session.context]).then(function (view_id) { - redirect_to_document(res_model, res_id, view_id); - }); - } - }; - -chat_manager.get_channels_preview = function (channels) { - var channels_preview = _.map(channels, function (channel) { - var info = _.pick(channel, 'id', 'is_chat', 'name', 'status', 'unread_counter'); - info.last_message = _.last(channel.cache['[]'].messages); - if (!info.is_chat) { - info.image_src = '/web/image/mail.channel/'+channel.id+'/image_small'; - } else if (channel.direct_partner_id) { - info.image_src = '/web/image/res.partner/'+channel.direct_partner_id+'/image_small'; - } else { - info.image_src = '/mail/static/src/img/smiley/avatar.jpg'; - } - return info; - }); - var missing_channels = _.where(channels_preview, {last_message: undefined}); - if (!channels_preview_def) { - if (missing_channels.length) { - var missing_channel_ids = _.pluck(missing_channels, 'id'); - channels_preview_def = ChannelModel.call('channel_fetch_preview', [missing_channel_ids], {}, {shadow: true}); - } else { - channels_preview_def = $.when(); - } - } - return channels_preview_def.then(function (channels) { - _.each(missing_channels, function (channel_preview) { - var channel = _.findWhere(channels, {id: channel_preview.id}); - if (channel) { - channel_preview.last_message = add_message(channel.last_message); - } - }); - return _.filter(channels_preview, function (channel) { - return channel.last_message; // remove empty channels - }); - }); - }; -chat_manager.get_message_body_preview = function (message_body) { - return parse_and_transform(message_body, inline); - }; - -chat_manager.search_partner = function (search_val, limit) { - return PartnerModel.call('im_search', [search_val, limit || 20], {}, {shadow: true}).then(function(result) { - var values = []; - _.each(result, function(user) { - var escaped_name = _.escape(user.name); - values.push(_.extend(user, { - 'value': escaped_name, - 'label': escaped_name, - })); - }); - return values; - }); - }; - -chat_manager.send_native_notification = send_native_notification; - -chat_manager.bus.on('client_action_open', null, function (open) { - client_action_open = open; -}); - -// Initialization -// --------------------------------------------------------------------------------- -function init () { - add_channel({ - id: "channel_inbox", - name: _t("Inbox"), - type: "static" - }, { display_needactions: true }); - - add_channel({ - id: "channel_starred", - name: _t("Starred"), - type: "static" - }); - - add_channel({ - id: "channel_archive", - name: _t("Archive"), - type: "static" - }); - - var load_channels = session.rpc('/mail/client_action').then(function (result) { - _.each(result.channel_slots, function (channels) { - _.each(channels, add_channel); - }); - needaction_counter = result.needaction_inbox_counter; - mention_partner_suggestions = result.mention_partner_suggestions; - }); - - var load_emojis = session.rpc("/mail/chat_init").then(function (result) { - emojis = result.emoji; - _.each(emojis, function(emoji) { - emoji_substitutions[_.escape(emoji.source)] = emoji.substitution; - }); - }); - - var ir_model = new Model("ir.model.data"); - var load_menu_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_menu_root_chat"], {}, {shadow: true}); - var load_action_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_action_client_chat"], {}, {shadow: true}); - - bus.on('notification', null, on_notification); - - return $.when(load_menu_id, load_action_id, load_channels, load_emojis).then(function (menu_id, action_id) { - discuss_ids = { - menu_id: menu_id, - action_id: action_id, - }; - bus.start_polling(); - }); -} - -chat_manager.is_ready = init(); -console.log('q2w'); +var chat_manager = require('mail_base.base'); return chat_manager; }); diff --git a/mail_archives/static/src/js/base.js b/mail_archives/static/src/js/base.js new file mode 100644 index 0000000..efddeb4 --- /dev/null +++ b/mail_archives/static/src/js/base.js @@ -0,0 +1,1131 @@ +odoo.define('mail_base.base', function (require) { +"use strict"; + +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 _t = core._t; +var LIMIT = 100; +var preview_msg_max_size = 350; // optimal for native english speakers + +var MessageModel = new Model('mail.message', session.context); +var ChannelModel = new Model('mail.channel', session.context); +var UserModel = new Model('res.users', session.context); +var PartnerModel = new Model('res.partner', session.context); +var chat_manager = require('mail.chat_manager'); + +// Private model +//---------------------------------------------------------------------------------- +var messages = []; +var channels = []; +var channels_preview_def; +var channel_defs = {}; +var chat_unread_counter = 0; +var unread_conversation_counter = 0; +var emojis = []; +var emoji_substitutions = {}; +var needaction_counter = 0; +var mention_partner_suggestions = []; +var discuss_ids = {}; +var global_unread_counter = 0; +var pinned_dm_partners = []; // partner_ids we have a pinned DM with +var client_action_open = false; + +// Utils: Window focus/unfocus, beep, tab title, parsing html strings +//---------------------------------------------------------------------------------- +var beep = (function () { + if (typeof(Audio) === "undefined") { + return function () {}; + } + var audio = new Audio(); + var ext = audio.canPlayType("audio/ogg; codecs=vorbis") ? ".ogg" : ".mp3"; + audio.src = session.url("/mail/static/src/audio/ting" + ext); + return function () { audio.play(); }; +})(); + +bus.on("window_focus", null, function() { + global_unread_counter = 0; + web_client.set_title_part("_chat"); +}); + +var url_regexp = /\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/gi; + +var channel_seen = _.throttle(function (channel) { + return ChannelModel.call('channel_seen', [[channel.id]], {}, {shadow: true}); +}, 3000); + + +var MailFunctions = core.Class.extend({ + init: function () { + // suggested regexp (gruber url matching regexp, adapted to js, see https://gist.github.com/gruber/8891611) + this.url_regexp = /\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/gi; + }, + + send_native_notification: function (title, content) { + var notification = new Notification(title, {body: content, icon: "/mail/static/src/img/odoo_o.png"}); + notification.onclick = function (e) { + window.focus(); + if (this.cancel) { + this.cancel(); + } else if (this.close) { + this.close(); + } + }; + }, + + notify_incoming_message: function (msg, options) { + if (bus.is_odoo_focused() && options.is_displayed) { + // no need to notify + return; + } + var title = _t('New message'); + if (msg.author_id[1]) { + title = _.escape(msg.author_id[1]); + } + var content = this.parse_and_transform(msg.body, this.strip_html).substr(0, preview_msg_max_size); + + if (!bus.is_odoo_focused()) { + global_unread_counter++; + var tab_title = _.str.sprintf(_t("%d Messages"), global_unread_counter); + web_client.set_title_part("_chat", tab_title); + } + + if (Notification && Notification.permission === "granted") { + if (bus.is_master) { + send_native_notification(title, content); + } + } else { + web_client.do_notify(title, content); + if (bus.is_master) { + beep(); + } + } + }, + + parse_and_transform: function (html_string, transform_function) { + var open_token = "OPEN" + Date.now(); + var string = html_string.replace(/</g, open_token); + var children = $('
').html(string).contents(); + return this._parse_and_transform(children, transform_function) + .replace(new RegExp(open_token, "g"), "<"); + }, + + _parse_and_transform: function (nodes, transform_function) { + var self = this; + return _.map(nodes, function (node) { + return transform_function(node, function () { + return self._parse_and_transform(node.childNodes, transform_function); + }); + }).join(""); + }, + + add_link: function (node, transform_children) { + if (node.nodeType === 3) { // text node + return node.data.replace(url_regexp, function (url) { + var href = (!/^(f|ht)tps?:\/\//i.test(url)) ? "http://" + url : url; + return '' + url + ''; + }); + } + if (node.tagName === "A") return node.outerHTML; + node.innerHTML = transform_children(); + return node.outerHTML; + }, + + strip_html: function (node, transform_children) { + if (node.nodeType === 3) return node.data; // text node + if (node.tagName === "BR") return "\n"; + return transform_children(); + }, + + inline: function (node, transform_children) { + if (node.nodeType === 3) return node.data; + if (node.tagName === "BR") return " "; + if (node.tagName.match(/^(A|P|DIV|PRE|BLOCKQUOTE)$/)) return transform_children(); + node.innerHTML = transform_children(); + return node.outerHTML; + }, + + // Message and channel manipulation helpers + //---------------------------------------------------------------------------------- + + // options: channel_id, silent + add_message: function (data, options) { + options = options || {}; + var msg = _.findWhere(messages, { id: data.id }); + + if (!msg) { + msg = this.make_message(data); + // Keep the array ordered by id when inserting the new message + messages.splice(_.sortedIndex(messages, msg, 'id'), 0, msg); + _.each(msg.channel_ids, function (channel_id) { + var channel = chat_manager.get_channel(channel_id); + if (channel) { + cls.add_to_cache(msg, []); + if (options.domain && options.domain !== []) { + cls.add_to_cache(msg, options.domain); + } + if (channel.hidden) { + channel.hidden = false; + chat_manager.bus.trigger('new_channel', channel); + } + if (channel.type !== 'static' && !msg.is_author && !msg.is_system_notification) { + if (options.increment_unread) { + this.update_channel_unread_counter(channel, channel.unread_counter+1); + } + if (channel.is_chat && options.show_notification) { + if (!client_action_open && config.device.size_class !== config.device.SIZES.XS) { + // automatically open chat window + chat_manager.bus.trigger('open_chat', channel, { passively: true }); + } + var query = {is_displayed: false}; + chat_manager.bus.trigger('anyone_listening', channel, query); + this.notify_incoming_message(msg, query); + } + } + } + }); + if (!options.silent) { + chat_manager.bus.trigger('new_message', msg); + } + } else if (options.domain && options.domain !== []) { + this.add_to_cache(msg, options.domain); + } + return msg; + }, + + property_descr: function (channel, msg, self) { + return { + enumerable: true, + get: function () { + return _.contains(msg.channel_ids, channel); + }, + set: function (bool) { + if (bool) { + self.add_channel_to_message(msg, channel); + } else { + msg.channel_ids = _.without(msg.channel_ids, channel); + } + } + }; + }, + + make_message: function (data) { + var msg = { + id: data.id, + author_id: data.author_id, + body_short: data.body_short || "", + body: data.body || "", + date: moment(time.str_to_datetime(data.date)), + message_type: data.message_type, + subtype_description: data.subtype_description, + is_author: data.author_id && data.author_id[0] === session.partner_id, + is_note: data.is_note, + is_system_notification: data.message_type === 'notification' && data.model === 'mail.channel', + attachment_ids: data.attachment_ids, + subject: data.subject, + email_from: data.email_from, + record_name: data.record_name, + tracking_value_ids: data.tracking_value_ids, + channel_ids: data.channel_ids, + model: data.model, + res_id: data.res_id, + url: session.url("/mail/view?message_id=" + data.id) + }; + + _.each(_.keys(emoji_substitutions), function (key) { + var escaped_key = String(key).replace(/([.*+?=^!:${}()|[\]\/\\])/g, '\\$1'); + var regexp = new RegExp("(?:^|\\s|<[a-z]*>)(" + escaped_key + ")(?=\\s|$|)", "g"); + msg.body = msg.body.replace(regexp, ' '+emoji_substitutions[key]+' '); + }); + + var self = this; + Object.defineProperties(msg, { + is_starred: this.property_descr("channel_starred", msg, self), + is_needaction: this.property_descr("channel_inbox", msg, self), + is_archive: this.property_descr("channel_archive", msg, self) + }); + + if (_.contains(data.needaction_partner_ids, session.partner_id)) { + msg.is_needaction = true; + } + if (_.contains(data.starred_partner_ids, session.partner_id)) { + msg.is_starred = true; + } + msg.is_archive = true; + if (msg.model === 'mail.channel') { + var real_channels = _.without(msg.channel_ids, 'channel_inbox', 'channel_starred', 'channel_archive'); + var origin = real_channels.length === 1 ? real_channels[0] : undefined; + var channel = origin && chat_manager.get_channel(origin); + if (channel) { + msg.origin_id = origin; + msg.origin_name = channel.name; + } + } + + // Compute displayed author name or email + if ((!msg.author_id || !msg.author_id[0]) && msg.email_from) { + msg.mailto = msg.email_from; + } else { + msg.displayed_author = msg.author_id && msg.author_id[1] || + msg.email_from || _t('Anonymous'); + } + + // Don't redirect on author clicked of self-posted messages + msg.author_redirect = !msg.is_author; + + // Compute the avatar_url + if (msg.author_id && msg.author_id[0]) { + msg.avatar_src = "/web/image/res.partner/" + msg.author_id[0] + "/image_small"; + } else if (msg.message_type === 'email') { + msg.avatar_src = "/mail/static/src/img/email_icon.png"; + } else { + msg.avatar_src = "/mail/static/src/img/smiley/avatar.jpg"; + } + + // add anchor tags to urls + msg.body = this.parse_and_transform(msg.body, this.add_link); + + // Compute url of attachments + _.each(msg.attachment_ids, function(a) { + a.url = '/web/content/' + a.id + '?download=true'; + }); + + return msg; + }, + + add_channel_to_message: function (message, channel_id) { + message.channel_ids.push(channel_id); + message.channel_ids = _.uniq(message.channel_ids); + }, + + add_channel: function (data, options) { + options = typeof options === "object" ? options : {}; + var channel = chat_manager.get_channel(data.id); + if (channel) { + if (channel.is_folded !== (data.state === "folded")) { + channel.is_folded = (data.state === "folded"); + chat_manager.bus.trigger("channel_toggle_fold", channel); + } + } else { + channel = chat_manager.make_channel(data, options); + channels.push(channel); + channels = _.sortBy(channels, function (channel) { return channel.name.toLowerCase(); }); + if (!options.silent) { + chat_manager.bus.trigger("new_channel", channel); + } + if (channel.is_detached) { + chat_manager.bus.trigger("open_chat", channel); + } + } + return channel; + }, + + make_channel: function (data, options) { + var channel = { + id: data.id, + name: data.name, + type: data.type || data.channel_type, + all_history_loaded: false, + uuid: data.uuid, + is_detached: data.is_minimized, + is_folded: data.state === "folded", + autoswitch: 'autoswitch' in options ? options.autoswitch : true, + hidden: options.hidden, + display_needactions: options.display_needactions, + mass_mailing: data.mass_mailing, + needaction_counter: data.message_needaction_counter || 0, + unread_counter: 0, + last_seen_message_id: data.seen_message_id, + cache: {'[]': { + all_history_loaded: false, + loaded: false, + messages: [] + }} + }; + if (channel.type === "channel" && data.public !== "private") { + channel.type = "public"; + } else if (data.public === "private") { + channel.type = "private"; + } + if (_.size(data.direct_partner) > 0) { + channel.type = "dm"; + channel.name = data.direct_partner[0].name; + channel.direct_partner_id = data.direct_partner[0].id; + channel.status = data.direct_partner[0].im_status; + pinned_dm_partners.push(channel.direct_partner_id); + bus.update_option('bus_presence_partner_ids', pinned_dm_partners); + } else if ('anonymous_name' in data) { + channel.name = data.anonymous_name; + } + channel.is_chat = !channel.type.match(/^(public|private|static)$/); + if (data.message_unread_counter) { + this.update_channel_unread_counter(channel, data.message_unread_counter); + } + return channel; + }, + + remove_channel: function (channel) { + if (!channel) { return; } + if (channel.type === 'dm') { + var index = pinned_dm_partners.indexOf(channel.direct_partner_id); + if (index > -1) { + pinned_dm_partners.splice(index, 1); + bus.update_option('bus_presence_partner_ids', pinned_dm_partners); + } + } + channels = _.without(channels, channel); + delete channel_defs[channel.id]; + }, + + get_channel_cache: function (channel, domain) { + var stringified_domain = JSON.stringify(domain || []); + if (!channel.cache[stringified_domain]) { + channel.cache[stringified_domain] = { + all_history_loaded: false, + loaded: false, + messages: [] + }; + } + return channel.cache[stringified_domain]; + }, + + invalidate_caches: function (channel_ids) { + _.each(channel_ids, function (channel_id) { + var channel = chat_manager.get_channel(channel_id); + if (channel) { + channel.cache = { '[]': channel.cache['[]']}; + } + }); + }, + + add_to_cache: function (message, domain) { + _.each(message.channel_ids, function (channel_id) { + var channel = chat_manager.get_channel(channel_id); + if (channel) { + var channel_cache = cls.get_channel_cache(channel, domain); + var index = _.sortedIndex(channel_cache.messages, message, 'id'); + if (channel_cache.messages[index] !== message) { + channel_cache.messages.splice(index, 0, message); + } + } + }); + }, + + remove_message_from_channel: function (channel_id, message) { + message.channel_ids = _.without(message.channel_ids, channel_id); + var channel = _.findWhere(channels, { id: channel_id }); + _.each(channel.cache, function (cache) { + cache.messages = _.without(cache.messages, message); + }); + }, + + // options: domain, load_more + fetch_from_channel: function (channel, options) { + options = options || {}; + var domain = + (channel.id === "channel_inbox") ? [['needaction', '=', true]] : + (channel.id === "channel_starred") ? [['starred', '=', true]] : + (channel.id === "channel_archive") ? [] : + [['channel_ids', 'in', channel.id]]; + var cache = this.get_channel_cache(channel, options.domain); + + if (options.domain) { + domain = new data.CompoundDomain(domain, options.domain || []); + } + if (options.load_more) { + var min_message_id = cache.messages[0].id; + domain = new data.CompoundDomain([['id', '<', min_message_id]], domain); + } + var self = this; + return MessageModel.call('message_fetch', [domain], {limit: LIMIT}).then(function (msgs) { + if (!cache.all_history_loaded) { + cache.all_history_loaded = msgs.length < LIMIT; + } + cache.loaded = true; + + _.each(msgs, function (msg) { + self.add_message(msg, {channel_id: channel.id, silent: true, domain: options.domain}); + }); + var channel_cache = self.get_channel_cache(channel, options.domain || []); + return channel_cache.messages; + }); + }, + + // options: force_fetch + fetch_document_messages: function (ids, options) { + var loaded_msgs = _.filter(messages, function (message) { + return _.contains(ids, message.id); + }); + var loaded_msg_ids = _.pluck(loaded_msgs, 'id'); + + options = options || {}; + var self = this; + if (options.force_fetch || _.difference(ids.slice(0, LIMIT), loaded_msg_ids).length) { + var ids_to_load = _.difference(ids, loaded_msg_ids).slice(0, LIMIT); + + return MessageModel.call('message_format', [ids_to_load]).then(function (msgs) { + var processed_msgs = []; + _.each(msgs, function (msg) { + processed_msgs.push(self.add_message(msg, {silent: true})); + }); + return _.sortBy(loaded_msgs.concat(processed_msgs), function (msg) { + return msg.date; + }); + }); + } else { + return $.when(loaded_msgs); + } + }, + + update_channel_unread_counter: function (channel, counter) { + if (channel.unread_counter > 0 && counter === 0) { + unread_conversation_counter = Math.max(0, unread_conversation_counter-1); + } else if (channel.unread_counter === 0 && counter > 0) { + unread_conversation_counter++; + } + if (channel.is_chat) { + chat_unread_counter = Math.max(0, chat_unread_counter - channel.unread_counter + counter); + } + channel.unread_counter = counter; + chat_manager.bus.trigger("update_channel_unread_counter", channel); + }, + + // Notification handlers + // --------------------------------------------------------------------------------- + on_notification: function (notifications) { + // sometimes, the web client receives unsubscribe notification and an extra + // notification on that channel. This is then followed by an attempt to + // rejoin the channel that we just left. The next few lines remove the + // extra notification to prevent that situation to occur. + var unsubscribed_notif = _.find(notifications, function (notif) { + return notif[1].info === "unsubscribe"; + }); + if (unsubscribed_notif) { + notifications = _.reject(notifications, function (notif) { + return notif[0][1] === "mail.channel" && notif[0][2] === unsubscribed_notif[1].id; + }); + } + _.each(notifications, function (notification) { + var model = notification[0][1]; + if (model === 'ir.needaction') { + // new message in the inbox + // this.on_needaction_notification(notification[1]); + cls.on_needaction_notification(notification[1]); + } else if (model === 'mail.channel') { + // new message in a channel + // this.on_channel_notification(notification[1]); + cls.on_channel_notification(notification[1]); + } else if (model === 'res.partner') { + // channel joined/left, message marked as read/(un)starred, chat open/closed + // this.on_partner_notification(notification[1]); + cls.on_partner_notification(notification[1]); + } else if (model === 'bus.presence') { + // update presence of users + // this.on_presence_notification(notification[1]); + cls.on_presence_notification(notification[1]); + } + }); + }, + + on_needaction_notification: function (message) { + message = this.add_message(message, { + channel_id: 'channel_inbox', + show_notification: true, + increment_unread: true + }); + this.invalidate_caches(message.channel_ids); + needaction_counter++; + _.each(message.channel_ids, function (channel_id) { + var channel = chat_manager.get_channel(channel_id); + if (channel) { + channel.needaction_counter++; + } + }); + chat_manager.bus.trigger('update_needaction', needaction_counter); + }, + + on_channel_notification: function (message) { + var def; + var channel_already_in_cache = true; + if (message.channel_ids.length === 1) { + channel_already_in_cache = !!chat_manager.get_channel(message.channel_ids[0]); + def = chat_manager.join_channel(message.channel_ids[0], {autoswitch: false}); + } else { + def = $.when(); + } + def.then(function () { + // don't increment unread if channel wasn't in cache yet as its unread counter has just been fetched + this.add_message(message, { show_notification: true, increment_unread: channel_already_in_cache }); + this.invalidate_caches(message.channel_ids); + }); + }, + + on_partner_notification: function (data) { + if (data.info === "unsubscribe") { + this.remove_channel(chat_manager.get_channel(data.id)); + chat_manager.bus.trigger("unsubscribe_from_channel", data.id); + } else if (data.type === 'toggle_star') { + this.on_toggle_star_notification(data); + } else if (data.type === 'mark_as_read') { + this.on_mark_as_read_notification(data); + } else if (data.type === 'mark_as_unread') { + this.on_mark_as_unread_notification(data); + } else if (data.info === 'channel_seen') { + this.on_channel_seen_notification(data); + } else { + this.on_chat_session_notification(data); + } + }, + + on_toggle_star_notification: function (data) { + _.each(data.message_ids, function (msg_id) { + var message = _.findWhere(messages, { id: msg_id }); + if (message) { + cls.invalidate_caches(message.channel_ids); + message.is_starred = data.starred; + if (!message.is_starred) { + cls.remove_message_from_channel("channel_starred", message); + } else { + cls.add_to_cache(message, []); + var channel_starred = chat_manager.get_channel('channel_starred'); + channel_starred.cache = _.pick(channel_starred.cache, "[]"); + } + chat_manager.bus.trigger('update_message', message); + } + }); + }, + + on_mark_as_read_notification: function (data) { + _.each(data.message_ids, function (msg_id) { + var message = _.findWhere(messages, { id: msg_id }); + if (message) { + this.invalidate_caches(message.channel_ids); + this.remove_message_from_channel("channel_inbox", message); + chat_manager.bus.trigger('update_message', message); + } + }); + if (data.channel_ids) { + _.each(data.channel_ids, function (channel_id) { + var channel = chat_manager.get_channel(channel_id); + if (channel) { + channel.needaction_counter = Math.max(channel.needaction_counter - data.message_ids.length, 0); + } + }); + } else { // if no channel_ids specified, this is a 'mark all read' in the inbox + _.each(channels, function (channel) { + channel.needaction_counter = 0; + }); + } + needaction_counter = Math.max(needaction_counter - data.message_ids.length, 0); + chat_manager.bus.trigger('update_needaction', needaction_counter); + }, + + on_mark_as_unread_notification: function (data) { + _.each(data.message_ids, function (message_id) { + var message = _.findWhere(messages, { id: message_id }); + if (message) { + this.invalidate_caches(message.channel_ids); + this.add_channel_to_message(message, 'channel_inbox'); + this.add_to_cache(message, []); + } + }); + var channel_inbox = chat_manager.get_channel('channel_inbox'); + channel_inbox.cache = _.pick(channel_inbox.cache, "[]"); + + _.each(data.channel_ids, function (channel_id) { + var channel = chat_manager.get_channel(channel_id); + if (channel) { + channel.needaction_counter += data.message_ids.length; + } + }); + needaction_counter += data.message_ids.length; + chat_manager.bus.trigger('update_needaction', needaction_counter); + }, + + on_channel_seen_notification: function (data) { + var channel = chat_manager.get_channel(data.id); + if (channel) { + channel.last_seen_message_id = data.last_message_id; + if (channel.unread_counter) { + this.update_channel_unread_counter(channel, 0); + } + } + }, + + on_chat_session_notification: function (chat_session) { + var channel; + if ((chat_session.channel_type === "channel") && (chat_session.state === "open")) { + this.add_channel(chat_session, {autoswitch: false}); + if (!chat_session.is_minimized && chat_session.info !== 'creation') { + web_client.do_notify(_t("Invitation"), _t("You have been invited to: ") + chat_session.name); + } + } + // partner specific change (open a detached window for example) + if ((chat_session.state === "open") || (chat_session.state === "folded")) { + channel = chat_session.is_minimized && chat_manager.get_channel(chat_session.id); + if (channel) { + channel.is_detached = true; + channel.is_folded = (chat_session.state === "folded"); + chat_manager.bus.trigger("open_chat", channel); + } + } else if (chat_session.state === "closed") { + channel = chat_manager.get_channel(chat_session.id); + if (channel) { + channel.is_detached = false; + chat_manager.bus.trigger("close_chat", channel, {keep_open_if_unread: true}); + } + } + }, + + on_presence_notification: function (data) { + var dm = chat_manager.get_dm_from_partner_id(data.id); + if (dm) { + dm.status = data.im_status; + chat_manager.bus.trigger('update_dm_presence', dm); + } + }, + + start: function(){ + this.add_channel({ + id: "channel_inbox", + name: _t("Inbox"), + type: "static" + }, { display_needactions: true }); + + this.add_channel({ + id: "channel_starred", + name: _t("Starred"), + type: "static" + }); + + this.add_channel({ + id: "channel_archive", + name: _t("Archive"), + type: "static" + }); + + var load_channels = session.rpc('/mail/client_action').then(function (result) { + _.each(result.channel_slots, function (channels) { + _.each(channels, cls.add_channel); + }); + needaction_counter = result.needaction_inbox_counter; + mention_partner_suggestions = result.mention_partner_suggestions; + }); + + var load_emojis = session.rpc("/mail/chat_init").then(function (result) { + emojis = result.emoji; + _.each(emojis, function(emoji) { + emoji_substitutions[_.escape(emoji.source)] = emoji.substitution; + }); + }); + + var ir_model = new Model("ir.model.data"); + var load_menu_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_menu_root_chat"], {}, {shadow: true}); + var load_action_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_action_client_chat"], {}, {shadow: true}); + + bus.on('notification', null, cls.on_notification); + + return $.when(load_menu_id, load_action_id, load_channels, load_emojis).then(function (menu_id, action_id) { + discuss_ids = { + menu_id: menu_id, + action_id: action_id + }; + bus.start_polling(); + }); + } + +}); + +var cls = new MailFunctions(); + +// Public interface +//---------------------------------------------------------------------------------- +// these two functions are exposed for extensibility purposes and shouldn't be called by other modules +chat_manager.make_message = cls.make_message; +chat_manager.make_channel = cls.make_channel; +chat_manager.post_message = function (data, options) { + options = options || {}; + var msg = { + partner_ids: data.partner_ids, + body: _.str.trim(data.content), + attachment_ids: data.attachment_ids + }; + if ('subject' in data) { + msg.subject = data.subject; + } + if ('channel_id' in options) { + // post a message in a channel + return ChannelModel.call('message_post', [options.channel_id], _.extend(msg, { + message_type: 'comment', + content_subtype: 'html', + subtype: 'mail.mt_comment' + })); + } + if ('model' in options && 'res_id' in options) { + // post a message in a chatter + _.extend(msg, { + content_subtype: data.content_subtype, + context: data.context, + message_type: data.message_type, + subtype: data.subtype, + subtype_id: data.subtype_id + }); + + var model = new Model(options.model); + return model.call('message_post', [options.res_id], msg).then(function (msg_id) { + return MessageModel.call('message_format', [msg_id]).then(function (msgs) { + msgs[0].model = options.model; + msgs[0].res_id = options.res_id; + cls.add_message(msgs[0]); + }); + }); + } + }; +chat_manager.get_message = function (id) { + return _.findWhere(messages, {id: id}); + }; +chat_manager.get_messages = function (options) { + var channel; + + if ('channel_id' in options && options.load_more) { + // get channel messages, force load_more + channel = this.get_channel(options.channel_id); + return cls.fetch_from_channel(channel, {domain: options.domain || {}, load_more: true}); + } + if ('channel_id' in options) { + // channel message, check in cache first + channel = this.get_channel(options.channel_id); + var channel_cache = cls.get_channel_cache(channel, options.domain); + if (channel_cache.loaded) { + return $.when(channel_cache.messages); + } else { + return cls.fetch_from_channel(channel, {domain: options.domain}); + } + } + if ('ids' in options) { + // get messages from their ids (chatter is the main use case) + return cls.fetch_document_messages(options.ids, options).then(function(result) { + chat_manager.mark_as_read(options.ids); + return result; + }); + } + if ('model' in options && 'res_id' in options) { + // get messages for a chatter, when it doesn't know the ids (use + // case is when using the full composer) + var domain = [['model', '=', options.model], ['res_id', '=', options.res_id]]; + MessageModel.call('message_fetch', [domain], {limit: 30}).then(function (msgs) { + return _.map(msgs, cls.add_message); + }); + } +}; +chat_manager.toggle_star_status = function (message_id) { + var msg = _.findWhere(messages, { id: message_id }); + + return MessageModel.call('set_message_starred', [[message_id], !msg.is_starred]); + }; +chat_manager.unstar_all = function () { + return MessageModel.call('unstar_all', [[]], {}); + }; +chat_manager.mark_as_read = function (message_ids) { + var ids = _.filter(message_ids, function (id) { + var message = _.findWhere(messages, {id: id}); + // If too many messages, not all are fetched, and some might not be found + return !message || message.is_needaction; + }); + if (ids.length) { + return MessageModel.call('set_message_done', [ids]); + } else { + return $.when(); + } + }; +chat_manager.mark_all_as_read = function (channel, domain) { + if ((channel.id === "channel_inbox" && needaction_counter) || (channel && channel.needaction_counter)) { + return MessageModel.call('mark_all_as_read', [], {channel_ids: channel.id !== "channel_inbox" ? [channel.id] : [], domain: domain}); + } + return $.when(); + }; +chat_manager.undo_mark_as_read = function (message_ids, channel) { + return MessageModel.call('mark_as_unread', [message_ids, [channel.id]]); + }; +chat_manager.mark_channel_as_seen = function (channel) { + if (channel.unread_counter > 0 && channel.type !== 'static') { + cls.update_channel_unread_counter(channel, 0); + cls.channel_seen(channel); + } + }; +chat_manager.get_channels = function () { + return _.clone(channels); + }; +chat_manager.get_channel = function (id) { + return _.findWhere(channels, {id: id}); + }; +chat_manager.get_dm_from_partner_id = function (partner_id) { + return _.findWhere(channels, {direct_partner_id: partner_id}); + }; +chat_manager.all_history_loaded = function (channel, domain) { + return cls.get_channel_cache(channel, domain).all_history_loaded; + }; +chat_manager.get_mention_partner_suggestions = function (channel) { + if (!channel) { + return mention_partner_suggestions; + } + if (!channel.members_deferred) { + channel.members_deferred = ChannelModel + .call("channel_fetch_listeners", [channel.uuid], {}, {shadow: true}) + .then(function (members) { + var suggestions = []; + _.each(mention_partner_suggestions, function (partners) { + suggestions.push(_.filter(partners, function (partner) { + return !_.findWhere(members, { id: partner.id }); + })); + }); + + return [members]; + }); + } + return channel.members_deferred; + }; +chat_manager.get_emojis = function() { + return emojis; + }; +chat_manager.get_needaction_counter = function () { + return needaction_counter; + }; +chat_manager.get_chat_unread_counter = function () { + return chat_unread_counter; + }; +chat_manager.get_unread_conversation_counter = function () { + return unread_conversation_counter; + }; +chat_manager.get_last_seen_message = function (channel) { + if (channel.last_seen_message_id) { + var messages = channel.cache['[]'].messages; + var msg = _.findWhere(messages, {id: channel.last_seen_message_id}); + if (msg) { + var i = _.sortedIndex(messages, msg, 'id') + 1; + while (i < messages.length && (messages[i].is_author || messages[i].is_system_notification)) { + msg = messages[i]; + i++; + } + return msg; + } + } + }; +chat_manager.get_discuss_ids = function () { + return discuss_ids; + }; +chat_manager.detach_channel = function (channel) { + return ChannelModel.call("channel_minimize", [channel.uuid, true], {}, {shadow: true}); + }; +chat_manager.remove_chatter_messages = function (model) { + messages = _.reject(messages, function (message) { + return message.channel_ids.length === 0 && message.model === model; + }); + }; +chat_manager.bus = new core.Bus(); +chat_manager.create_channel = function (name, type) { + var method = type === "dm" ? "channel_get" : "channel_create"; + var args = type === "dm" ? [[name]] : [name, type]; + + return ChannelModel + .call(method, args) + .then(cls.add_channel); + }; +chat_manager.join_channel = function (channel_id, options) { + if (channel_id in channel_defs) { + // prevents concurrent calls to channel_join_and_get_info + return channel_defs[channel_id]; + } + var channel = this.get_channel(channel_id); + if (channel) { + // channel already joined + channel_defs[channel_id] = $.when(channel); + } else { + channel_defs[channel_id] = ChannelModel + .call('channel_join_and_get_info', [[channel_id]]) + .then(function (result) { + return cls.add_channel(result, options); + }); + } + return channel_defs[channel_id]; + }; +chat_manager.open_and_detach_dm = function (partner_id) { + return ChannelModel.call('channel_get_and_minimize', [[partner_id]]).then(cls.add_channel); + }; +chat_manager.open_channel = function (channel) { + chat_manager.bus.trigger(client_action_open ? 'open_channel' : 'detach_channel', channel); + }; +chat_manager.unsubscribe = function (channel) { + var def; + if (_.contains(['public', 'private'], channel.type)) { + def = ChannelModel.call('action_unfollow', [[channel.id]]); + } else { + def = ChannelModel.call('channel_pin', [channel.uuid, false]); + } + return def.then(function () { + cls.remove_channel(channel); + }); + }; +chat_manager.close_chat_session = function (channel_id) { + var channel = this.get_channel(channel_id); + ChannelModel.call("channel_fold", [], {uuid : channel.uuid, state : "closed"}, {shadow: true}); + }; +chat_manager.fold_channel = function (channel_id, folded) { + var args = { + uuid: this.get_channel(channel_id).uuid + }; + if (_.isBoolean(folded)) { + args.state = folded ? 'folded' : 'open'; + } + return ChannelModel.call("channel_fold", [], args, {shadow: true}); + }; + /** + * Special redirection handling for given model and id + * + * If the model is res.partner, and there is a user associated with this + * partner which isn't the current user, open the DM with this user. + * Otherwhise, open the record's form view, if this is not the current user's. + */ +chat_manager.redirect = function (res_model, res_id, dm_redirection_callback) { + var self = this; + var redirect_to_document = function (res_model, res_id, view_id) { + web_client.do_action({ + type:'ir.actions.act_window', + view_type: 'form', + view_mode: 'form', + res_model: res_model, + views: [[view_id || false, 'form']], + res_id: res_id + }); + }; + if (res_model === "res.partner") { + var domain = [["partner_id", "=", res_id]]; + UserModel.call("search", [domain]).then(function (user_ids) { + if (user_ids.length && user_ids[0] !== session.uid) { + self.create_channel(res_id, 'dm').then(dm_redirection_callback || function () {}); + } else if (!user_ids.length) { + redirect_to_document(res_model, res_id); + } + }); + } else { + new Model(res_model).call('get_formview_id', [res_id, session.context]).then(function (view_id) { + redirect_to_document(res_model, res_id, view_id); + }); + } + }; +chat_manager.get_channels_preview = function (channels) { + var channels_preview = _.map(channels, function (channel) { + var info = _.pick(channel, 'id', 'is_chat', 'name', 'status', 'unread_counter'); + info.last_message = _.last(channel.cache['[]'].messages); + if (!info.is_chat) { + info.image_src = '/web/image/mail.channel/'+channel.id+'/image_small'; + } else if (channel.direct_partner_id) { + info.image_src = '/web/image/res.partner/'+channel.direct_partner_id+'/image_small'; + } else { + info.image_src = '/mail/static/src/img/smiley/avatar.jpg'; + } + return info; + }); + var missing_channels = _.where(channels_preview, {last_message: undefined}); + if (!channels_preview_def) { + if (missing_channels.length) { + var missing_channel_ids = _.pluck(missing_channels, 'id'); + channels_preview_def = ChannelModel.call('channel_fetch_preview', [missing_channel_ids], {}, {shadow: true}); + } else { + channels_preview_def = $.when(); + } + } + return channels_preview_def.then(function (channels) { + _.each(missing_channels, function (channel_preview) { + var channel = _.findWhere(channels, {id: channel_preview.id}); + if (channel) { + channel_preview.last_message = cls.add_message(channel.last_message); + } + }); + return _.filter(channels_preview, function (channel) { + return channel.last_message; // remove empty channels + }); + }); + }; +chat_manager.get_message_body_preview = function (message_body) { + return cls.parse_and_transform(message_body, inline); + }; +chat_manager.search_partner = function (search_val, limit) { + return PartnerModel.call('im_search', [search_val, limit || 20], {}, {shadow: true}).then(function(result) { + var values = []; + _.each(result, function(user) { + var escaped_name = _.escape(user.name); + values.push(_.extend(user, { + 'value': escaped_name, + 'label': escaped_name + })); + }); + return values; + }); + }; +chat_manager.send_native_notification = cls.send_native_notification; +chat_manager.bus.on('client_action_open', null, function (open) { + client_action_open = open; +}); + +// Initialization +// --------------------------------------------------------------------------------- +function init (cls) { + cls.add_channel({ + id: "channel_inbox", + name: _t("Inbox"), + type: "static" + }, { display_needactions: true }); + + cls.add_channel({ + id: "channel_starred", + name: _t("Starred"), + type: "static" + }); + + cls.add_channel({ + id: "channel_archive", + name: _t("Archive"), + type: "static" + }); + + var load_channels = session.rpc('/mail/client_action').then(function (result) { + _.each(result.channel_slots, function (channels) { + _.each(channels, cls.add_channel); + }); + needaction_counter = result.needaction_inbox_counter; + mention_partner_suggestions = result.mention_partner_suggestions; + }); + + var load_emojis = session.rpc("/mail/chat_init").then(function (result) { + emojis = result.emoji; + _.each(emojis, function(emoji) { + emoji_substitutions[_.escape(emoji.source)] = emoji.substitution; + }); + }); + + var ir_model = new Model("ir.model.data"); + var load_menu_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_menu_root_chat"], {}, {shadow: true}); + var load_action_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_action_client_chat"], {}, {shadow: true}); + + bus.on('notification', null, cls.on_notification); + + return $.when(load_menu_id, load_action_id, load_channels, load_emojis).then(function (menu_id, action_id) { + discuss_ids = { + menu_id: menu_id, + action_id: action_id + }; + bus.start_polling(); + }); +} + +chat_manager.is_ready = cls.start(); +return chat_manager; + +}); diff --git a/mail_archives/views/templates.xml b/mail_archives/views/templates.xml index a99a03d..c6e872f 100644 --- a/mail_archives/views/templates.xml +++ b/mail_archives/views/templates.xml @@ -6,6 +6,7 @@ inherit_id="web.assets_backend"> + From 741266307a329bf451087e2881c00c36479494ad Mon Sep 17 00:00:00 2001 From: x620 Date: Fri, 1 Apr 2016 12:08:57 +0500 Subject: [PATCH 043/148] Implemented successful inheritance --- mail_archives/static/src/js/archives.js | 181 +++++++++++++++++++++++- mail_archives/static/src/js/base.js | 117 +++++---------- 2 files changed, 216 insertions(+), 82 deletions(-) diff --git a/mail_archives/static/src/js/archives.js b/mail_archives/static/src/js/archives.js index a01dd04..5a4cbdd 100644 --- a/mail_archives/static/src/js/archives.js +++ b/mail_archives/static/src/js/archives.js @@ -1,7 +1,184 @@ odoo.define('mail_archives.archives', function (require) { "use strict"; -var chat_manager = require('mail_base.base'); -return chat_manager; +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 _t = core._t; +var LIMIT = 100; + +var MessageModel = new Model('mail.message', session.context); +//------------------------------------------------------------------------------- +var emojis = []; +var emoji_substitutions = {}; +var needaction_counter = 0; +var mention_partner_suggestions = []; +var discuss_ids = {}; +//------------------------------------------------------------------------------- + +// Inherit class and override methods +base_obj.MailTools.include({ + make_message: function (data) { + var msg = { + id: data.id, + author_id: data.author_id, + body_short: data.body_short || "", + body: data.body || "", + date: moment(time.str_to_datetime(data.date)), + message_type: data.message_type, + subtype_description: data.subtype_description, + is_author: data.author_id && data.author_id[0] === session.partner_id, + is_note: data.is_note, + is_system_notification: data.message_type === 'notification' && data.model === 'mail.channel', + attachment_ids: data.attachment_ids, + subject: data.subject, + email_from: data.email_from, + record_name: data.record_name, + tracking_value_ids: data.tracking_value_ids, + channel_ids: data.channel_ids, + model: data.model, + res_id: data.res_id, + url: session.url("/mail/view?message_id=" + data.id) + }; + + _.each(_.keys(emoji_substitutions), function (key) { + var escaped_key = String(key).replace(/([.*+?=^!:${}()|[\]\/\\])/g, '\\$1'); + var regexp = new RegExp("(?:^|\\s|<[a-z]*>)(" + escaped_key + ")(?=\\s|$|)", "g"); + msg.body = msg.body.replace(regexp, ' '+emoji_substitutions[key]+' '); + }); + + // Add property to Object + var properties = this.get_properties(msg); + properties.is_archive = this.property_descr("channel_archive", msg, this); + Object.defineProperties(msg, properties); + + // Set archive flag + msg = this.set_channel_flags(data, msg); + msg.is_archive = true; + if (msg.model === 'mail.channel') { + // Add 'channel_archive' to channel_array + var channel_array = this.get_channel_array(msg).concat('channel_archive'); + var real_channels = _.without(channel_array); + var origin = real_channels.length === 1 ? real_channels[0] : undefined; + var channel = origin && base_obj.chat_manager.get_channel(origin); + if (channel) { + msg.origin_id = origin; + msg.origin_name = channel.name; + } + } + + // Compute displayed author name or email + if ((!msg.author_id || !msg.author_id[0]) && msg.email_from) { + msg.mailto = msg.email_from; + } else { + msg.displayed_author = msg.author_id && msg.author_id[1] || + msg.email_from || _t('Anonymous'); + } + + // Don't redirect on author clicked of self-posted messages + msg.author_redirect = !msg.is_author; + + // Compute the avatar_url + if (msg.author_id && msg.author_id[0]) { + msg.avatar_src = "/web/image/res.partner/" + msg.author_id[0] + "/image_small"; + } else if (msg.message_type === 'email') { + msg.avatar_src = "/mail/static/src/img/email_icon.png"; + } else { + msg.avatar_src = "/mail/static/src/img/smiley/avatar.jpg"; + } + + // add anchor tags to urls + msg.body = this.parse_and_transform(msg.body, this.add_link); + + // Compute url of attachments + _.each(msg.attachment_ids, function(a) { + a.url = '/web/content/' + a.id + '?download=true'; + }); + + return msg; + }, + + fetch_from_channel: function (channel, options) { + options = options || {}; + // Add archive domain + var domain = (channel.id === "channel_archive") ? [] : this.get_domain(channel); + var cache = this.get_channel_cache(channel, options.domain); + + if (options.domain) { + domain = new data.CompoundDomain(domain, options.domain || []); + } + if (options.load_more) { + var min_message_id = cache.messages[0].id; + domain = new data.CompoundDomain([['id', '<', min_message_id]], domain); + } + var self = this; + return MessageModel.call('message_fetch', [domain], {limit: LIMIT}).then(function (msgs) { + if (!cache.all_history_loaded) { + cache.all_history_loaded = msgs.length < LIMIT; + } + cache.loaded = true; + + _.each(msgs, function (msg) { + self.add_message(msg, {channel_id: channel.id, silent: true, domain: options.domain}); + }); + var channel_cache = self.get_channel_cache(channel, options.domain || []); + return channel_cache.messages; + }); + }, + + start: function(){ + // Add archive channel + this.add_channel({ + id: "channel_archive", + name: _t("Archive"), + type: "static" + }); + + var load_channels = session.rpc('/mail/client_action').then(function (result) { + _.each(result.channel_slots, function (channels) { + _.each(channels, cls.add_channel); + }); + needaction_counter = result.needaction_inbox_counter; + mention_partner_suggestions = result.mention_partner_suggestions; + }); + + var load_emojis = session.rpc("/mail/chat_init").then(function (result) { + emojis = result.emoji; + _.each(emojis, function(emoji) { + emoji_substitutions[_.escape(emoji.source)] = emoji.substitution; + }); + }); + + var ir_model = new Model("ir.model.data"); + var load_menu_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_menu_root_chat"], {}, {shadow: true}); + var load_action_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_action_client_chat"], {}, {shadow: true}); + + bus.on('notification', null, cls.on_notification); + + return $.when(load_menu_id, load_action_id, load_channels, load_emojis).then(function (menu_id, action_id) { + discuss_ids = { + menu_id: menu_id, + action_id: action_id + }; + bus.start_polling(); + }); + } +}); + +// Change chat_manager with override methods +var cls = new base_obj.MailTools(base_obj.chat_manager); +base_obj.chat_manager.is_ready = cls.start(); +console.log('MailTools:', cls); + +return base_obj.chat_manager; }); diff --git a/mail_archives/static/src/js/base.js b/mail_archives/static/src/js/base.js index efddeb4..7e2bb1b 100644 --- a/mail_archives/static/src/js/base.js +++ b/mail_archives/static/src/js/base.js @@ -61,7 +61,7 @@ var channel_seen = _.throttle(function (channel) { }, 3000); -var MailFunctions = core.Class.extend({ +var MailTools = core.Class.extend({ init: function () { // suggested regexp (gruber url matching regexp, adapted to js, see https://gist.github.com/gruber/8891611) this.url_regexp = /\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/gi; @@ -215,6 +215,27 @@ var MailFunctions = core.Class.extend({ }; }, + get_properties: function(msg){ + return { + is_starred: this.property_descr("channel_starred", msg, this), + is_needaction: this.property_descr("channel_inbox", msg, this) + } + }, + + set_channel_flags: function(data, msg){ + if (_.contains(data.needaction_partner_ids, session.partner_id)) { + msg.is_needaction = true; + } + if (_.contains(data.starred_partner_ids, session.partner_id)) { + msg.is_starred = true; + } + return msg + }, + + get_channel_array: function(msg){ + return [ msg.channel_ids, 'channel_inbox', 'channel_starred' ]; + }, + make_message: function (data) { var msg = { id: data.id, @@ -244,22 +265,11 @@ var MailFunctions = core.Class.extend({ msg.body = msg.body.replace(regexp, ' '+emoji_substitutions[key]+' '); }); - var self = this; - Object.defineProperties(msg, { - is_starred: this.property_descr("channel_starred", msg, self), - is_needaction: this.property_descr("channel_inbox", msg, self), - is_archive: this.property_descr("channel_archive", msg, self) - }); + Object.defineProperties(msg, this.get_properties(msg)); - if (_.contains(data.needaction_partner_ids, session.partner_id)) { - msg.is_needaction = true; - } - if (_.contains(data.starred_partner_ids, session.partner_id)) { - msg.is_starred = true; - } - msg.is_archive = true; + msg = this.set_channel_flags(data, msg); if (msg.model === 'mail.channel') { - var real_channels = _.without(msg.channel_ids, 'channel_inbox', 'channel_starred', 'channel_archive'); + var real_channels = _.without(this.get_channel_array(msg)); var origin = real_channels.length === 1 ? real_channels[0] : undefined; var channel = origin && chat_manager.get_channel(origin); if (channel) { @@ -425,14 +435,16 @@ var MailFunctions = core.Class.extend({ }); }, + get_domain: function(channel){ + return (channel.id === "channel_inbox") ? [['needaction', '=', true]] : + (channel.id === "channel_starred") ? [['starred', '=', true]] : + [['channel_ids', 'in', channel.id]]; + }, + // options: domain, load_more fetch_from_channel: function (channel, options) { options = options || {}; - var domain = - (channel.id === "channel_inbox") ? [['needaction', '=', true]] : - (channel.id === "channel_starred") ? [['starred', '=', true]] : - (channel.id === "channel_archive") ? [] : - [['channel_ids', 'in', channel.id]]; + var domain = this.get_domain(channel); var cache = this.get_channel_cache(channel, options.domain); if (options.domain) { @@ -704,12 +716,6 @@ var MailFunctions = core.Class.extend({ type: "static" }); - this.add_channel({ - id: "channel_archive", - name: _t("Archive"), - type: "static" - }); - var load_channels = session.rpc('/mail/client_action').then(function (result) { _.each(result.channel_slots, function (channels) { _.each(channels, cls.add_channel); @@ -739,10 +745,9 @@ var MailFunctions = core.Class.extend({ bus.start_polling(); }); } - }); -var cls = new MailFunctions(); +var cls = new MailTools(); // Public interface //---------------------------------------------------------------------------------- @@ -1074,58 +1079,10 @@ chat_manager.bus.on('client_action_open', null, function (open) { client_action_open = open; }); -// Initialization -// --------------------------------------------------------------------------------- -function init (cls) { - cls.add_channel({ - id: "channel_inbox", - name: _t("Inbox"), - type: "static" - }, { display_needactions: true }); - - cls.add_channel({ - id: "channel_starred", - name: _t("Starred"), - type: "static" - }); - - cls.add_channel({ - id: "channel_archive", - name: _t("Archive"), - type: "static" - }); - - var load_channels = session.rpc('/mail/client_action').then(function (result) { - _.each(result.channel_slots, function (channels) { - _.each(channels, cls.add_channel); - }); - needaction_counter = result.needaction_inbox_counter; - mention_partner_suggestions = result.mention_partner_suggestions; - }); - - var load_emojis = session.rpc("/mail/chat_init").then(function (result) { - emojis = result.emoji; - _.each(emojis, function(emoji) { - emoji_substitutions[_.escape(emoji.source)] = emoji.substitution; - }); - }); - - var ir_model = new Model("ir.model.data"); - var load_menu_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_menu_root_chat"], {}, {shadow: true}); - var load_action_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_action_client_chat"], {}, {shadow: true}); - - bus.on('notification', null, cls.on_notification); - - return $.when(load_menu_id, load_action_id, load_channels, load_emojis).then(function (menu_id, action_id) { - discuss_ids = { - menu_id: menu_id, - action_id: action_id - }; - bus.start_polling(); - }); -} - chat_manager.is_ready = cls.start(); -return chat_manager; +return { + chat_manager: chat_manager, + MailTools: MailTools +}; }); From 4f6b18ec2d1b018cdec7470c48e0a957eb1928c3 Mon Sep 17 00:00:00 2001 From: x620 Date: Fri, 1 Apr 2016 13:39:10 +0500 Subject: [PATCH 044/148] Move base.js file in mail_base folder and activate mail_base module. --- mail_archives/__openerp__.py | 3 ++- mail_archives/static/src/js/archives.js | 10 ++------- mail_archives/views/templates.xml | 1 - mail_base/__init__.py | 1 + mail_base/__openerp__.py | 22 +++++++++++++++++++ .../static/src/js/base.js | 0 mail_base/views/templates.xml | 12 ++++++++++ 7 files changed, 39 insertions(+), 10 deletions(-) create mode 100644 mail_base/__init__.py create mode 100644 mail_base/__openerp__.py rename {mail_archives => mail_base}/static/src/js/base.js (100%) create mode 100644 mail_base/views/templates.xml diff --git a/mail_archives/__openerp__.py b/mail_archives/__openerp__.py index 316de3e..6fb0495 100644 --- a/mail_archives/__openerp__.py +++ b/mail_archives/__openerp__.py @@ -12,7 +12,8 @@ "depends": [ "base", - "mail" + "mail", + "mail_base" ], "data": [ diff --git a/mail_archives/static/src/js/archives.js b/mail_archives/static/src/js/archives.js index 5a4cbdd..bca7205 100644 --- a/mail_archives/static/src/js/archives.js +++ b/mail_archives/static/src/js/archives.js @@ -56,13 +56,13 @@ base_obj.MailTools.include({ msg.body = msg.body.replace(regexp, ' '+emoji_substitutions[key]+' '); }); - // Add property to Object var properties = this.get_properties(msg); + // Add property to Object properties.is_archive = this.property_descr("channel_archive", msg, this); Object.defineProperties(msg, properties); - // Set archive flag msg = this.set_channel_flags(data, msg); + // Set archive flag msg.is_archive = true; if (msg.model === 'mail.channel') { // Add 'channel_archive' to channel_array @@ -76,7 +76,6 @@ base_obj.MailTools.include({ } } - // Compute displayed author name or email if ((!msg.author_id || !msg.author_id[0]) && msg.email_from) { msg.mailto = msg.email_from; } else { @@ -84,10 +83,8 @@ base_obj.MailTools.include({ msg.email_from || _t('Anonymous'); } - // Don't redirect on author clicked of self-posted messages msg.author_redirect = !msg.is_author; - // Compute the avatar_url if (msg.author_id && msg.author_id[0]) { msg.avatar_src = "/web/image/res.partner/" + msg.author_id[0] + "/image_small"; } else if (msg.message_type === 'email') { @@ -96,10 +93,8 @@ base_obj.MailTools.include({ msg.avatar_src = "/mail/static/src/img/smiley/avatar.jpg"; } - // add anchor tags to urls msg.body = this.parse_and_transform(msg.body, this.add_link); - // Compute url of attachments _.each(msg.attachment_ids, function(a) { a.url = '/web/content/' + a.id + '?download=true'; }); @@ -177,7 +172,6 @@ base_obj.MailTools.include({ // Change chat_manager with override methods var cls = new base_obj.MailTools(base_obj.chat_manager); base_obj.chat_manager.is_ready = cls.start(); -console.log('MailTools:', cls); return base_obj.chat_manager; diff --git a/mail_archives/views/templates.xml b/mail_archives/views/templates.xml index c6e872f..a99a03d 100644 --- a/mail_archives/views/templates.xml +++ b/mail_archives/views/templates.xml @@ -6,7 +6,6 @@ inherit_id="web.assets_backend"> - diff --git a/mail_base/__init__.py b/mail_base/__init__.py new file mode 100644 index 0000000..40a96af --- /dev/null +++ b/mail_base/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- diff --git a/mail_base/__openerp__.py b/mail_base/__openerp__.py new file mode 100644 index 0000000..c16ca84 --- /dev/null +++ b/mail_base/__openerp__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +{ + "name": "mail_base", + "summary": """Contain common code for other mail modules""", + "category": "Uncategorized", + "images": [], + "version": "1.0.0", + + "author": "IT-Projects LLC, Pavel Romanchenko", + "website": "http://www.it-projects.info", + "license": "LGPL-3", + + "depends": [ + "base", + "mail" + ], + + "data": [ + "views/templates.xml", + ], + 'installable': True, +} diff --git a/mail_archives/static/src/js/base.js b/mail_base/static/src/js/base.js similarity index 100% rename from mail_archives/static/src/js/base.js rename to mail_base/static/src/js/base.js diff --git a/mail_base/views/templates.xml b/mail_base/views/templates.xml new file mode 100644 index 0000000..8846a55 --- /dev/null +++ b/mail_base/views/templates.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file From 394a165b4ea8159f7f757857abaca223e5679d6a Mon Sep 17 00:00:00 2001 From: x620 Date: Fri, 1 Apr 2016 16:26:09 +0500 Subject: [PATCH 045/148] Refactoring: overrides of smaller methods that do not change the larger --- mail_archives/static/src/js/archives.js | 144 +++--------------------- mail_base/static/src/js/base.js | 9 +- 2 files changed, 15 insertions(+), 138 deletions(-) diff --git a/mail_archives/static/src/js/archives.js b/mail_archives/static/src/js/archives.js index bca7205..fb499ed 100644 --- a/mail_archives/static/src/js/archives.js +++ b/mail_archives/static/src/js/archives.js @@ -14,120 +14,29 @@ var time = require('web.time'); var web_client = require('web.web_client'); var _t = core._t; -var LIMIT = 100; - -var MessageModel = new Model('mail.message', session.context); -//------------------------------------------------------------------------------- -var emojis = []; -var emoji_substitutions = {}; -var needaction_counter = 0; -var mention_partner_suggestions = []; -var discuss_ids = {}; //------------------------------------------------------------------------------- // Inherit class and override methods base_obj.MailTools.include({ - make_message: function (data) { - var msg = { - id: data.id, - author_id: data.author_id, - body_short: data.body_short || "", - body: data.body || "", - date: moment(time.str_to_datetime(data.date)), - message_type: data.message_type, - subtype_description: data.subtype_description, - is_author: data.author_id && data.author_id[0] === session.partner_id, - is_note: data.is_note, - is_system_notification: data.message_type === 'notification' && data.model === 'mail.channel', - attachment_ids: data.attachment_ids, - subject: data.subject, - email_from: data.email_from, - record_name: data.record_name, - tracking_value_ids: data.tracking_value_ids, - channel_ids: data.channel_ids, - model: data.model, - res_id: data.res_id, - url: session.url("/mail/view?message_id=" + data.id) - }; - - _.each(_.keys(emoji_substitutions), function (key) { - var escaped_key = String(key).replace(/([.*+?=^!:${}()|[\]\/\\])/g, '\\$1'); - var regexp = new RegExp("(?:^|\\s|<[a-z]*>)(" + escaped_key + ")(?=\\s|$|)", "g"); - msg.body = msg.body.replace(regexp, ' '+emoji_substitutions[key]+' '); - }); - - var properties = this.get_properties(msg); - // Add property to Object + get_properties: function(msg){ + var properties = this._super.apply(this, arguments); properties.is_archive = this.property_descr("channel_archive", msg, this); - Object.defineProperties(msg, properties); + return properties; + }, - msg = this.set_channel_flags(data, msg); - // Set archive flag + set_channel_flags: function(data, msg){ + this._super.apply(this, arguments); msg.is_archive = true; - if (msg.model === 'mail.channel') { - // Add 'channel_archive' to channel_array - var channel_array = this.get_channel_array(msg).concat('channel_archive'); - var real_channels = _.without(channel_array); - var origin = real_channels.length === 1 ? real_channels[0] : undefined; - var channel = origin && base_obj.chat_manager.get_channel(origin); - if (channel) { - msg.origin_id = origin; - msg.origin_name = channel.name; - } - } - - if ((!msg.author_id || !msg.author_id[0]) && msg.email_from) { - msg.mailto = msg.email_from; - } else { - msg.displayed_author = msg.author_id && msg.author_id[1] || - msg.email_from || _t('Anonymous'); - } - - msg.author_redirect = !msg.is_author; - - if (msg.author_id && msg.author_id[0]) { - msg.avatar_src = "/web/image/res.partner/" + msg.author_id[0] + "/image_small"; - } else if (msg.message_type === 'email') { - msg.avatar_src = "/mail/static/src/img/email_icon.png"; - } else { - msg.avatar_src = "/mail/static/src/img/smiley/avatar.jpg"; - } - - msg.body = this.parse_and_transform(msg.body, this.add_link); - - _.each(msg.attachment_ids, function(a) { - a.url = '/web/content/' + a.id + '?download=true'; - }); - return msg; }, - fetch_from_channel: function (channel, options) { - options = options || {}; - // Add archive domain - var domain = (channel.id === "channel_archive") ? [] : this.get_domain(channel); - var cache = this.get_channel_cache(channel, options.domain); - - if (options.domain) { - domain = new data.CompoundDomain(domain, options.domain || []); - } - if (options.load_more) { - var min_message_id = cache.messages[0].id; - domain = new data.CompoundDomain([['id', '<', min_message_id]], domain); - } - var self = this; - return MessageModel.call('message_fetch', [domain], {limit: LIMIT}).then(function (msgs) { - if (!cache.all_history_loaded) { - cache.all_history_loaded = msgs.length < LIMIT; - } - cache.loaded = true; + get_channel_array: function(msg){ + var arr = this._super.apply(this, arguments); + return arr.concat('channel_archive'); + }, - _.each(msgs, function (msg) { - self.add_message(msg, {channel_id: channel.id, silent: true, domain: options.domain}); - }); - var channel_cache = self.get_channel_cache(channel, options.domain || []); - return channel_cache.messages; - }); + get_domain: function(channel){ + return (channel.id === "channel_archive") ? [] : this._super.apply(this, arguments); }, start: function(){ @@ -138,34 +47,7 @@ base_obj.MailTools.include({ type: "static" }); - var load_channels = session.rpc('/mail/client_action').then(function (result) { - _.each(result.channel_slots, function (channels) { - _.each(channels, cls.add_channel); - }); - needaction_counter = result.needaction_inbox_counter; - mention_partner_suggestions = result.mention_partner_suggestions; - }); - - var load_emojis = session.rpc("/mail/chat_init").then(function (result) { - emojis = result.emoji; - _.each(emojis, function(emoji) { - emoji_substitutions[_.escape(emoji.source)] = emoji.substitution; - }); - }); - - var ir_model = new Model("ir.model.data"); - var load_menu_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_menu_root_chat"], {}, {shadow: true}); - var load_action_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_action_client_chat"], {}, {shadow: true}); - - bus.on('notification', null, cls.on_notification); - - return $.when(load_menu_id, load_action_id, load_channels, load_emojis).then(function (menu_id, action_id) { - discuss_ids = { - menu_id: menu_id, - action_id: action_id - }; - bus.start_polling(); - }); + return $.when(this._super.apply(this, arguments)); } }); diff --git a/mail_base/static/src/js/base.js b/mail_base/static/src/js/base.js index 7e2bb1b..8687ba2 100644 --- a/mail_base/static/src/js/base.js +++ b/mail_base/static/src/js/base.js @@ -62,10 +62,6 @@ var channel_seen = _.throttle(function (channel) { var MailTools = core.Class.extend({ - init: function () { - // suggested regexp (gruber url matching regexp, adapted to js, see https://gist.github.com/gruber/8891611) - this.url_regexp = /\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/gi; - }, send_native_notification: function (title, content) { var notification = new Notification(title, {body: content, icon: "/mail/static/src/img/odoo_o.png"}); @@ -437,14 +433,13 @@ var MailTools = core.Class.extend({ get_domain: function(channel){ return (channel.id === "channel_inbox") ? [['needaction', '=', true]] : - (channel.id === "channel_starred") ? [['starred', '=', true]] : - [['channel_ids', 'in', channel.id]]; + (channel.id === "channel_starred") ? [['starred', '=', true]] : false; }, // options: domain, load_more fetch_from_channel: function (channel, options) { options = options || {}; - var domain = this.get_domain(channel); + var domain = this.get_domain(channel) || [['channel_ids', 'in', channel.id]]; var cache = this.get_channel_cache(channel, options.domain); if (options.domain) { From 284144d9a1c4b5071eca4dd3a95b61b606bbd43d Mon Sep 17 00:00:00 2001 From: x620 Date: Fri, 1 Apr 2016 18:26:47 +0500 Subject: [PATCH 046/148] README.rst: no read messages, but all messages main.js: commented deprecated code __openerp__.py: fix syntax error --- mail_archives/README.rst | 4 ++-- res_partner_mails_count/__openerp__.py | 2 +- res_partner_mails_count/static/src/js/main.js | 20 +++++++++---------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/mail_archives/README.rst b/mail_archives/README.rst index 100ef14..4d06ddf 100644 --- a/mail_archives/README.rst +++ b/mail_archives/README.rst @@ -1,11 +1,11 @@ Mail Archives ============= -Display archive channel which contain read messages +Adds Archive menu, which shows all messages Usage ----- -Click by archive menu item and receive read messages (having attribute read = true) +Click by archive menu item and receive all messages Further information ------------------- diff --git a/res_partner_mails_count/__openerp__.py b/res_partner_mails_count/__openerp__.py index 9e86c59..f60b70c 100644 --- a/res_partner_mails_count/__openerp__.py +++ b/res_partner_mails_count/__openerp__.py @@ -14,7 +14,7 @@ "depends": [ 'base', - 'mail' , + 'mail', ], "external_dependencies": {"python": [], "bin": []}, "data": [ diff --git a/res_partner_mails_count/static/src/js/main.js b/res_partner_mails_count/static/src/js/main.js index 16c9d56..96415c6 100644 --- a/res_partner_mails_count/static/src/js/main.js +++ b/res_partner_mails_count/static/src/js/main.js @@ -1,10 +1,10 @@ -openerp.res_partner_mails_count = function(instance){ - instance.mail.Wall.include({ - init: function(){ - this._super.apply(this, arguments); - if(this.context.ignore_search_model){ - delete this.defaults.model; - } - } - }); -}; +// openerp.res_partner_mails_count = function(instance){ +// instance.mail.Wall.include({ +// init: function(){ +// this._super.apply(this, arguments); +// if(this.context.ignore_search_model){ +// delete this.defaults.model; +// } +// } +// }); +// }; From 37196765fbf6400ee8ec163aa287882b3f085ec8 Mon Sep 17 00:00:00 2001 From: x620 Date: Mon, 4 Apr 2016 16:50:44 +0500 Subject: [PATCH 047/148] [FIX] archives.js, base.js - corrections related to inheritance [FIX] README.rst - more precisely worded description and added sha value [FIX] models.py, res_partner_mails_count.xml, views.xml - removed unused code [FIX] __openerp__.py - styling --- mail_archives/README.rst | 4 +- mail_archives/__openerp__.py | 2 +- mail_archives/models/models.py | 12 -- mail_archives/static/src/js/archives.js | 17 +-- mail_archives/static/src/xml/menu.xml | 18 +-- mail_archives/views/views.xml | 59 +------- mail_base/README.rst | 5 +- mail_base/__openerp__.py | 8 +- mail_base/static/src/js/base.js | 137 +++++++++--------- res_partner_mails_count/README.rst | 2 +- .../views/res_partner_mails_count.xml | 14 -- 11 files changed, 98 insertions(+), 180 deletions(-) diff --git a/mail_archives/README.rst b/mail_archives/README.rst index 4d06ddf..3b2d013 100644 --- a/mail_archives/README.rst +++ b/mail_archives/README.rst @@ -5,11 +5,11 @@ Adds Archive menu, which shows all messages Usage ----- -Click by archive menu item and receive all messages +Click Messaing/Arhive menu -- all messages are displayed Further information ------------------- HTML Description: https://apps.odoo.com/apps/modules/9.0/mail_archives/ -Tested on Odoo 9.0 \ No newline at end of file +Tested on Odoo 9.0 b9f206953e3f877adf18643f154d1262842564ee \ No newline at end of file diff --git a/mail_archives/__openerp__.py b/mail_archives/__openerp__.py index 6fb0495..3dcd07f 100644 --- a/mail_archives/__openerp__.py +++ b/mail_archives/__openerp__.py @@ -7,7 +7,7 @@ "version": "1.0.0", "author": "IT-Projects LLC, Pavel Romanchenko", - "website": "http://www.it-projects.info", + "website": "https://www.it-projects.info", "license": "LGPL-3", "depends": [ diff --git a/mail_archives/models/models.py b/mail_archives/models/models.py index a3a40fa..16e8093 100644 --- a/mail_archives/models/models.py +++ b/mail_archives/models/models.py @@ -1,15 +1,3 @@ # -*- coding: utf-8 -*- from openerp import models, fields, api - -# class mail_arhives(models.Model): -# _name = 'mail_arhives.mail_arhives' - -# name = fields.Char() -# value = fields.Integer() -# value2 = fields.Float(compute="_value_pc", store=True) -# description = fields.Text() -# -# @api.depends('value') -# def _value_pc(self): -# self.value2 = float(self.value) / 100 \ No newline at end of file diff --git a/mail_archives/static/src/js/archives.js b/mail_archives/static/src/js/archives.js index fb499ed..8020389 100644 --- a/mail_archives/static/src/js/archives.js +++ b/mail_archives/static/src/js/archives.js @@ -37,23 +37,20 @@ base_obj.MailTools.include({ get_domain: function(channel){ return (channel.id === "channel_archive") ? [] : this._super.apply(this, arguments); - }, + } +}); - start: function(){ +// Change chat_manager with override methods +base_obj.chat_manager.is_ready.then(function(){ // Add archive channel - this.add_channel({ + base_obj.chat_manager.mail_tools.add_channel({ id: "channel_archive", name: _t("Archive"), type: "static" }); - return $.when(this._super.apply(this, arguments)); - } -}); - -// Change chat_manager with override methods -var cls = new base_obj.MailTools(base_obj.chat_manager); -base_obj.chat_manager.is_ready = cls.start(); + return $.when(); + }); return base_obj.chat_manager; diff --git a/mail_archives/static/src/xml/menu.xml b/mail_archives/static/src/xml/menu.xml index b4dcb23..2e8166a 100644 --- a/mail_archives/static/src/xml/menu.xml +++ b/mail_archives/static/src/xml/menu.xml @@ -9,17 +9,11 @@ -
- -
Congratulations, your inbox is empty
-
New messages appear here.
+ + + +
Archive is empty
+
- -
No starred message
-
You can mark any message as 'starred', and it shows up in this channel.
-
- -
Archive is empty
-
-
+ diff --git a/mail_archives/views/views.xml b/mail_archives/views/views.xml index dc3a5bb..35855a3 100644 --- a/mail_archives/views/views.xml +++ b/mail_archives/views/views.xml @@ -1,59 +1,4 @@ - - - - - - - - - - - - - - - - - + + \ No newline at end of file diff --git a/mail_base/README.rst b/mail_base/README.rst index ed52ea7..a467263 100644 --- a/mail_base/README.rst +++ b/mail_base/README.rst @@ -1,11 +1,12 @@ Mail Base ========= -Module contain common code for other mail modules +Modules doesn't introduce new features, but make built-in mail js features extendable. Usage ----- - +To use this module you need either install module that depends on it or create new module. Further information ------------------- +Due to odoo restrictions, module makes mail initialization again. That is browser loads emoji and other chat data twice. This is the only way to make Mail feature extendable. diff --git a/mail_base/__openerp__.py b/mail_base/__openerp__.py index c16ca84..1a2731c 100644 --- a/mail_base/__openerp__.py +++ b/mail_base/__openerp__.py @@ -1,13 +1,13 @@ # -*- coding: utf-8 -*- { - "name": "mail_base", - "summary": """Contain common code for other mail modules""", - "category": "Uncategorized", + "name": "Mail Base", + "summary": """Makes Mail extendable""", + "category": "Discuss", "images": [], "version": "1.0.0", "author": "IT-Projects LLC, Pavel Romanchenko", - "website": "http://www.it-projects.info", + "website": "https://www.it-projects.info", "license": "LGPL-3", "depends": [ diff --git a/mail_base/static/src/js/base.js b/mail_base/static/src/js/base.js index 8687ba2..a56d780 100644 --- a/mail_base/static/src/js/base.js +++ b/mail_base/static/src/js/base.js @@ -60,7 +60,6 @@ var channel_seen = _.throttle(function (channel) { return ChannelModel.call('channel_seen', [[channel.id]], {}, {shadow: true}); }, 3000); - var MailTools = core.Class.extend({ send_native_notification: function (title, content) { @@ -319,7 +318,7 @@ var MailTools = core.Class.extend({ chat_manager.bus.trigger("channel_toggle_fold", channel); } } else { - channel = chat_manager.make_channel(data, options); + channel = chat_manager.mail_tools.make_channel(data, options); channels.push(channel); channels = _.sortBy(channels, function (channel) { return channel.name.toLowerCase(); }); if (!options.silent) { @@ -696,49 +695,6 @@ var MailTools = core.Class.extend({ dm.status = data.im_status; chat_manager.bus.trigger('update_dm_presence', dm); } - }, - - start: function(){ - this.add_channel({ - id: "channel_inbox", - name: _t("Inbox"), - type: "static" - }, { display_needactions: true }); - - this.add_channel({ - id: "channel_starred", - name: _t("Starred"), - type: "static" - }); - - var load_channels = session.rpc('/mail/client_action').then(function (result) { - _.each(result.channel_slots, function (channels) { - _.each(channels, cls.add_channel); - }); - needaction_counter = result.needaction_inbox_counter; - mention_partner_suggestions = result.mention_partner_suggestions; - }); - - var load_emojis = session.rpc("/mail/chat_init").then(function (result) { - emojis = result.emoji; - _.each(emojis, function(emoji) { - emoji_substitutions[_.escape(emoji.source)] = emoji.substitution; - }); - }); - - var ir_model = new Model("ir.model.data"); - var load_menu_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_menu_root_chat"], {}, {shadow: true}); - var load_action_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_action_client_chat"], {}, {shadow: true}); - - bus.on('notification', null, cls.on_notification); - - return $.when(load_menu_id, load_action_id, load_channels, load_emojis).then(function (menu_id, action_id) { - discuss_ids = { - menu_id: menu_id, - action_id: action_id - }; - bus.start_polling(); - }); } }); @@ -746,9 +702,14 @@ var cls = new MailTools(); // Public interface //---------------------------------------------------------------------------------- -// these two functions are exposed for extensibility purposes and shouldn't be called by other modules -chat_manager.make_message = cls.make_message; -chat_manager.make_channel = cls.make_channel; +chat_manager.mail_tools = cls; +// we add this function this way in order to make them extendable via MailTools.include({...}) +chat_manager.make_message = function(){ + chat_manager.mail_tools.make_message.apply(chat_manager.mail_tools, arguments) +}; +chat_manager.make_channel = function(){ + chat_manager.mail_tools.make_channel.apply(chat_manager.mail_tools, arguments) +}; chat_manager.post_message = function (data, options) { options = options || {}; var msg = { @@ -782,7 +743,7 @@ chat_manager.post_message = function (data, options) { return MessageModel.call('message_format', [msg_id]).then(function (msgs) { msgs[0].model = options.model; msgs[0].res_id = options.res_id; - cls.add_message(msgs[0]); + chat_manager.mail_tools.add_message(msgs[0]); }); }); } @@ -796,21 +757,21 @@ chat_manager.get_messages = function (options) { if ('channel_id' in options && options.load_more) { // get channel messages, force load_more channel = this.get_channel(options.channel_id); - return cls.fetch_from_channel(channel, {domain: options.domain || {}, load_more: true}); + return chat_manager.mail_tools.fetch_from_channel(channel, {domain: options.domain || {}, load_more: true}); } if ('channel_id' in options) { // channel message, check in cache first channel = this.get_channel(options.channel_id); - var channel_cache = cls.get_channel_cache(channel, options.domain); + var channel_cache = chat_manager.mail_tools.get_channel_cache(channel, options.domain); if (channel_cache.loaded) { return $.when(channel_cache.messages); } else { - return cls.fetch_from_channel(channel, {domain: options.domain}); + return chat_manager.mail_tools.fetch_from_channel(channel, {domain: options.domain}); } } if ('ids' in options) { // get messages from their ids (chatter is the main use case) - return cls.fetch_document_messages(options.ids, options).then(function(result) { + return chat_manager.mail_tools.fetch_document_messages(options.ids, options).then(function(result) { chat_manager.mark_as_read(options.ids); return result; }); @@ -820,7 +781,7 @@ chat_manager.get_messages = function (options) { // case is when using the full composer) var domain = [['model', '=', options.model], ['res_id', '=', options.res_id]]; MessageModel.call('message_fetch', [domain], {limit: 30}).then(function (msgs) { - return _.map(msgs, cls.add_message); + return _.map(msgs, chat_manager.mail_tools.add_message); }); } }; @@ -855,8 +816,8 @@ chat_manager.undo_mark_as_read = function (message_ids, channel) { }; chat_manager.mark_channel_as_seen = function (channel) { if (channel.unread_counter > 0 && channel.type !== 'static') { - cls.update_channel_unread_counter(channel, 0); - cls.channel_seen(channel); + chat_manager.mail_tools.update_channel_unread_counter(channel, 0); + chat_manager.mail_tools.channel_seen(channel); } }; chat_manager.get_channels = function () { @@ -869,7 +830,7 @@ chat_manager.get_dm_from_partner_id = function (partner_id) { return _.findWhere(channels, {direct_partner_id: partner_id}); }; chat_manager.all_history_loaded = function (channel, domain) { - return cls.get_channel_cache(channel, domain).all_history_loaded; + return chat_manager.mail_tools.get_channel_cache(channel, domain).all_history_loaded; }; chat_manager.get_mention_partner_suggestions = function (channel) { if (!channel) { @@ -935,7 +896,7 @@ chat_manager.create_channel = function (name, type) { return ChannelModel .call(method, args) - .then(cls.add_channel); + .then(chat_manager.mail_tools.add_channel); }; chat_manager.join_channel = function (channel_id, options) { if (channel_id in channel_defs) { @@ -950,13 +911,13 @@ chat_manager.join_channel = function (channel_id, options) { channel_defs[channel_id] = ChannelModel .call('channel_join_and_get_info', [[channel_id]]) .then(function (result) { - return cls.add_channel(result, options); + return chat_manager.mail_tools.add_channel(result, options); }); } return channel_defs[channel_id]; }; chat_manager.open_and_detach_dm = function (partner_id) { - return ChannelModel.call('channel_get_and_minimize', [[partner_id]]).then(cls.add_channel); + return ChannelModel.call('channel_get_and_minimize', [[partner_id]]).then(chat_manager.mail_tools.add_channel); }; chat_manager.open_channel = function (channel) { chat_manager.bus.trigger(client_action_open ? 'open_channel' : 'detach_channel', channel); @@ -969,7 +930,7 @@ chat_manager.unsubscribe = function (channel) { def = ChannelModel.call('channel_pin', [channel.uuid, false]); } return def.then(function () { - cls.remove_channel(channel); + chat_manager.mail_tools.remove_channel(channel); }); }; chat_manager.close_chat_session = function (channel_id) { @@ -1045,7 +1006,7 @@ chat_manager.get_channels_preview = function (channels) { _.each(missing_channels, function (channel_preview) { var channel = _.findWhere(channels, {id: channel_preview.id}); if (channel) { - channel_preview.last_message = cls.add_message(channel.last_message); + channel_preview.last_message = chat_manager.mail_tools.add_message(channel.last_message); } }); return _.filter(channels_preview, function (channel) { @@ -1054,7 +1015,7 @@ chat_manager.get_channels_preview = function (channels) { }); }; chat_manager.get_message_body_preview = function (message_body) { - return cls.parse_and_transform(message_body, inline); + return chat_manager.mail_tools.parse_and_transform(message_body, inline); }; chat_manager.search_partner = function (search_val, limit) { return PartnerModel.call('im_search', [search_val, limit || 20], {}, {shadow: true}).then(function(result) { @@ -1069,12 +1030,58 @@ chat_manager.search_partner = function (search_val, limit) { return values; }); }; -chat_manager.send_native_notification = cls.send_native_notification; +chat_manager.send_native_notification = function(){ + chat_manager.mail_tools.send_native_notification.apply(chat_manager.mail_tools, arguments) +}; chat_manager.bus.on('client_action_open', null, function (open) { client_action_open = open; }); -chat_manager.is_ready = cls.start(); +// In order to extend init use chat_manager.is_ready Derrered object. See example in mail_arhive module +function init(){ + chat_manager.mail_tools.add_channel({ + id: "channel_inbox", + name: _t("Inbox"), + type: "static" + }, { display_needactions: true }); + + chat_manager.mail_tools.add_channel({ + id: "channel_starred", + name: _t("Starred"), + type: "static" + }); + + var load_channels = session.rpc('/mail/client_action').then(function (result) { + _.each(result.channel_slots, function (channels) { + _.each(channels, chat_manager.mail_tools.add_channel); + }); + needaction_counter = result.needaction_inbox_counter; + mention_partner_suggestions = result.mention_partner_suggestions; + }); + + var load_emojis = session.rpc("/mail/chat_init").then(function (result) { + emojis = result.emoji; + _.each(emojis, function(emoji) { + emoji_substitutions[_.escape(emoji.source)] = emoji.substitution; + }); + }); + + var ir_model = new Model("ir.model.data"); + var load_menu_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_menu_root_chat"], {}, {shadow: true}); + var load_action_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_action_client_chat"], {}, {shadow: true}); + + bus.on('notification', null, chat_manager.mail_tools.on_notification); + + return $.when(load_menu_id, load_action_id, load_channels, load_emojis).then(function (menu_id, action_id) { + discuss_ids = { + menu_id: menu_id, + action_id: action_id + }; + bus.start_polling(); + }); +} + +chat_manager.is_ready = init(); return { chat_manager: chat_manager, MailTools: MailTools diff --git a/res_partner_mails_count/README.rst b/res_partner_mails_count/README.rst index 8a14292..25b2a27 100644 --- a/res_partner_mails_count/README.rst +++ b/res_partner_mails_count/README.rst @@ -13,4 +13,4 @@ Further information HTML Description: https://apps.odoo.com/apps/modules/9.0/res_partner_mails_count/ -Tested on Odoo 9.0 \ No newline at end of file +Tested on Odoo 9.0 b9f206953e3f877adf18643f154d1262842564ee \ No newline at end of file diff --git a/res_partner_mails_count/views/res_partner_mails_count.xml b/res_partner_mails_count/views/res_partner_mails_count.xml index 11f4302..0c1573c 100644 --- a/res_partner_mails_count/views/res_partner_mails_count.xml +++ b/res_partner_mails_count/views/res_partner_mails_count.xml @@ -14,19 +14,5 @@

- - - - - - - - - - - - - - From 01323cf2ca58b5dbcd0c2b4d77488413f6ce499f Mon Sep 17 00:00:00 2001 From: x620 Date: Mon, 4 Apr 2016 17:02:51 +0500 Subject: [PATCH 048/148] [FIX] change website --- mail_archives/__openerp__.py | 2 +- mail_base/__openerp__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mail_archives/__openerp__.py b/mail_archives/__openerp__.py index 3dcd07f..c5e2bcf 100644 --- a/mail_archives/__openerp__.py +++ b/mail_archives/__openerp__.py @@ -7,7 +7,7 @@ "version": "1.0.0", "author": "IT-Projects LLC, Pavel Romanchenko", - "website": "https://www.it-projects.info", + "website": "https://it-projects.info", "license": "LGPL-3", "depends": [ diff --git a/mail_base/__openerp__.py b/mail_base/__openerp__.py index 1a2731c..3ddb6d3 100644 --- a/mail_base/__openerp__.py +++ b/mail_base/__openerp__.py @@ -7,7 +7,7 @@ "version": "1.0.0", "author": "IT-Projects LLC, Pavel Romanchenko", - "website": "https://www.it-projects.info", + "website": "https://it-projects.info", "license": "LGPL-3", "depends": [ From 335802f3150aa0e36a45de518b2220edf417e2ba Mon Sep 17 00:00:00 2001 From: x620 Date: Mon, 4 Apr 2016 17:13:32 +0500 Subject: [PATCH 049/148] [FIX] remove unused files --- mail_archives/__openerp__.py | 1 - mail_archives/models/__init__.py | 2 -- mail_archives/models/models.py | 3 --- mail_archives/views/views.xml | 4 ---- 4 files changed, 10 deletions(-) delete mode 100644 mail_archives/models/models.py delete mode 100644 mail_archives/views/views.xml diff --git a/mail_archives/__openerp__.py b/mail_archives/__openerp__.py index c5e2bcf..8ecce36 100644 --- a/mail_archives/__openerp__.py +++ b/mail_archives/__openerp__.py @@ -17,7 +17,6 @@ ], "data": [ - "views/views.xml", "views/templates.xml", ], "qweb": [ diff --git a/mail_archives/models/__init__.py b/mail_archives/models/__init__.py index 5305644..40a96af 100644 --- a/mail_archives/models/__init__.py +++ b/mail_archives/models/__init__.py @@ -1,3 +1 @@ # -*- coding: utf-8 -*- - -from . import models \ No newline at end of file diff --git a/mail_archives/models/models.py b/mail_archives/models/models.py deleted file mode 100644 index 16e8093..0000000 --- a/mail_archives/models/models.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- - -from openerp import models, fields, api diff --git a/mail_archives/views/views.xml b/mail_archives/views/views.xml deleted file mode 100644 index 35855a3..0000000 --- a/mail_archives/views/views.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file From c569272d8c1d420b8e320a822361379f67999f68 Mon Sep 17 00:00:00 2001 From: x620 Date: Mon, 4 Apr 2016 17:41:05 +0500 Subject: [PATCH 050/148] [FIX] change "this" to "chat_manager.mail_tools" in class MailTools because "this" possibly undefined [FIX] remove comment --- mail_archives/static/src/js/archives.js | 1 - mail_base/static/src/js/base.js | 89 ++++++++++++------------- 2 files changed, 41 insertions(+), 49 deletions(-) diff --git a/mail_archives/static/src/js/archives.js b/mail_archives/static/src/js/archives.js index 8020389..86813fb 100644 --- a/mail_archives/static/src/js/archives.js +++ b/mail_archives/static/src/js/archives.js @@ -40,7 +40,6 @@ base_obj.MailTools.include({ } }); -// Change chat_manager with override methods base_obj.chat_manager.is_ready.then(function(){ // Add archive channel base_obj.chat_manager.mail_tools.add_channel({ diff --git a/mail_base/static/src/js/base.js b/mail_base/static/src/js/base.js index a56d780..dee2ae8 100644 --- a/mail_base/static/src/js/base.js +++ b/mail_base/static/src/js/base.js @@ -83,7 +83,7 @@ var MailTools = core.Class.extend({ if (msg.author_id[1]) { title = _.escape(msg.author_id[1]); } - var content = this.parse_and_transform(msg.body, this.strip_html).substr(0, preview_msg_max_size); + var content = chat_manager.mail_tools.parse_and_transform(msg.body, chat_manager.mail_tools.strip_html).substr(0, preview_msg_max_size); if (!bus.is_odoo_focused()) { global_unread_counter++; @@ -93,7 +93,7 @@ var MailTools = core.Class.extend({ if (Notification && Notification.permission === "granted") { if (bus.is_master) { - send_native_notification(title, content); + chat_manager.mail_tools.send_native_notification(title, content); } } else { web_client.do_notify(title, content); @@ -107,15 +107,14 @@ var MailTools = core.Class.extend({ var open_token = "OPEN" + Date.now(); var string = html_string.replace(/</g, open_token); var children = $('
').html(string).contents(); - return this._parse_and_transform(children, transform_function) + return chat_manager.mail_tools._parse_and_transform(children, transform_function) .replace(new RegExp(open_token, "g"), "<"); }, _parse_and_transform: function (nodes, transform_function) { - var self = this; return _.map(nodes, function (node) { return transform_function(node, function () { - return self._parse_and_transform(node.childNodes, transform_function); + return chat_manager.mail_tools._parse_and_transform(node.childNodes, transform_function); }); }).join(""); }, @@ -155,7 +154,7 @@ var MailTools = core.Class.extend({ var msg = _.findWhere(messages, { id: data.id }); if (!msg) { - msg = this.make_message(data); + msg = chat_manager.mail_tools.make_message(data); // Keep the array ordered by id when inserting the new message messages.splice(_.sortedIndex(messages, msg, 'id'), 0, msg); _.each(msg.channel_ids, function (channel_id) { @@ -171,7 +170,7 @@ var MailTools = core.Class.extend({ } if (channel.type !== 'static' && !msg.is_author && !msg.is_system_notification) { if (options.increment_unread) { - this.update_channel_unread_counter(channel, channel.unread_counter+1); + chat_manager.mail_tools.update_channel_unread_counter(channel, channel.unread_counter+1); } if (channel.is_chat && options.show_notification) { if (!client_action_open && config.device.size_class !== config.device.SIZES.XS) { @@ -180,7 +179,7 @@ var MailTools = core.Class.extend({ } var query = {is_displayed: false}; chat_manager.bus.trigger('anyone_listening', channel, query); - this.notify_incoming_message(msg, query); + chat_manager.mail_tools.notify_incoming_message(msg, query); } } } @@ -189,7 +188,7 @@ var MailTools = core.Class.extend({ chat_manager.bus.trigger('new_message', msg); } } else if (options.domain && options.domain !== []) { - this.add_to_cache(msg, options.domain); + chat_manager.mail_tools.add_to_cache(msg, options.domain); } return msg; }, @@ -212,8 +211,8 @@ var MailTools = core.Class.extend({ get_properties: function(msg){ return { - is_starred: this.property_descr("channel_starred", msg, this), - is_needaction: this.property_descr("channel_inbox", msg, this) + is_starred: chat_manager.mail_tools.property_descr("channel_starred", msg, chat_manager.mail_tools), + is_needaction: chat_manager.mail_tools.property_descr("channel_inbox", msg, chat_manager.mail_tools) } }, @@ -260,11 +259,11 @@ var MailTools = core.Class.extend({ msg.body = msg.body.replace(regexp, ' '+emoji_substitutions[key]+' '); }); - Object.defineProperties(msg, this.get_properties(msg)); + Object.defineProperties(msg, chat_manager.mail_tools.get_properties(msg)); - msg = this.set_channel_flags(data, msg); + msg = chat_manager.mail_tools.set_channel_flags(data, msg); if (msg.model === 'mail.channel') { - var real_channels = _.without(this.get_channel_array(msg)); + var real_channels = _.without(chat_manager.mail_tools.get_channel_array(msg)); var origin = real_channels.length === 1 ? real_channels[0] : undefined; var channel = origin && chat_manager.get_channel(origin); if (channel) { @@ -294,7 +293,7 @@ var MailTools = core.Class.extend({ } // add anchor tags to urls - msg.body = this.parse_and_transform(msg.body, this.add_link); + msg.body = chat_manager.mail_tools.parse_and_transform(msg.body, chat_manager.mail_tools.add_link); // Compute url of attachments _.each(msg.attachment_ids, function(a) { @@ -370,7 +369,7 @@ var MailTools = core.Class.extend({ } channel.is_chat = !channel.type.match(/^(public|private|static)$/); if (data.message_unread_counter) { - this.update_channel_unread_counter(channel, data.message_unread_counter); + chat_manager.mail_tools.update_channel_unread_counter(channel, data.message_unread_counter); } return channel; }, @@ -438,8 +437,8 @@ var MailTools = core.Class.extend({ // options: domain, load_more fetch_from_channel: function (channel, options) { options = options || {}; - var domain = this.get_domain(channel) || [['channel_ids', 'in', channel.id]]; - var cache = this.get_channel_cache(channel, options.domain); + var domain = chat_manager.mail_tools.get_domain(channel) || [['channel_ids', 'in', channel.id]]; + var cache = chat_manager.mail_tools.get_channel_cache(channel, options.domain); if (options.domain) { domain = new data.CompoundDomain(domain, options.domain || []); @@ -448,7 +447,6 @@ var MailTools = core.Class.extend({ var min_message_id = cache.messages[0].id; domain = new data.CompoundDomain([['id', '<', min_message_id]], domain); } - var self = this; return MessageModel.call('message_fetch', [domain], {limit: LIMIT}).then(function (msgs) { if (!cache.all_history_loaded) { cache.all_history_loaded = msgs.length < LIMIT; @@ -456,9 +454,9 @@ var MailTools = core.Class.extend({ cache.loaded = true; _.each(msgs, function (msg) { - self.add_message(msg, {channel_id: channel.id, silent: true, domain: options.domain}); + chat_manager.mail_tools.add_message(msg, {channel_id: channel.id, silent: true, domain: options.domain}); }); - var channel_cache = self.get_channel_cache(channel, options.domain || []); + var channel_cache = chat_manager.mail_tools.get_channel_cache(channel, options.domain || []); return channel_cache.messages; }); }, @@ -471,14 +469,13 @@ var MailTools = core.Class.extend({ var loaded_msg_ids = _.pluck(loaded_msgs, 'id'); options = options || {}; - var self = this; if (options.force_fetch || _.difference(ids.slice(0, LIMIT), loaded_msg_ids).length) { var ids_to_load = _.difference(ids, loaded_msg_ids).slice(0, LIMIT); return MessageModel.call('message_format', [ids_to_load]).then(function (msgs) { var processed_msgs = []; _.each(msgs, function (msg) { - processed_msgs.push(self.add_message(msg, {silent: true})); + processed_msgs.push(chat_manager.mail_tools.add_message(msg, {silent: true})); }); return _.sortBy(loaded_msgs.concat(processed_msgs), function (msg) { return msg.date; @@ -521,31 +518,27 @@ var MailTools = core.Class.extend({ var model = notification[0][1]; if (model === 'ir.needaction') { // new message in the inbox - // this.on_needaction_notification(notification[1]); - cls.on_needaction_notification(notification[1]); + chat_manager.mail_tools.on_needaction_notification(notification[1]); } else if (model === 'mail.channel') { // new message in a channel - // this.on_channel_notification(notification[1]); - cls.on_channel_notification(notification[1]); + chat_manager.mail_tools.on_channel_notification(notification[1]); } else if (model === 'res.partner') { // channel joined/left, message marked as read/(un)starred, chat open/closed - // this.on_partner_notification(notification[1]); - cls.on_partner_notification(notification[1]); + chat_manager.mail_tools.on_partner_notification(notification[1]); } else if (model === 'bus.presence') { // update presence of users - // this.on_presence_notification(notification[1]); - cls.on_presence_notification(notification[1]); + chat_manager.mail_tools.on_presence_notification(notification[1]); } }); }, on_needaction_notification: function (message) { - message = this.add_message(message, { + message = chat_manager.mail_tools.add_message(message, { channel_id: 'channel_inbox', show_notification: true, increment_unread: true }); - this.invalidate_caches(message.channel_ids); + chat_manager.mail_tools.invalidate_caches(message.channel_ids); needaction_counter++; _.each(message.channel_ids, function (channel_id) { var channel = chat_manager.get_channel(channel_id); @@ -567,25 +560,25 @@ var MailTools = core.Class.extend({ } def.then(function () { // don't increment unread if channel wasn't in cache yet as its unread counter has just been fetched - this.add_message(message, { show_notification: true, increment_unread: channel_already_in_cache }); - this.invalidate_caches(message.channel_ids); + chat_manager.mail_tools.add_message(message, { show_notification: true, increment_unread: channel_already_in_cache }); + chat_manager.mail_tools.invalidate_caches(message.channel_ids); }); }, on_partner_notification: function (data) { if (data.info === "unsubscribe") { - this.remove_channel(chat_manager.get_channel(data.id)); + chat_manager.mail_tools.remove_channel(chat_manager.get_channel(data.id)); chat_manager.bus.trigger("unsubscribe_from_channel", data.id); } else if (data.type === 'toggle_star') { - this.on_toggle_star_notification(data); + chat_manager.mail_tools.on_toggle_star_notification(data); } else if (data.type === 'mark_as_read') { - this.on_mark_as_read_notification(data); + chat_manager.mail_tools.on_mark_as_read_notification(data); } else if (data.type === 'mark_as_unread') { - this.on_mark_as_unread_notification(data); + chat_manager.mail_tools.on_mark_as_unread_notification(data); } else if (data.info === 'channel_seen') { - this.on_channel_seen_notification(data); + chat_manager.mail_tools.on_channel_seen_notification(data); } else { - this.on_chat_session_notification(data); + chat_manager.mail_tools.on_chat_session_notification(data); } }, @@ -611,8 +604,8 @@ var MailTools = core.Class.extend({ _.each(data.message_ids, function (msg_id) { var message = _.findWhere(messages, { id: msg_id }); if (message) { - this.invalidate_caches(message.channel_ids); - this.remove_message_from_channel("channel_inbox", message); + chat_manager.mail_tools.invalidate_caches(message.channel_ids); + chat_manager.mail_tools.remove_message_from_channel("channel_inbox", message); chat_manager.bus.trigger('update_message', message); } }); @@ -636,9 +629,9 @@ var MailTools = core.Class.extend({ _.each(data.message_ids, function (message_id) { var message = _.findWhere(messages, { id: message_id }); if (message) { - this.invalidate_caches(message.channel_ids); - this.add_channel_to_message(message, 'channel_inbox'); - this.add_to_cache(message, []); + chat_manager.mail_tools.invalidate_caches(message.channel_ids); + chat_manager.mail_tools.add_channel_to_message(message, 'channel_inbox'); + chat_manager.mail_tools.add_to_cache(message, []); } }); var channel_inbox = chat_manager.get_channel('channel_inbox'); @@ -659,7 +652,7 @@ var MailTools = core.Class.extend({ if (channel) { channel.last_seen_message_id = data.last_message_id; if (channel.unread_counter) { - this.update_channel_unread_counter(channel, 0); + chat_manager.mail_tools.update_channel_unread_counter(channel, 0); } } }, @@ -667,7 +660,7 @@ var MailTools = core.Class.extend({ on_chat_session_notification: function (chat_session) { var channel; if ((chat_session.channel_type === "channel") && (chat_session.state === "open")) { - this.add_channel(chat_session, {autoswitch: false}); + chat_manager.mail_tools.add_channel(chat_session, {autoswitch: false}); if (!chat_session.is_minimized && chat_session.info !== 'creation') { web_client.do_notify(_t("Invitation"), _t("You have been invited to: ") + chat_session.name); } From b6cd43bf45a5643952889ea65c74a8a542bd3558 Mon Sep 17 00:00:00 2001 From: x620 Date: Mon, 4 Apr 2016 18:42:18 +0500 Subject: [PATCH 051/148] [DOC] __openerp__.py - change category, README.rst - change name menu item --- mail_archives/README.rst | 2 +- mail_archives/__openerp__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mail_archives/README.rst b/mail_archives/README.rst index 3b2d013..56bd506 100644 --- a/mail_archives/README.rst +++ b/mail_archives/README.rst @@ -5,7 +5,7 @@ Adds Archive menu, which shows all messages Usage ----- -Click Messaing/Arhive menu -- all messages are displayed +Click Discuss/Archive menu -- all messages are displayed Further information ------------------- diff --git a/mail_archives/__openerp__.py b/mail_archives/__openerp__.py index 8ecce36..ff316df 100644 --- a/mail_archives/__openerp__.py +++ b/mail_archives/__openerp__.py @@ -2,7 +2,7 @@ { "name": "mail_archives", "summary": """Create archive channel""", - "category": "Uncategorized", + "category": "Discuss", "images": [], "version": "1.0.0", From ad9462c0f5e5ead8b0f0b1dba1f747e9913b1fb6 Mon Sep 17 00:00:00 2001 From: x620 Date: Mon, 4 Apr 2016 18:46:45 +0500 Subject: [PATCH 052/148] [ADD] Create module Mail Sent and added changes that displayed Sent menu item --- mail_sent/README.rst | 15 +++++++ mail_sent/__init__.py | 3 ++ mail_sent/__openerp__.py | 26 ++++++++++++ mail_sent/models/__init__.py | 1 + mail_sent/static/description/icon.png | Bin 0 -> 2140 bytes mail_sent/static/src/js/sent.js | 56 ++++++++++++++++++++++++++ mail_sent/static/src/xml/menu.xml | 20 +++++++++ mail_sent/views/templates.xml | 12 ++++++ 8 files changed, 133 insertions(+) create mode 100644 mail_sent/README.rst create mode 100644 mail_sent/__init__.py create mode 100644 mail_sent/__openerp__.py create mode 100644 mail_sent/models/__init__.py create mode 100644 mail_sent/static/description/icon.png create mode 100644 mail_sent/static/src/js/sent.js create mode 100644 mail_sent/static/src/xml/menu.xml create mode 100644 mail_sent/views/templates.xml diff --git a/mail_sent/README.rst b/mail_sent/README.rst new file mode 100644 index 0000000..41662b5 --- /dev/null +++ b/mail_sent/README.rst @@ -0,0 +1,15 @@ +Mail Sent +========= + +Adds Sent menu, which shows sent messages + +Usage +----- +Click Discuss/Sent menu -- sent messages are displayed + +Further information +------------------- + +HTML Description: https://apps.odoo.com/apps/modules/9.0/mail_sent/ + +Tested on Odoo 9.0 b9f206953e3f877adf18643f154d1262842564ee \ No newline at end of file diff --git a/mail_sent/__init__.py b/mail_sent/__init__.py new file mode 100644 index 0000000..5305644 --- /dev/null +++ b/mail_sent/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import models \ No newline at end of file diff --git a/mail_sent/__openerp__.py b/mail_sent/__openerp__.py new file mode 100644 index 0000000..4f1b75e --- /dev/null +++ b/mail_sent/__openerp__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +{ + "name": "Mail Sent", + "summary": """Create sent channel""", + "category": "Discuss", + "images": [], + "version": "1.0.0", + + "author": "IT-Projects LLC, Pavel Romanchenko", + "website": "https://it-projects.info", + "license": "LGPL-3", + + "depends": [ + "base", + "mail", + "mail_base" + ], + + "data": [ + "views/templates.xml", + ], + "qweb": [ + "static/src/xml/menu.xml", + ], + 'installable': True, +} diff --git a/mail_sent/models/__init__.py b/mail_sent/models/__init__.py new file mode 100644 index 0000000..40a96af --- /dev/null +++ b/mail_sent/models/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- diff --git a/mail_sent/static/description/icon.png b/mail_sent/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 + diff --git a/mail_sent/views/templates.xml b/mail_sent/views/templates.xml new file mode 100644 index 0000000..3e685e0 --- /dev/null +++ b/mail_sent/views/templates.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file From 9c18f6445a6950e90df958390f150c716df549be Mon Sep 17 00:00:00 2001 From: x620 Date: Tue, 5 Apr 2016 11:01:20 +0500 Subject: [PATCH 053/148] [FIX] sent.js correction for displayed sent page --- mail_sent/static/src/js/sent.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mail_sent/static/src/js/sent.js b/mail_sent/static/src/js/sent.js index 86813fb..13ddad6 100644 --- a/mail_sent/static/src/js/sent.js +++ b/mail_sent/static/src/js/sent.js @@ -1,4 +1,4 @@ -odoo.define('mail_archives.archives', function (require) { +odoo.define('mail_sent.sent', function (require) { "use strict"; var base_obj = require('mail_base.base'); @@ -20,7 +20,7 @@ var _t = core._t; base_obj.MailTools.include({ get_properties: function(msg){ var properties = this._super.apply(this, arguments); - properties.is_archive = this.property_descr("channel_archive", msg, this); + properties.is_archive = this.property_descr("channel_sent", msg, this); return properties; }, @@ -32,19 +32,19 @@ base_obj.MailTools.include({ get_channel_array: function(msg){ var arr = this._super.apply(this, arguments); - return arr.concat('channel_archive'); + return arr.concat('channel_sent'); }, get_domain: function(channel){ - return (channel.id === "channel_archive") ? [] : this._super.apply(this, arguments); + return (channel.id === "channel_sent") ? [] : this._super.apply(this, arguments); } }); base_obj.chat_manager.is_ready.then(function(){ // Add archive channel base_obj.chat_manager.mail_tools.add_channel({ - id: "channel_archive", - name: _t("Archive"), + id: "channel_sent", + name: _t("Sent"), type: "static" }); From 74fa3eda6a2209e05defb45c3b7f4f4a75977770 Mon Sep 17 00:00:00 2001 From: x620 Date: Wed, 6 Apr 2016 15:42:45 +0500 Subject: [PATCH 054/148] [FIX] sent.js correction set_channel_flags() and get_domain() methods for correct sent messages filtration [FIX] base.js correction "cls" to "chat_manager.mail_tools" [FIX] models.py correction _get_sent() method and remove outdated notification method [REF] menu.xml move "sent" menu item to after "inbox" menu item and change icon --- mail_base/static/src/js/base.js | 12 +++++----- mail_sent/__init__.py | 2 +- mail_sent/models.py | 26 ++++++++------------- mail_sent/models/__init__.py | 1 - mail_sent/static/src/js/sent.js | 13 +++++++---- mail_sent/static/src/xml/menu.xml | 4 ++-- mail_sent/views.xml | 38 ------------------------------- 7 files changed, 28 insertions(+), 68 deletions(-) delete mode 100644 mail_sent/models/__init__.py delete mode 100644 mail_sent/views.xml diff --git a/mail_base/static/src/js/base.js b/mail_base/static/src/js/base.js index dee2ae8..dbc5fa2 100644 --- a/mail_base/static/src/js/base.js +++ b/mail_base/static/src/js/base.js @@ -160,9 +160,9 @@ var MailTools = core.Class.extend({ _.each(msg.channel_ids, function (channel_id) { var channel = chat_manager.get_channel(channel_id); if (channel) { - cls.add_to_cache(msg, []); + chat_manager.mail_tools.add_to_cache(msg, []); if (options.domain && options.domain !== []) { - cls.add_to_cache(msg, options.domain); + chat_manager.mail_tools.add_to_cache(msg, options.domain); } if (channel.hidden) { channel.hidden = false; @@ -412,7 +412,7 @@ var MailTools = core.Class.extend({ _.each(message.channel_ids, function (channel_id) { var channel = chat_manager.get_channel(channel_id); if (channel) { - var channel_cache = cls.get_channel_cache(channel, domain); + var channel_cache = chat_manager.mail_tools.get_channel_cache(channel, domain); var index = _.sortedIndex(channel_cache.messages, message, 'id'); if (channel_cache.messages[index] !== message) { channel_cache.messages.splice(index, 0, message); @@ -586,12 +586,12 @@ var MailTools = core.Class.extend({ _.each(data.message_ids, function (msg_id) { var message = _.findWhere(messages, { id: msg_id }); if (message) { - cls.invalidate_caches(message.channel_ids); + chat_manager.mail_tools.invalidate_caches(message.channel_ids); message.is_starred = data.starred; if (!message.is_starred) { - cls.remove_message_from_channel("channel_starred", message); + chat_manager.mail_tools.remove_message_from_channel("channel_starred", message); } else { - cls.add_to_cache(message, []); + chat_manager.mail_tools.add_to_cache(message, []); var channel_starred = chat_manager.get_channel('channel_starred'); channel_starred.cache = _.pick(channel_starred.cache, "[]"); } diff --git a/mail_sent/__init__.py b/mail_sent/__init__.py index cde864b..c7b5ac7 100644 --- a/mail_sent/__init__.py +++ b/mail_sent/__init__.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- -from . import models +import models diff --git a/mail_sent/models.py b/mail_sent/models.py index 38c82e9..16414ed 100644 --- a/mail_sent/models.py +++ b/mail_sent/models.py @@ -1,28 +1,22 @@ +# -*- coding: utf-8 -*- from openerp import api, models, fields -class mail_message(models.Model): +class MailMessage(models.Model): _inherit = 'mail.message' + sent = fields.Boolean('Sent', compute="_get_sent", help='Was message sent to someone', store=True) + @api.one - @api.depends('author_id', 'notified_partner_ids') + @api.depends('author_id', 'partner_ids') def _get_sent(self): self_sudo = self.sudo() - self_sudo.sent = len(self_sudo.notified_partner_ids) > 1 or len(self_sudo.notified_partner_ids) == 1 and self_sudo.author_id and self_sudo.notified_partner_ids[0].id != self_sudo.author_id.id - - sent = fields.Boolean('Sent', compute=_get_sent, help='Was message sent to someone', store=True) - - -class mail_notification(models.Model): - _inherit = 'mail.notification' + self_sudo.sent = len(self_sudo.partner_ids) > 1 \ + or len(self_sudo.partner_ids) == 1 \ + and self_sudo.author_id \ + and self_sudo.partner_ids[0].id != self_sudo.author_id.id - def _notify(self, cr, uid, message_id, **kwargs): - super(mail_notification, self)._notify(cr, uid, message_id, **kwargs) - self.pool['mail.message'].browse(cr, uid, message_id)._get_sent() - - -class mail_compose_message(models.TransientModel): +class MailComposeMessage(models.TransientModel): _inherit = 'mail.compose.message' sent = fields.Boolean('Sent', help='dummy field to fix inherit error') - diff --git a/mail_sent/models/__init__.py b/mail_sent/models/__init__.py deleted file mode 100644 index 40a96af..0000000 --- a/mail_sent/models/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- diff --git a/mail_sent/static/src/js/sent.js b/mail_sent/static/src/js/sent.js index 13ddad6..8b1d0d6 100644 --- a/mail_sent/static/src/js/sent.js +++ b/mail_sent/static/src/js/sent.js @@ -20,13 +20,15 @@ var _t = core._t; base_obj.MailTools.include({ get_properties: function(msg){ var properties = this._super.apply(this, arguments); - properties.is_archive = this.property_descr("channel_sent", msg, this); + properties.is_sent = this.property_descr("channel_sent", msg, this); return properties; }, set_channel_flags: function(data, msg){ this._super.apply(this, arguments); - msg.is_archive = true; + if (_.contains(data.author_id, session.partner_id) && data.partner_ids.length > 0) { + msg.is_sent = true; + } return msg; }, @@ -36,12 +38,15 @@ base_obj.MailTools.include({ }, get_domain: function(channel){ - return (channel.id === "channel_sent") ? [] : this._super.apply(this, arguments); + return (channel.id === "channel_sent") ? [ + ['sent', '=', true], + ['author_id.user_ids', 'in', [openerp.session.uid]] + ] : this._super.apply(this, arguments); } }); base_obj.chat_manager.is_ready.then(function(){ - // Add archive channel + // Add sent channel base_obj.chat_manager.mail_tools.add_channel({ id: "channel_sent", name: _t("Sent"), diff --git a/mail_sent/static/src/xml/menu.xml b/mail_sent/static/src/xml/menu.xml index 799a379..de92e3a 100644 --- a/mail_sent/static/src/xml/menu.xml +++ b/mail_sent/static/src/xml/menu.xml @@ -2,9 +2,9 @@ @@ -29,13 +31,13 @@ - -
From 813f79ecf60bd797d8bc67c105a923e93f0ca745 Mon Sep 17 00:00:00 2001 From: x620 Date: Wed, 13 Apr 2016 11:29:24 +0500 Subject: [PATCH 071/148] [FIX] change depends --- res_partner_mails_count/__openerp__.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/res_partner_mails_count/__openerp__.py b/res_partner_mails_count/__openerp__.py index f60b70c..79559e3 100644 --- a/res_partner_mails_count/__openerp__.py +++ b/res_partner_mails_count/__openerp__.py @@ -13,8 +13,7 @@ "currency": "EUR", "depends": [ - 'base', - 'mail', + 'mail_sent' ], "external_dependencies": {"python": [], "bin": []}, "data": [ From 984b2d5122c0806128a50f77ca921adf1f0e81e3 Mon Sep 17 00:00:00 2001 From: x620 Date: Wed, 13 Apr 2016 11:33:54 +0500 Subject: [PATCH 072/148] [WIP] create and display channel_sent_to where filtered sent_to messages --- res_partner_mails_count/static/src/js/main.js | 75 ++++++++++++++++--- .../views/res_partner_mails_count.xml | 1 + 2 files changed, 66 insertions(+), 10 deletions(-) diff --git a/res_partner_mails_count/static/src/js/main.js b/res_partner_mails_count/static/src/js/main.js index 96415c6..e420b77 100644 --- a/res_partner_mails_count/static/src/js/main.js +++ b/res_partner_mails_count/static/src/js/main.js @@ -1,10 +1,65 @@ -// openerp.res_partner_mails_count = function(instance){ -// instance.mail.Wall.include({ -// init: function(){ -// this._super.apply(this, arguments); -// if(this.context.ignore_search_model){ -// delete this.defaults.model; -// } -// } -// }); -// }; +odoo.define('res_partner_mails_count.sent', 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 _t = core._t; +//------------------------------------------------------------------------------- + +// Inherit class and override methods +base_obj.MailTools.include({ + get_properties: function(msg){ + var properties = this._super.apply(this, arguments); + properties.is_sent_to = this.property_descr("channel_sent_to", msg, this); + return properties; + }, + + set_channel_flags: function(data, msg){ + this._super.apply(this, arguments); + msg.is_sent_to = false; + if (data.sent && data.author_id[0] == session.partner_id) { + if (data.partner_ids[0] && data.partner_ids[0][0] == 5){ + msg.is_sent_to = true; + } + } + + return msg; + }, + + get_channel_array: function(msg){ + var arr = this._super.apply(this, arguments); + return arr.concat('channel_sent_to'); + }, + + get_domain: function(channel){ + return (channel.id === "channel_sent_to") ? [ + ['sent', '=', true], + ['author_id.user_ids', 'in', [openerp.session.uid]] + ] : this._super.apply(this, arguments); + } +}); + +base_obj.chat_manager.is_ready.then(function(){ + // Add sent channel + base_obj.chat_manager.mail_tools.add_channel({ + id: "channel_sent_to", + name: _t("SentTo"), + type: "static" + }); + + return $.when(); +}); + +return base_obj.chat_manager; + +}); diff --git a/res_partner_mails_count/views/res_partner_mails_count.xml b/res_partner_mails_count/views/res_partner_mails_count.xml index 0c1573c..68c00a9 100644 --- a/res_partner_mails_count/views/res_partner_mails_count.xml +++ b/res_partner_mails_count/views/res_partner_mails_count.xml @@ -7,6 +7,7 @@ mail.message { 'ignore_search_model': True, + 'active_id': 'channel_sent_to' }

From acbbebf707ed3fd6925be18c1f80d71e8b82db6e Mon Sep 17 00:00:00 2001 From: Ilyas Date: Wed, 13 Apr 2016 13:13:27 +0500 Subject: [PATCH 073/148] [IMP] another screenshots --- mail_archives/static/description/2.png | Bin 40374 -> 40644 bytes mail_archives/static/description/index.html | 37 +++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/mail_archives/static/description/2.png b/mail_archives/static/description/2.png index ab0e4f82f1fd97f968d4f7889d891b2977657e98..4677e0162a0883054d405437cbfd16b2cc0c8016 100644 GIT binary patch literal 40644 zcmd3O^+QzO);Az3Avu)Ntu)fo14uK{NJ>eUbW1Zd0)ljR$AHw(EiiO}ofrNyFB`YJTf`o)}kA#FAgZ2#Zi?HM} z77`K_lB}e-nw$Q98oC#O)Xk-DoWh}Cj2M20_cDHhJT9^12W)n=4{TCuPVL=Ko)XUL zsR>AZLFKEA?;edxiQ_ywjV`k1j?q&SYssRRQN02ba3A<}+Gt{4P{oYZxWkZ!J9kc#JiUO5Asuuit z6i;H;U$OtbyBCNQ{_w7SIOy$v4%3GB2}a33rHlWcQVRhnhmwzG8Q#H$oxwkA!*ebt zWaAwEOI8~RvSxM$D)hpE{_Z23)c9A?k3TE@x5y;1G+cXzn{)r=v|}@v0i$Bie+fr6 zMkSMiag*0+BY`+voKLWr69 z`QhI>|9cCUABE-SNpG^e(f>~E&pe%hVu1S;K06IIsMT~i4XbEhNkjzTzx2~ci%|37 zjAQ@*i1}xUR8)V|jLJpa@n35GGqpzJ5&HjH%2!;3nsJA8(f+S~kN|~(h^hUK5>6cY z&tXu2U!{D-I2@_}Q)=cRTIEiK;Dzqn{~QJl4Phh5?L$HTYi@rY^!xu|@}z#>%G}&L zoV-*qsMZ-+?t1yTt2>K;!#bCS1B~uSDh}h#K_t^c3-vn~H76%lN3@q)X7;{1l-mcN zEGDP69p>TZm6=$dn;&UBx^5s$sic3GUI_REs~8Sb{b#$pfSD$p%bcGtK$S>4{HEyX zUh*b1HQrgh`fTiwtY(w*(k&SLvcKIlzG_27ftwPA-yF_9Nu0r=cfWFi7 z0k{5VLPB47T>_+_u~Tcc|ENCP4`B%5S%g2a5tq7dsMzei8@EesB6EF?<3dBEmFPIj zm%LF_FUToBMws2sX*?pUZI-tCKeaPnJfzXW4W5X)=R7@Z;uM3P7nm@Ahu*ytS*pd6 za>7LB?Azf*a~0*s{urO2cl=v9t?A&sc9d}Rix(-QL^{h4&u(MF9%_iz+LhW?oh#Ni zr!|dT@nU8^c-Bih?4*y~(fg z5MfrT(S=gu^FQxt_29FQ2) zSM&)vSJbC@JfvR?E0Ncou(qCpz2h$m&?BsUk!Vd)1+6QZV9fiJaCIC|8w#s33DpHQ zjB%Y|C`AM#Q@nGk!2>Oxi_55DW(;%DNn-e(x{9@F?W`k=7DZl><1-Erd zlJfTJ&Rg6k|9GeWv>o|OOJe<|-*}}E%##-j+;**ptBd&7NdnJm_&y>`$6^R7iYfcL zeQLVk(~X(CnPz86^~seY$e0wLb3drNp~;577`vile;bPY>b&h&ob7u??YFK!TcoSV zT6XMskueR(q9%&*siyp$<9a_)EJFH7g3a`sNz*DZD@5n*CBjqs}m&dk~Y(k=2c%{UH+lFX4gkCpVEM^)5faiuw zYqv0=yZsB|z`ShZXo?+J8R@(8KA_{hBXYSU)KWlwjtg0==8ZgufhW>WOXdfkd8a!Q zt04 z7+9uEaChAF11djJj#`i54^eu#%&W%mv8MF?aeHV?h=~Uj3(Sxp{Pu%A>VmMY&bP>3 z=`oDf5|FgeeSeLSC-xV`^W&7C zzQ0a7o!oyRacL&f27nZbsp~vO&F5z{6=WQWHQ!xMS3RI9>U6{;#fFX1(%p=R=<3$} zHjQxKAdMd*%DDdMcH8=NCWJSsdPBzb7ajXt#1zY~Rb~ zsNGEuTom0zCZ}xwW_H_ww%XCr5#CeZK=a4VAlsn_1_y_+@Y*evrm9bu>q%(?!hK9X zr^X<>zbF!NMz{}w(c-$X*hpRWtfJfM4+nG7lyIKtQZp5%c{GxNEiku)}+e-qcKl+^jj;46Ai9 zT@a@`YFhWJZ*1Bx&{MDhS2@gCae0VPF zV0T*Ba|N|qpyT1Vw?Q+IBX7^CGlIV6DzbIK?;rG_k9%zCi4*R_-gj2?k49-Sk2^}g z>6IM!kWwOivCs+9(QLy-<1aS#kgBco>EnkRo4y+1tCYF?=fR3efvYwnBENJR4o!!2 zkFhQifPwp|@HLhfl|gOs-)XDr>^pzEJ=Bd<{vs-PJdDLUUK*!c7!m2yadyMf_j$l7 zWqe|kob?zey94ogr$1vNuJA})xgmbQ+9lw2U;buI330Y>XKnuCoHhXBoCs(2Z2yh& zUk%XXt-Y~S^T*Skuog!jWEn!g5B&HCcd+UIaRp0|&E&tHfgeSE*0w_v!1pd+F|DZ6c%0FP~J6~eYf1w;D1j=cPb@coH z^6v|PO6{`3q9Sn{o3blQ%DDc((a{eldCTe|twZv8LQ0*eNn-Z+2w0bT(4p}coVQUX zi8(v-3=9l>(AEwc7?6vxF91nOqGsph-~j*um6aUyz$kYM#-NZ8(qZ``F(m{@7yIyM zjQC$2@Bcl<4>5IhLZx&ea4pwaiN#Eaa5 z0$N^P4OzJ0pw%ztics`GSTozZQC(_=k91A!<&ATXCOyBV8||LX<$yP0t|@2!{AHz~X}VGN4Nq0MR; zcriqM=zqMt+#fGr{c+~?-=VK)0h!@vQRIT7Ic6Zi;KvkxyjZ=aZ13BPHF+H`E%;+> zOW^Ne)Cfd=Vi!SN@DJqpV}PzG1xjfhQ)N01QW+u_)mssyA)#z~qeZHWCuIiE)^9u0 zkV`UwFOouxncn8k8TFS}EpL7zG2n9lu|Y-E%6~!X6%YymvNWb&5l%>vR1d7faBNQ? zs4F)E&Uf<;)3Ye8V77FmmlMZqbId)yUWD~t$v`t(wAsMUBC`&MS3R z3FdoxcGg{ASlAbpl#ZSWezM4!StzD${y{p0tp0xIcedGz7UXkEkM`|u`O^FOWj%fs zR`y@|awR8|){}c%Ga|!dmJciDITd?Fn-Y+nAG`CKXYyqf!w{2eCd%RhKJT8FjIPe( zhuQ)c%$kOl0g+A0%VptkMB3p0F0udbfkLLuM3)FNl0ZoU8jjUxXQROR@U`HaDZglF zun~*0Q&Wq_?S#AHGtap@Vc+ZA7NN6;chj6^Iqv8VNQ75PY>tHq9#j-$II+!cYBA&$ zoE5S3COpi#E>P1P)>=-=?f))#`IZ|8D@Dg>|NVmpuuitX!%Bw!vSaJ)0U|?%S{VvU%}rjOzaqc zvU-KKMG+~&`nQwH#&t0Wfhh3p^b3AwCujB z2))VgZ}g#h^-41~`RGPY+yi@)5>tlU8yb#W98nAQt3Eyw5$ZkvPEUhgdM%iY(pa<@15w@uy}uJ^^xhCsb5abuS-^#;r8Ih zIBbxZh_t4wQdE#77&gArWXbep?q&H3m&|n_q=#P78;;hknJNEcC46; zG@6EHu(cj8A`z#V95JewrP>=!`+0z1;`UTN(OGaQ`>99<2Qq-dcOm`r+4m`l#M}APN zps@V)Su!CZt3691RMdOUmI_>=4iXLu74aS|RHmg~IXgWaJ^v;znXHO1S9Emo_u}pD z3EHL}Ls1?xbySq#&*b^VjP zzI}*x+o7)5ll75u#ZyM)t)ywMQYo8l6o4}*>S9~+}d}r zM9v9Gbc~hxUF#!kd$&dEIY;>%yDJtQ5O_eRfB-`-Q3n-EzR($7@m|@TkI*ZWmd_(Z z+r-_y#wT&0?2l(#=F{bAxMy8qkgQRnf;c;9BqUmhW^5}zcO?Tyh$@f~oeST?K|V3N zUljyi&#S7^ayh7*nJrGhm40>9=a2H@W}mBezD7EiIU3wPfH3JVA=oa4iaMGmC56Ml z6crzLPEI$g8IJgR3tFvlRF1tiu#v>6zbVlQ1ehWM{+eVQ z?e9VM99TFzMicltOvL+Guih3dIzp(1=M6VOqV>#ID~)nV8Jh!v2PM3cHFl`3P=nG) z^(bBTUL>D?u%IGRotc)u8-Hy|Pxd3woE{SUH_>^4M+F1vh$=n60dH+|Op0k}j@Mc) zv-z0@TFuhBSkUG1hiknH*24%J5P?$iV}X%zmD?0ct;P6zw3dzz;9ZfgZxcCD9Qq~v z08=%b$ml!~6`+W1e*RsfJ!Hv~9caT`FYkHYkzB6V&4~|(#|_YD5!IMtGBlrm_cpx_ z_*jDrD~hY!g~ZYxY)&RABrTK>vmDIRa&f6{NC1-|&M_pEcT+kICP(_QKE65cue|2C z4F$_u$G?-^Yh)!dDBxy8ZRR0H^rDY5oN#ghd>EvRKD;-YSjYCY%7?-4tli&<@Q1nG zLmSSNa__fAvs2k`F1km2Z{pngiOafrf!xX%D?gNKKzUtQzQn~nwHpX<8#f8r zb7?F@lXy61udScGbIcH#@m%(%p~SE5Qh|i+u?*nV4QAY4N^2p6>!2mbn~q_e&<}n$ zTnWZ<$q!jyKUwRGEliB1)))IlmLKxS!X&gRQH*F-{8QhVv({K^-{Nxp%E1SyMS&-tgLi&r}qgnpKV4qXJ zo{t|9#!)&@Z+qT2Qfs@Ytw7XSTmm}<`2v#;*yhKW%iEHN)4C;9e=|?un6HhS{Cf4` zcE85)=6bw-DXfb^STa;Q*?uxUf%+_r`Hy+H@MQ3Ei%lvUAvjIc^l${H`G;P4#2b}- zEZQ8zyIu=N6LmrpIGA7mZP*zYL)Xrtk+;4UNR{i|L1#Yrct#mT@3BzEdpRbM-h0%F0(q4G#Ryzj(5RT6P|*4JDeFn(A>^YxiVz6lD~~10v(4 zXHGX8R$DG5e{{oONtajaz}#;KPScr>Uy)trd0?RI^i%3s1b4{ruJj}A*c~4;CaH8Z zf|%jvq|&HG@iD)&t=%1ezBM3MWqG^ba@ny^TT}@~bvYeKFh8G$h6%MEz@7|x!f|;m z=Re5oThK%wrV`lA1EJH zu^RY*b*vBMd54e2o(g(i5LncKpOrC;qgL*fRM`I(eW2b`c}Wy(RsbSiD8d?Vz3yQ= zr!&Zu)tO#u!Lw|7a^khzIy0Fa;?`65JT7z)FIXJ-zg^*eJ0pvE(GMCBuNG~ zpUVakTWFi+vfHGM(u|S4b3#L?!0_&DB>YZxLdo;WkUCX%W?b%a^2zhLL7x^?#=9@w zgg}z-4H>H?sJYc>a+e)d~eZ1)C7xr1T zOs<1v^>c%s0?e3A>`e-2R5xRi0g~La&hQ;&vfDLG-P?^g8gFMAw9g_JNw_2NQK(Hz zE{bp~=0d05)tT)K<2K{yG(1CuJGZ%Usx_aKisN?0wJbKx3&bWBu!^WH#j-=YsOG2W2F^wTp3^p}GTt`f6tdCX^xH+1 z>PL!4i&(OIAf$yi;l}3=F8nmFbt&WDQWP$V;@-7(?Io9)s|RhkzJ2#9yrKamPuL^$ zf)+|GO8lma<$jB&N7{9a6xjHvQxVh=(bg-)D zBI1Q2U0s=(nwh1vhy7x$8|RJhv0vIx$QbB8_%NTx4X&K)eeXPKU(o$zwoC1u)>97T z3ixweUgGY*`LrK(X19I;p*8*;9aHVqm9~OA9(8^#!Pc^`^wr@a+H&*DB1EFsfAN9( zEgZTG$P5SUSq@498*Q1_1;~uKrD~H(L`5ft-d;`(jz+mf0 zO0H*E*7L?9WI`mK9_RSyunV2~pR3QhW+{{&>^?Kdb#?|t*3N-w)Jsx`>eCLLYL{xB z%bJ>I4_zV_5!4xisYC}iH_DF=KiUx8TWFJ@404KM_nU$YWaO6aKSVY+@z>B9aX=u26#Lr zbY&fj-}gJ?y>Uad1pMssCX*-DgdeqPJA2!*6qu)ZaMtB0A&Blp1jw_1Q+q$&NFsG<(*+K7vc{TOH zGV^=qkC9~HFr~CWd+I8QdCsoRAGI_FdaMwl*qy8dUHs0ubXVU#(*ZkteJfoh<*Vdr|?#rQ8XCP{IkvD#qZE%wViRiAKaa8uZ&}RNA#N3 zLLAojb!=F!uXj9t@t_rz2X|ZdaH-}~4MPS%%qwcqZ1=a}G6Ly7BERQ}pWC*66l##o z&VUf^8er$s+>i?>H;qb0Yutd9E1C|g&A3cYO{zRV2S5Y-;tj#!F?>*?j`-RcRnEANm@B*aSoQCM436XPI{WI6w+HpK7i02L zl)3%NBUuswVST>k=b3S4S)NYhMne$u$5)(fX z{ql)wZGjKGCYg$I8D%XZNTS#A2LenPCl5UZvPGhC=xzu zJ|lyHN{WUVSUg}L-q_4+;mOiz^EhY zX1K4_2I2WtMH%x5I6KgRtbiJuEJh+ISb;8Mi^v{q>w8ue=V0G!#Eu}EF8ln_a8W*&eSytbtqDmeb8IowjqJV(1-GGv<57!DebAVf-Nb7G`2HJ>`diUU zvN6|v+|N+wvtRrk{q#ma@sd*$Oz^MLl5(JyRFI6LZ-qX;T1EPOo?a9+e_cI&+zNe` zB26sGSZ*i-p7sWLPWJLkM$PO;m^206yh1IQ)PbsL0qo zSGO!KjuEnq*YpmS6jh|^QA%gge|Vqap7TDdQHQVKUaaJCIKv0HoF#EEnJYr%+)odL z$5FzetHGITO5Ptm(SIyIjUAx@8lgq(e5Cp-L@#~m(cXx*5 zWV+fVGT+mA42Fky%awH_;$>V&YATto=c2PqCP9rZbPNPc*>_=7QI~?w7^K(5r- zbVDgBplk#8d5&hK4Z93<8tSVfBO;ipHmq_vIVX1kI5Yx0>I+Y^Y~<;P`j=d$^}}ZX zj9ouL&PP#c1iK8Ziq;l1;$_PjAQ#m|3wZ*t4?dXgt880X2rnr&|F%uru+ZRax{q1v zj;b6Te+xHX z4N>SAEJ`F=ke}e*&fBfsfe@J%ANjjbLes_%aijEEvK<*+uk~<^6WM!5eIMubmn3|z zF|`|K#*Y+qzsbxaxaGZNZ@#xRHBusQm2!h%Y{L0ZwZivm`AMN_nwV93=fi^L$DYA&Uo=1cwb+k^mDfe$~&UF-g=4;WP*h2N1TOiy_7@$Q*9Ja?z;sr}j9v^c zc)rnF$yRaKuYCo5d=@mLS4~G8Jw)W-f%L~|XtqOv(uE8^L2v7qTbJllS-WW^Ap)=2 zE^z2b|4H!(x9ymu0`P`KHR5d_A9n~lL;W_!RvZz@$r`_5@DZ0-^J_u5JN5N3m#+Cm;& zy%y9T2cu$^zj8b~YL$@ikf;o~rgJ@Hk$gOkrENLn`td6n%xds!szRE5-V^Uj+_%c( z5nrM>b8iCX;unjv*)cz5bEIj1G3@OgX~QY-rzbRXmffBtBC=TosP-5Qlne(F?61>= zKYX&IhD861X#r5-i8GHJc$@>ZEQC;dK3@L@`!pkg@DhaWcWSa}+>Pyb3;2NBHnT6UiVqBh^OJpsnY z;pUVH*ZQ+F@byNmUS{~d&p;%MpHs}s_GSTscCFW`mw-_hrere0R3Y#)n5*i3S+%5^MW$p9~>R zZ6Xyi@9w%PAR*oQ)l+Tk^cf>q!4pk0)tx#AZrtyVQ$utgW@%ysAG(E6%Xx&Ip>EEf z%$2&@qkVQt=Lh5@hxBuuZjkAee_vbFI)lB6ho^+%F`4$4;k~&_s4zOQjT63@F?Jh< zu+Mx1&N|!+#B1C(45-paG6x{+&$7Vsok8WMP|{aXw3wa8`^#lzyM3+P$J6lFYfdI~ zL@!>V%xJuqZ5U$`jUt!WTkAG&H0pNGSAgEy=Ke8rQ9V(U?2K}&+JfYZdTG(K7w_gz zOVQEWw>1qSb0k7&YGeVor0$A3kjze1(Cp=-oz*mU$x*XvDTAuM>n_m#MhC8XZ=NlV z^X+i9>WQ~q6P7YPeId^eM6Cw=SgXTlP0p(zbSDRl2uvY53Eop2L6vO2qG_D#@WCH- zMr4QN^$Y&B2y!mn8}H}N45vx!70p|xEPBzVb!-Co5&LPr_uiaK<|q7nZsptqIl8Vm zVm5eVx|($IYu?6t7do3orn?HExA+;0E~H_emyi%NdV|;V5UfRuXfJU;nfg{^>C%?# z&z??iPB-(7dp%O4FCIb%A8$0ds}~PWYe%?iTcZ6LCQszQuT;~^2mY#?zm1+bO*tp8UHX%Jv-^-GleCGP5I2h8!|E9GNUz#*NY=oQ=ApPJb#*+2OzfRokN1HUtyd`0*kr(|&BPp?Xo|Hd(3g9U!i+hj z{Lv2+6WUU=NkHHo;|(UXSKd)Xy0xraR#T~aqP^%t%;NEno%;QrZvsc3K+a^=Fd2{L_@qTIw1 zL`26)KSYy>Kbc?jn}x5em?om*$ze)JIK@io9*`G=xXbb%6@;)CC`r-k(2;STgobyX z5V3wuBB9&bqB*}@KG4xQ1prQZu1-R2rW8t#$3(WpY>%>TV0t+CM^1@!t3?H)`t`o4 z9G4f=7}H2%2=w;w@t!q%vSb2Hve0tBdt5A!X|&1;p+_iXWPnjnSP)FD8RV zlVd!Zt!`CoIgQP??7=+7mC|NZBwi?>RvTnZZ{V`gqpcSi)l-i+?snRcu0ljzXVKbWY`3iDdRouScmB}Xsi5uR z8VUyB&DNFRLg9In?lyI)*#)B%`?LgKPBs%^hrN_GmnmsEi_?X8BCWd&fqYgBKn@js zy6liWh&MkoXnq`o<32Y3nVpoYN55^TARS*P$-D!YA$opfCwj4We@R;_5#nfF(9C_J zw94m*sP$;>E=4s83%m^PjjEI0r*4E|fJwO< z#%N=e-6W|7sXx!{4{&kK^VcW47+?n3y=`Fq02;VUf+rha9+K>U01OAT4U%(G^O0vTILGW)?4ge zT<|c!jDOb1SX}?&tye7*X^7m{zM(^sxf~LC(K!bfPn=qtcW+3zTPZQ7OFKaE{15?; zXc928!+aI|e)5V3in2AcwIgCg7YqSEA$#gLM=|e`LGU7(A1SCrW9GD9@(9m3HA7{z4Vvq+K%YzHUxiT&}oN*l%M`SidgiDcuEJ?jlx*#&nJ zSo5prP=m0%<%ck12rRw+U{r;tzQ+g33xjFbc?d~eHyZ?GDX z?{~azW^5caT07Ek7}M0*Q%#vqtJjPD^-YadY;{juzR?IiqL7TwNHS2Nncu?S(4c{j z*7mKr^{arTjf`pU=oyeU5zQ>HO6rSxyJ&J@k2ZWldYZgigC?TR)(7nkiIVZ(4;OsY zr!u3LO?ym&tF8#n!Z7U}m{3MLE&qNr8Li+zN_)W>{|(RVtocR8BbDQkepiM_q`e1# zy#<$<_KD6r*Y`>VN}(VH0vc^VvyLD_9!TOmu3Mvhvlp_M_07I3VDV@6o*#KuJ~Gp&T3kz>SL%IiMh@EsCkJYH#2n8JxA$3^Cx8RT*M715tXW^g0{u6aG@)i23WQ0YBgsAL` zl4f`)!~5FE630X~TLGB3Yeb>QL{zO}z}_kw>tsffC41*-e)n40l{;_B zaW6rzir^{&9`cUnujP!49k^+q%+J^N9;FG=QgbTrJ50}MhM$7~dZ05HL{(Xm{`8~W z?ThQ@b@V3_d&JiV_2z&2U=US*Ygu#_JiI=6Q1ACr7Hjh*vRzW%6~D*3-lgw2%Z@n7 zF8i+$>Hbh3qt~iI>za~{n8-R?hZ+Y~zc~AiVOid$PpS3=x(53r!K5j@`G*RMvDa*t zZh=~QGp?U1NSr!4bCmTk_eH(PdXZb&lhNLDXI?*$L$RnIad9(SdIv;|a zxrVCBI6dY_YKvS%s7VCYeYi)iiMN`ey;&k^N{$if0(j&@wx{$h`VGhxEwwK~hM%HP z5v56k+FvKfHYCM-xYn~iL$Q08Zk?y+k~*M)2WPU-os=-uiBXssjPmS^88Joiqst5m zWMN{$cNlr|7ROsQG>#)r7CG`7K15tL1|uSDl&VOR?v?#Cx-3gITFjNlC@xuY<&-Ky z2QlY~>naxUe||8|ATDPi8){+DxbsbGVz@wP*HGO9Hzu&+B3PX%aqOEGP0C_|H1GJ6 z2D%G#e~Ii+5jx4&pgALPO4f&_DQq=%Gl&&{VIaDdZl#~dNXlJVuZ|dqM|-dTxoqi` zYjwr|J)Yuu{`#CwNWX}YlC`Xmg>!+g>b-g(f#O)LN7K5bvrDhcdgk?47FKkVwT*BO zL~A1O%eQDt8>I({-W`bu@bl~9E#|I>){Ou-AL{^)!!bAIK*qqiR0j1j?R;TN5#^4z z-<;x^MKQ5A*gd??igRz?PAct9#Bca>3S69sI0Qk)sRpWMPih!nEW|Vv73IY8f#EP; z94!W!rMr>EPFd!5N#z)}m{cu4cJ-sAzEclXEdbH*1U;+cP@4{3F;Pappd6I&7@SHH zMig1OULoh>CUs3~W-t4vUVb))RS{An+jIYvzxyX!~n8NTzYoit>Fdm4lF-4k+~17k+wqinaIYYRh(5`deYZ-mkJ&}v zp>-e0i30zD>uB4{nK3u{xtLWaW}fEi{2^iS;KzfWTurCZtca@|xG zp(~W#SN0gl5aG_s^g#H@cpUG#Xg89{po4hIO(_E-=|={N_(T`%vQxoU)T1=VTN>E?E>h&~ zujmuy7M;`|mJ$L7aT(wlvgG7+o3s&Mo5v=2!ORK`x@~9u`;MT!Mezh=h;m@Bv2oCm zmGjtL{GPPPm+Ne)hKUQ7KD(kKH}3`hrX9u;(8DV8UIi3f)xt8 z=O&q}HtO8XHAL~wjcITVG4N`ZUnPBTYD8l^!|AlfmQrv+>7ZR#{-7K6l?rwnPhpYKR#=ttA5AeoK?)dC~?RNfN@neCi( zhCcwMID0vPqyRcdLBLx*Hj=$89o0UIDvXRj=+r{hF3o%gC$tlo1p8=PFs|m>Fj6aL z5i`tTFspw*9Y+C9 z&MUwH^_wF>fgmnHmmghd2_YXguT6>n1;c*Z8O3A86=PY>cP7_6A`+4o{A9MSzV zA`y%R1L2&G5wRR(oqSrSfIrFl)s{(kPf*+&#&vtXtatYga(_ksO|dSNFJ-jaVx6lZ zwLCE_=J-Q=;zmw$EdlgkHae~8lD0mRByS2gkby2oHCjLExa|pAI9=93(}D0N!V^si znk{K+s7If=46sjl-loA2^EH0w(UB5GSb$Lqw9*+C`DgMwl#Q3^(C*rL#yP&Nk+{%Kd zNu7dVisq2Nq{OFs#nLGAt>N)g>EQtMiKoblf!{t*iGxIU<$W0)vb}k#it?rdd1p(B z>u>rT=N6G%na9fqrUL~w%WNDnm*0SFx^-*R*SCs=ScNA?V7B+^p6c^FDLnex=^h%@ ztX0}OHmo?_`f503OEyaS^etSdsaY^Q#uZJo-^S#dSZ@iD!$i!;CXdr9_r4 zUcSp|&>9evO;z+SqHO&MSLZYNWw-;2bOfMqw z*J0~pEV;Z2&w;-9#olZ%$N8 z&)-;}smi;zqHlN@Pbd7X^ibPtXVDc^h3FK@G%nDH`F!nf2@?9VFx4#Q$L>Ta@&}GrG z?ysj_B>{_-)m6gojC((*=tkX3pPekSLuu-J0*{~VCUIP|?=033TUuFm)3r}ZLo5wN zE9{?a{rVVeT>C}T=hb`OXrUC-b7~e(3%u$#K+qK35DARL@O97k>0zOb@OWlUi?L7K z@3FrR8w6%_WjC&;KeUBE;8lr!YQLN0*B}QE=TKG)lcfYiZ?OPfp2l#SGv%MlPcGIW zB}b=&!Q?x!#$k8sYflZoFG9?oevKDb<@{-Ye+o4Syv_hbI37u+euTO95pT{sRLr`W z;T-IabnLvL?Mi>xcO_b(ttx=>F@Q*m=f{uMFQ3n7PpQJnE_nzI%fI#fcq~ru&CaMm z`d4Am4rNYGR2Wt1Xi&!MT-`~xksu55d_^z8_Z`DCN<@$GT`7wvzslUKIF6Fl$imh9 zMYzCYCh`3w5vIt;Q_$VRxHf!u=GhOdaXdg;=uVPbU`Pm39S<7TQ>CrVbs3h$y?^%t zNFF*gqKDI7Ggf_BjOL)vTMO(Co9_X&jsCV1!vg#8$=?@eLyzYZIYM}$Df7m6L!6@r zCRz2Gt2<)?NsoY{hv6iCV*+!$#V_`6w%D%FZz8$OjNub4JCsr|PokDUQ-STEzAVO2 zPV+s2n5~daDv{(GF$K$EuQ3jz9s-jedM$+fNBcD>N*-fBz!LGlz1ETBm+G}RTzQ6@ z8zmmWQd3tU96%w^YP${?3vO)?>cgaDN*XEmDxp8{`}>Qp76#ofRAqM6+j z(a!4l^n1+`(a}PR=H3jBOKS;`{;NMk27Q!>a&8*bkwL?v+^2-0C$H?WbEJKx(a4-B zT&RGfrb@?%u`Fj07AA!krnWR|A8Q1+sPor>>mbWZ(YLxC8Spo5O2cxQGzn0PpC6TE_GuFQ3PBYq+q0t9wZLCtlADl< z_+_V#sSPv0WCoTpOsHuXPCmC=o%xQ{(Cm##CSs3E%6A_Y(2E%xPY~&uFZ7iXdX4>i zx=dQPg-&fkgX$gID?HdqVHtYwYQRqt?`0ERK9}aC7l@bUQ`jAP{+`x)D{`6=vWGb|AvgET6loIu*|3p$Ml%xukf}(X`#1Xz0s(hZJ;S+%x_mq6TPFm6C zHA@{l%mFYUue9EKhpV&%IKY8;fuudW;pZMnl3(}n=Cx}PH6 z>bC$v@iqRutM`AuZs8vyHX7!my;YI-+)j}peuJVdszNm2XD+Vd_*>kJcoZvhlG7-% zU;&yJq`tb*1J!SJxjrE&Ww7-erarkkno8@dsLnP_iAs8R_W#&>�!hE^Jh=AO{r@ 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%0D3-3}~Hu9oE+6zrPf6 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

Look up old mails

Browse archived mails like in odoo 8

+
+
+
- +
+
+
+

+ The module adds usual menu. +

+
+
+ + +
+
+
+

+This menu shows archive messages in threads. +

+
+
+ +
+
+
+ +
+
From 1723ad1c3c2180edcda60b18c20e3ae944f5fee9 Mon Sep 17 00:00:00 2001 From: Ilyas Date: Wed, 13 Apr 2016 13:15:24 +0500 Subject: [PATCH 074/148] [IMP] contact us --- .../static/description/index.html | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/res_partner_mails_count/static/description/index.html b/res_partner_mails_count/static/description/index.html index d9c91e8..88090b0 100644 --- a/res_partner_mails_count/static/description/index.html +++ b/res_partner_mails_count/static/description/index.html @@ -19,3 +19,16 @@ +
+
+ +
+
From 05284d8d1beb2a995afb7df66c688737a296af51 Mon Sep 17 00:00:00 2001 From: Ilyas Date: Wed, 13 Apr 2016 15:09:23 +0500 Subject: [PATCH 075/148] [IMP] all msg --- mail_archives/static/description/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mail_archives/static/description/index.html b/mail_archives/static/description/index.html index 3f63b25..77abc4e 100644 --- a/mail_archives/static/description/index.html +++ b/mail_archives/static/description/index.html @@ -21,7 +21,7 @@

-This menu shows archive messages in threads. +This menu shows all messages.

From bd66d0781840e5036b70fdafa721af565e8d13c0 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Fri, 15 Apr 2016 12:19:44 +0500 Subject: [PATCH 076/148] [DOC] mail_base add not about todo in chat_manager.js --- mail_base/README.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mail_base/README.rst b/mail_base/README.rst index a467263..ca298f7 100644 --- a/mail_base/README.rst +++ b/mail_base/README.rst @@ -10,3 +10,7 @@ To use this module you need either install module that depends on it or create n Further information ------------------- Due to odoo restrictions, module makes mail initialization again. That is browser loads emoji and other chat data twice. This is the only way to make Mail feature extendable. + +One can say, that the module do this todo from `addons/mail/static/src/js/chat_manager.js `_ + + // to do: move this to mail.utils From f03ed373c5bd79b8234af3ba7349fd07e2b1cbb4 Mon Sep 17 00:00:00 2001 From: x620 Date: Fri, 15 Apr 2016 12:43:54 +0500 Subject: [PATCH 077/148] [FIX] change depends --- res_partner_mails_count/__openerp__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/res_partner_mails_count/__openerp__.py b/res_partner_mails_count/__openerp__.py index 79559e3..c8a1e2b 100644 --- a/res_partner_mails_count/__openerp__.py +++ b/res_partner_mails_count/__openerp__.py @@ -6,14 +6,14 @@ "images": ['images/1.png'], "version": "1.0.0", - "author": "IT-Projects LLC", + "author": "IT-Projects LLC, Pavel Romanchenko", "website": "https://it-projects.info", "license": "GPL-3", "price": 30.00, "currency": "EUR", "depends": [ - 'mail_sent' + 'mail_archives' ], "external_dependencies": {"python": [], "bin": []}, "data": [ From a7f38bedf9cb62b4fc61c43f8ab776551b1437e0 Mon Sep 17 00:00:00 2001 From: x620 Date: Fri, 15 Apr 2016 12:45:16 +0500 Subject: [PATCH 078/148] [IMP] add 'search_default_' handler to class ChatAction --- mail_base/static/src/js/base.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/mail_base/static/src/js/base.js b/mail_base/static/src/js/base.js index a0712e6..321233b 100644 --- a/mail_base/static/src/js/base.js +++ b/mail_base/static/src/js/base.js @@ -60,6 +60,28 @@ var channel_seen = _.throttle(function (channel) { return ChannelModel.call('channel_seen', [[channel.id]], {}, {shadow: true}); }, 3000); +var ChatAction = core.action_registry.get('mail.chat.instant_messaging'); +ChatAction.include({ + start: function() { + var result = this._super.apply(this, arguments); + + var search_defaults = {}; + var context = this.action ? this.action.context : []; + _.each(context, function (value, key) { + var match = /^search_default_(.*)$/.exec(key); + if (match) { + search_defaults[match[1]] = value; + } + }); + this.searchview.defaults = search_defaults; + + var self = this; + $.when(result).done(function() { + self.searchview.do_search(); + }); + } +}); + var MailTools = core.Class.extend({ send_native_notification: function (title, content) { From f11c963e335f6cfe0f10ecca642b7c0df5fd44f1 Mon Sep 17 00:00:00 2001 From: x620 Date: Fri, 15 Apr 2016 12:48:33 +0500 Subject: [PATCH 079/148] [FIX] res_partner_mails_count.xml use channel_archive [FIX] remove unused main.js and delete link in templates.xml to it --- res_partner_mails_count/static/src/js/main.js | 65 ------------------- res_partner_mails_count/templates.xml | 9 --- .../views/res_partner_mails_count.xml | 2 +- 3 files changed, 1 insertion(+), 75 deletions(-) delete mode 100644 res_partner_mails_count/static/src/js/main.js diff --git a/res_partner_mails_count/static/src/js/main.js b/res_partner_mails_count/static/src/js/main.js deleted file mode 100644 index e420b77..0000000 --- a/res_partner_mails_count/static/src/js/main.js +++ /dev/null @@ -1,65 +0,0 @@ -odoo.define('res_partner_mails_count.sent', 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 _t = core._t; -//------------------------------------------------------------------------------- - -// Inherit class and override methods -base_obj.MailTools.include({ - get_properties: function(msg){ - var properties = this._super.apply(this, arguments); - properties.is_sent_to = this.property_descr("channel_sent_to", msg, this); - return properties; - }, - - set_channel_flags: function(data, msg){ - this._super.apply(this, arguments); - msg.is_sent_to = false; - if (data.sent && data.author_id[0] == session.partner_id) { - if (data.partner_ids[0] && data.partner_ids[0][0] == 5){ - msg.is_sent_to = true; - } - } - - return msg; - }, - - get_channel_array: function(msg){ - var arr = this._super.apply(this, arguments); - return arr.concat('channel_sent_to'); - }, - - get_domain: function(channel){ - return (channel.id === "channel_sent_to") ? [ - ['sent', '=', true], - ['author_id.user_ids', 'in', [openerp.session.uid]] - ] : this._super.apply(this, arguments); - } -}); - -base_obj.chat_manager.is_ready.then(function(){ - // Add sent channel - base_obj.chat_manager.mail_tools.add_channel({ - id: "channel_sent_to", - name: _t("SentTo"), - type: "static" - }); - - return $.when(); -}); - -return base_obj.chat_manager; - -}); diff --git a/res_partner_mails_count/templates.xml b/res_partner_mails_count/templates.xml index 79f4b1a..11684e4 100644 --- a/res_partner_mails_count/templates.xml +++ b/res_partner_mails_count/templates.xml @@ -1,15 +1,6 @@ - - res.partner.mails.count res.partner diff --git a/res_partner_mails_count/views/res_partner_mails_count.xml b/res_partner_mails_count/views/res_partner_mails_count.xml index 68c00a9..7e3daf7 100644 --- a/res_partner_mails_count/views/res_partner_mails_count.xml +++ b/res_partner_mails_count/views/res_partner_mails_count.xml @@ -7,7 +7,7 @@ mail.message { 'ignore_search_model': True, - 'active_id': 'channel_sent_to' + 'active_id': 'channel_archive' }

From 2db75d48ef1316c22bcdac5f739557b6d2bf782b Mon Sep 17 00:00:00 2001 From: x620 Date: Fri, 15 Apr 2016 13:11:53 +0500 Subject: [PATCH 080/148] [FIX] base.js: add return [FIX] res_partner_mails_count.xml: remove unused code [FIX] __openerp__.py: change license --- mail_base/static/src/js/base.js | 2 +- res_partner_mails_count/__openerp__.py | 2 +- res_partner_mails_count/views/res_partner_mails_count.xml | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/mail_base/static/src/js/base.js b/mail_base/static/src/js/base.js index 321233b..68bce6b 100644 --- a/mail_base/static/src/js/base.js +++ b/mail_base/static/src/js/base.js @@ -76,7 +76,7 @@ ChatAction.include({ this.searchview.defaults = search_defaults; var self = this; - $.when(result).done(function() { + return $.when(result).done(function() { self.searchview.do_search(); }); } diff --git a/res_partner_mails_count/__openerp__.py b/res_partner_mails_count/__openerp__.py index c8a1e2b..78a5450 100644 --- a/res_partner_mails_count/__openerp__.py +++ b/res_partner_mails_count/__openerp__.py @@ -8,7 +8,7 @@ "author": "IT-Projects LLC, Pavel Romanchenko", "website": "https://it-projects.info", - "license": "GPL-3", + "license": "LGPL-3", "price": 30.00, "currency": "EUR", diff --git a/res_partner_mails_count/views/res_partner_mails_count.xml b/res_partner_mails_count/views/res_partner_mails_count.xml index 7e3daf7..7b328d8 100644 --- a/res_partner_mails_count/views/res_partner_mails_count.xml +++ b/res_partner_mails_count/views/res_partner_mails_count.xml @@ -6,7 +6,6 @@ mail.chat.instant_messaging mail.message { - 'ignore_search_model': True, 'active_id': 'channel_archive' } From 619dee983c09e779e26a4b43954bb2b589b58d84 Mon Sep 17 00:00:00 2001 From: x620 Date: Fri, 15 Apr 2016 13:17:34 +0500 Subject: [PATCH 081/148] [DOC] change description --- mail_base/README.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mail_base/README.rst b/mail_base/README.rst index a467263..df10e9b 100644 --- a/mail_base/README.rst +++ b/mail_base/README.rst @@ -1,7 +1,8 @@ Mail Base ========= -Modules doesn't introduce new features, but make built-in mail js features extendable. +* makes built-in mail js features extendable. +* handle ``search_default_*`` parameters in context. Usage ----- From 9194d8eb19924f0c0d66d9d534a4709bca30e3ed Mon Sep 17 00:00:00 2001 From: Ilyas Date: Mon, 18 Apr 2016 10:35:02 +0500 Subject: [PATCH 082/148] [IMP] module name --- mail_archives/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mail_archives/__openerp__.py b/mail_archives/__openerp__.py index 461da77..57c4508 100644 --- a/mail_archives/__openerp__.py +++ b/mail_archives/__openerp__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- { - "name": "mail_archives", + "name": "Mail archives", "summary": """Adds menu to find old messages""", "category": "Discuss", "images": [], From 6a7a1fbfcba7e10131a46018b9c8eb6af9de4760 Mon Sep 17 00:00:00 2001 From: Ilyas Date: Mon, 18 Apr 2016 11:46:03 +0500 Subject: [PATCH 083/148] [ADD] icon --- .../static/description/icon.png | Bin 0 -> 2140 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 res_partner_mails_count/static/description/icon.png diff --git a/res_partner_mails_count/static/description/icon.png b/res_partner_mails_count/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 Date: Mon, 18 Apr 2016 12:30:16 +0500 Subject: [PATCH 084/148] [DOC] screenshots for 9.0 --- .../static/description/1.png | Bin 93689 -> 67095 bytes .../static/description/2.png | Bin 92899 -> 64303 bytes .../static/description/3.png | Bin 78557 -> 47248 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/res_partner_mails_count/static/description/1.png b/res_partner_mails_count/static/description/1.png index 7ce0c1332609ee8add038424fc0207523c171809..c78a78404a6c6bd735baf177cac37e5481d61786 100644 GIT binary patch literal 67095 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

~zw8y~`n2OlhsXZ)f)Kz9&h8X{2@=mfnqaUB zEx;`Egq#eKi*#k(rLgA@7c^d27o5Hw7MS1+Q!Zk)RKuCal>&3a4p06?)@> zP%T+Z+nEA!MH!I@VNJ)jfcE_pzk-Bq0UCcz0SVm;I96bUhF07uLoB9nkVZyghhmUc z&w-buS8Q=Ile$M5Mg(2Dn#ngia?B_m6C*%b9%wY-*7mbjEPO}g` p^Ide6#S7Qz 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

Y?#bkN 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 F{{Tz(Vln^# literal 93689 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 D!rxu{ literal 92899 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 diff --git a/res_partner_mails_count/static/description/3.png b/res_partner_mails_count/static/description/3.png index 9492b473e8f7f21e156c0edf5979cd8056dcfe2b..82130f235c5db791f4edcc3e2b96bbf75281b0a5 100644 GIT binary patch literal 47248 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 E4<4vFPyhe` literal 78557 zcmZ^qWmsIxwytq^cY;H3Xxtii3&GvpHMqNn;1)c%ySuxE5Zv8eZfC8%?zw00egDnw zo=?}1s+u+4@y!S&1xaKC0t7HHFl1>du}@%NP!?cd5NL2Ppl^QDYZQTjeE^dd6aMU> zcajC`O|+0T_-y<(0a&T~qI;owpVpZR~9;-_&OP9^gh+xT?I@Gq~7= zUZa?Jcz!|(rh;J_K*;&Svw%}~L;bH0FfsnIQ0aMjdBVqFT;u=yxBq)%K!RLuWhDy3 zbo35(x3T&E=by5`5CK7g(68rU@>^2e%cItm<7{yW|1l;D8+Zf* zt??S6V03a@-ky#x@4Mc0u}c=6O0kh00(uVI3m{?^tOSB&WDso06No=60`|ohM-OMk z#l=gDG2WHJl3j5<&J4zBZiQnhbaH}XTuWkD)89&&0zW{LXAMb>NzN5pOhw!h#MP5V zj8o6n1k;n+WzP8Gl)c3y@hF{z^eiLKzoDPDQyuY(xA{`wD^i+@UdD(M&rIr8UmLkj zsUEB3#b{S_y*v(6#G708w}z6K^!mFGCT+xG^;L)EVp*(`pa$=3fw#8(x;*=3Z}_Th zpV!ieV&@UBt`t5pSG0Yt|MpP=H|`dZ9h8t~Q;a%rlt`dx$I{hS+5xIQYetB#8dd}l zQ|5DogiXX=<{Oe~84%OzH&VZ-BE!n`C&>~vtx0)G^vJ5q;i_;8{Yr9sx(EE3@*0f> zf%w}JU1O`9p}HyxQpHRU{h9v1Lc^@B9fSJR>*x@daQ2Ogm!wR47QwSJ|?Cnd(F4|0z4d*OHbuD`O-d||Z2f&myHrh}(9ldT{j z0z_T5l726KoGyX?Xq5w-7g_J^r+lxTtL(LWZvSqi+O^WBXKmegu9_?&uTd4`!?F*!z`O z*eH+rAA{0kJ_578HNgB3-W2K25SVR8)s-#kGXlhS`*8ye_=DV$RAzEIzFcRWwj9Y* zjKYa|w|lRI)n~iKm-G5=g9{5sNC6U6Lo=h09(OcCVhNgItY2EH+g2^?tHLIZdPfEo zTn@foZZKy9f7Ty$YlR#p1n#cOc`c20WnW2*oArQ!4-((;{g%s6{BG zOz|`?It7SnXGfl<$apLp%lbJ(>nPle9ZB6Du#~={WBI7_v+}Bt>w-Z27yW!{Xq#b3 z2JEgYL8V^+v&HC}B)huR$@~%0AV+nalTE-j0+Dm|D<=WYXGOnz;|3pg4MHo11;Mxh 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͎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 From ee7c461fea752f363f332ec8cb95f8fdc584fd5e Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 21 Apr 2016 12:26:35 +0500 Subject: [PATCH 085/148] [FIX] Hiding the left panel if there is no menu --- mail_base/static/src/js/base.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/mail_base/static/src/js/base.js b/mail_base/static/src/js/base.js index 68bce6b..948c08d 100644 --- a/mail_base/static/src/js/base.js +++ b/mail_base/static/src/js/base.js @@ -77,8 +77,19 @@ ChatAction.include({ var self = this; return $.when(result).done(function() { + $('.oe_leftbar').toggle(false); self.searchview.do_search(); }); + }, + destroy: function() { + var result = this._super.apply(this, arguments); + $('.oe_leftbar .oe_secondary_menu').each(function(){ + if ($(this).css('display') == 'block' && $(this).children().length > 0){ + $('.oe_leftbar').toggle(true); + return false; + } + }); + return result; } }); From c850e5868e5148fe3fc2b321dc21611e31100b3b Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 21 Apr 2016 12:32:50 +0500 Subject: [PATCH 086/148] [DOC] add phrase "fixes toggling left bar" to README.rst --- mail_base/README.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/mail_base/README.rst b/mail_base/README.rst index 6029868..9e89d30 100644 --- a/mail_base/README.rst +++ b/mail_base/README.rst @@ -3,6 +3,7 @@ Mail Base * makes built-in mail js features extendable. * handle ``search_default_*`` parameters in context. +* fixes toggling left bar Usage ----- From 0e9abc8fc4d305a7b68cde84d423049d2312f5c8 Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 21 Apr 2016 12:43:47 +0500 Subject: [PATCH 087/148] [FIX] out of the loop when found needed block --- mail_base/static/src/js/base.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mail_base/static/src/js/base.js b/mail_base/static/src/js/base.js index 948c08d..5a43826 100644 --- a/mail_base/static/src/js/base.js +++ b/mail_base/static/src/js/base.js @@ -84,9 +84,11 @@ ChatAction.include({ destroy: function() { var result = this._super.apply(this, arguments); $('.oe_leftbar .oe_secondary_menu').each(function(){ - if ($(this).css('display') == 'block' && $(this).children().length > 0){ - $('.oe_leftbar').toggle(true); - return false; + if ($(this).css('display') == 'block'){ + if ($(this).children().length > 0) { + $('.oe_leftbar').toggle(true); + } + return false; } }); return result; From 69c2a10b6b9b91b1b617021a555c79caffb5363b Mon Sep 17 00:00:00 2001 From: Ilyas Date: Thu, 21 Apr 2016 17:57:22 +0500 Subject: [PATCH 088/148] [PORT] tour --- res_partner_mails_count/__openerp__.py | 2 +- .../src/js/res_partner_mails_count_tour.js | 28 ++++++------------- res_partner_mails_count/templates.xml | 7 +++++ res_partner_mails_count/tests/test_phantom.py | 3 +- 4 files changed, 18 insertions(+), 22 deletions(-) diff --git a/res_partner_mails_count/__openerp__.py b/res_partner_mails_count/__openerp__.py index aadb5ca..5d39403 100644 --- a/res_partner_mails_count/__openerp__.py +++ b/res_partner_mails_count/__openerp__.py @@ -13,7 +13,7 @@ "currency": "EUR", "depends": [ - 'mail_archives' + 'mail_archives', 'web_tour_extra' , ], "external_dependencies": {"python": [], "bin": []}, diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index b64e84b..aa49159 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -1,9 +1,10 @@ -(function () { +odoo.define('res_partner_mails_count.mails_count_tour', function (require) { 'use strict'; + var Core = require('web.core'); + var Tour = require('web.Tour'); + var _t = Core._t; - var _t = openerp._t; - - openerp.Tour.register({ + Tour.register({ id: 'mails_count_tour', name: _t("Mails count Tour"), mode: 'test', @@ -22,25 +23,12 @@ }, { - waitNot: '.mails_to:visible', - title: _t("Send message from here"), - placement: 'left', - content: _t("Now you can see corresponding mails. You can send mail to this partner right from here. Press 'Send a mesage'."), - element: '.oe_mail_wall .oe_msg.oe_msg_composer_compact>div>.oe_compose_post', - }, - { - title: "New message", - placement: 'left', - content: _t("You can type message here."), - element: 'div.oe_msg_content>textarea.field_text', - }, - { - wait: '7000', - title: "That's it", + waitFor: '.o_channel_name.mail_archives:visible', + title: _t("That's it"), content: _t("Enjoy your day!

IT-Projects LLC team "), popover: { next: _t("Close Tutorial") }, }, ] }); -}()); +}); diff --git a/res_partner_mails_count/templates.xml b/res_partner_mails_count/templates.xml index 7cb5bc1..ae9d0e7 100644 --- a/res_partner_mails_count/templates.xml +++ b/res_partner_mails_count/templates.xml @@ -1,6 +1,13 @@ + res.partner.mails.count res.partner diff --git a/res_partner_mails_count/tests/test_phantom.py b/res_partner_mails_count/tests/test_phantom.py index 515d55b..47e980c 100644 --- a/res_partner_mails_count/tests/test_phantom.py +++ b/res_partner_mails_count/tests/test_phantom.py @@ -4,7 +4,8 @@ import openerp.tests @openerp.tests.common.post_install(True) class TestUi(openerp.tests.HttpCase): def test_01_res_partner_mails_to_count(self): - self.phantom_js('/', "openerp.Tour.run('mails_count_tour', 'test')", "openerp.Tour.tours.mails_count_tour", login="admin") + # self.phantom_js('/', "openerp.Tour.run('mails_count_tour', 'test')", "openerp.Tour.tours.mails_count_tour", login="admin") + self.phantom_js("/", "odoo.__DEBUG__.services['web.Tour'].run('mails_count_tour', 'test')","odoo.__DEBUG__.services['web.Tour'].tours.mails_count_tour", login="admin") def test_02_res_partner_mails_from_count(self): # wait till page loaded and then click and wait again From 9653b03f80e71c076b97c4ebc4273e30ec768b1a Mon Sep 17 00:00:00 2001 From: ilyasProgrammer Date: Fri, 22 Apr 2016 16:43:10 +0500 Subject: [PATCH 089/148] [FIX] tour run --- .../static/src/js/res_partner_mails_count_tour.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index aa49159..cbaeee1 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -20,9 +20,11 @@ odoo.define('res_partner_mails_count.mails_count_tour', function (require) { title: _t("New fields"), content: _t("Here is new fields with mails counters. Press one of it."), element: '.mails_to', + wait: '.mails_to:visible', }, { + wait: '2000', waitFor: '.o_channel_name.mail_archives:visible', title: _t("That's it"), content: _t("Enjoy your day!

IT-Projects LLC team "), From a3e936e363e1a88f53f36d2634892ff2f697f648 Mon Sep 17 00:00:00 2001 From: ilyasProgrammer Date: Mon, 25 Apr 2016 14:43:37 +0500 Subject: [PATCH 090/148] [PORT] WIP cant tour as test --- .../static/src/js/res_partner_mails_count_tour.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index cbaeee1..2c166b0 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -1,4 +1,4 @@ -odoo.define('res_partner_mails_count.mails_count_tour', function (require) { +odoo.define('res_partner_mails_count.res_partner_mails_count_tour', function (require) { 'use strict'; var Core = require('web.core'); var Tour = require('web.Tour'); @@ -8,7 +8,9 @@ odoo.define('res_partner_mails_count.mails_count_tour', function (require) { id: 'mails_count_tour', name: _t("Mails count Tour"), mode: 'test', - path: '/web?res_partner_mails_count=tutorial#id=3&view_type=form&model=res.partner', + // path: '/web?res_partner_mails_count=tutorial#id=3&view_type=form&model=res.partner', + // path: '/web?debug=1&res_partner_mails_count=tutorial#id=3&view_type=form&model=res.partner', + path: '/web', // mode: 'tutorial', steps: [ { From 7032b60e76a30a062f3e9abd9ddcf2c70791a883 Mon Sep 17 00:00:00 2001 From: ilyasProgrammer Date: Mon, 25 Apr 2016 16:41:37 +0500 Subject: [PATCH 091/148] [PORT] noupdate. tests --- mail_archives/tests/test_js.py | 2 +- .../static/src/js/res_partner_mails_count_tour.js | 5 +---- res_partner_mails_count/templates.xml | 2 ++ res_partner_mails_count/tests/test_phantom.py | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/mail_archives/tests/test_js.py b/mail_archives/tests/test_js.py index 645e971..709cc28 100644 --- a/mail_archives/tests/test_js.py +++ b/mail_archives/tests/test_js.py @@ -12,4 +12,4 @@ class TestUi(openerp.tests.HttpCase): }, 1000); """ link = '/web#action=%s' % self.ref('mail.mail_channel_action_client_chat') - self.phantom_js(link, code, "odoo.__DEBUG__.services['mail_archives.archives']", login="demo") + self.phantom_js(link, code, "odoo.__DEBUG__.services['mail_archives.archives']", login="admin") diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index 2c166b0..df75c3f 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -8,10 +8,7 @@ odoo.define('res_partner_mails_count.res_partner_mails_count_tour', function (re id: 'mails_count_tour', name: _t("Mails count Tour"), mode: 'test', - // path: '/web?res_partner_mails_count=tutorial#id=3&view_type=form&model=res.partner', - // path: '/web?debug=1&res_partner_mails_count=tutorial#id=3&view_type=form&model=res.partner', - path: '/web', - // mode: 'tutorial', + path: '/web?&res_partner_mails_count=tutorial#id=3&view_type=form&model=res.partner', steps: [ { title: _t("Mails count tutorial"), diff --git a/res_partner_mails_count/templates.xml b/res_partner_mails_count/templates.xml index ae9d0e7..f17a0d2 100644 --- a/res_partner_mails_count/templates.xml +++ b/res_partner_mails_count/templates.xml @@ -30,6 +30,8 @@

+ + res_partner_mails_count Tutorial diff --git a/res_partner_mails_count/tests/test_phantom.py b/res_partner_mails_count/tests/test_phantom.py index 47e980c..4790eae 100644 --- a/res_partner_mails_count/tests/test_phantom.py +++ b/res_partner_mails_count/tests/test_phantom.py @@ -16,4 +16,4 @@ class TestUi(openerp.tests.HttpCase): }, 3000); """ link = '/web#id=3&view_type=form&model=res.partner' - self.phantom_js(link, code, "openerp.Tour.tours.mails_count_tour", login="admin") + self.phantom_js(link, code, "odoo.__DEBUG__.services['web.Tour'].tours.mails_count_tour", login="admin") From 80db2262f86a7be6b0a776a6f0b24b393bd53a19 Mon Sep 17 00:00:00 2001 From: ilyasProgrammer Date: Mon, 25 Apr 2016 17:04:52 +0500 Subject: [PATCH 092/148] [PORT] runbot test --- .../static/src/js/res_partner_mails_count_tour.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index df75c3f..b4a8945 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -19,7 +19,7 @@ odoo.define('res_partner_mails_count.res_partner_mails_count_tour', function (re title: _t("New fields"), content: _t("Here is new fields with mails counters. Press one of it."), element: '.mails_to', - wait: '.mails_to:visible', + waitFor: '.mails_to:visible', }, { From 563ac8b0b71325d0fbc29c6e764ca04547d3e33a Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Tue, 26 Apr 2016 11:13:10 +0500 Subject: [PATCH 093/148] [FIX] don't repeat Tour after updating --- res_partner_mails_count/templates.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/res_partner_mails_count/templates.xml b/res_partner_mails_count/templates.xml index 0541d56..0015e30 100644 --- a/res_partner_mails_count/templates.xml +++ b/res_partner_mails_count/templates.xml @@ -51,6 +51,8 @@ self + + open From 60b1bb64ec3c0ad6fa4c3180be0bc9a2c83eb490 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Tue, 26 Apr 2016 11:18:04 +0500 Subject: [PATCH 094/148] [FIX] noupdate must be applied for todo only --- res_partner_mails_count/templates.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/res_partner_mails_count/templates.xml b/res_partner_mails_count/templates.xml index 41e59b0..c705f6a 100644 --- a/res_partner_mails_count/templates.xml +++ b/res_partner_mails_count/templates.xml @@ -30,8 +30,6 @@
-
- res_partner_mails_count Tutorial From c0396830ce384fa02383085d6ce7d94f7d88230a Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Tue, 26 Apr 2016 11:23:21 +0500 Subject: [PATCH 095/148] [FIX] don't switch to debug in tutor --- res_partner_mails_count/templates.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res_partner_mails_count/templates.xml b/res_partner_mails_count/templates.xml index 0015e30..9910d6c 100644 --- a/res_partner_mails_count/templates.xml +++ b/res_partner_mails_count/templates.xml @@ -48,7 +48,7 @@ res_partner_mails_count Tutorial - + self From 81843d71e98a46265b9d1e6ea6c4ed80955d870c Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Tue, 26 Apr 2016 11:26:05 +0500 Subject: [PATCH 096/148] [DOC] change text in step --- .../static/src/js/res_partner_mails_count_tour.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index b64e84b..ead7743 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -19,13 +19,12 @@ title: _t("New fields"), content: _t("Here is new fields with mails counters. Press one of it."), element: '.mails_to', - }, { waitNot: '.mails_to:visible', - title: _t("Send message from here"), + title: _t("Check messages or send new one"), placement: 'left', - content: _t("Now you can see corresponding mails. You can send mail to this partner right from here. Press 'Send a mesage'."), + content: _t("Click 'Send a mesage' to continue the Tour"), element: '.oe_mail_wall .oe_msg.oe_msg_composer_compact>div>.oe_compose_post', }, { From 1ef37eb351e26cf6f2e6260768569b0ab13c2c92 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Tue, 26 Apr 2016 11:32:24 +0500 Subject: [PATCH 097/148] [DOC] Tour: delete waitFor and increase wait in last step It seems that waitFor+wait doesn't work as expected. "wait" is count down before start check waitFor condition, while the idea was opposite -- wait when page is loaded and then count down 2 sec --- .../static/src/js/res_partner_mails_count_tour.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index 960e805..c821231 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -22,8 +22,7 @@ odoo.define('res_partner_mails_count.res_partner_mails_count_tour', function (re waitFor: '.mails_to:visible', }, { - wait: '2000', - waitFor: '.o_channel_name.mail_archives:visible', + wait: '8000', title: _t("That's it"), content: _t("Enjoy your day!

IT-Projects LLC team "), popover: { next: _t("Close Tutorial") }, From 52b61e5e6872cc7f02f1d5441cf675a794820094 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Tue, 26 Apr 2016 12:02:26 +0500 Subject: [PATCH 098/148] [FIX] waitFor on last step is needed for test mode --- .../static/src/js/res_partner_mails_count_tour.js | 1 + 1 file changed, 1 insertion(+) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index c821231..5387fd6 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -23,6 +23,7 @@ odoo.define('res_partner_mails_count.res_partner_mails_count_tour', function (re }, { wait: '8000', + waitFor: '.o_channel_name.mail_archives:visible' title: _t("That's it"), content: _t("Enjoy your day!

IT-Projects LLC team "), popover: { next: _t("Close Tutorial") }, From cd8d9b07257eec9e06042e203c836d2c3165a8c5 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Tue, 26 Apr 2016 12:35:13 +0500 Subject: [PATCH 099/148] [FIX] missed comma --- .../static/src/js/res_partner_mails_count_tour.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index 5387fd6..10cff70 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -23,7 +23,7 @@ odoo.define('res_partner_mails_count.res_partner_mails_count_tour', function (re }, { wait: '8000', - waitFor: '.o_channel_name.mail_archives:visible' + waitFor: '.o_channel_name.mail_archives:visible', title: _t("That's it"), content: _t("Enjoy your day!

IT-Projects LLC team "), popover: { next: _t("Close Tutorial") }, From ba48e29803192daeb6c79d2ce266362bcded1600 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Tue, 26 Apr 2016 12:43:12 +0500 Subject: [PATCH 100/148] [IMP] new step in tour It also fix problem with last timeouted step --- .../static/src/js/res_partner_mails_count_tour.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index 10cff70..0f5abdf 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -21,6 +21,11 @@ odoo.define('res_partner_mails_count.res_partner_mails_count_tour', function (re element: '.mails_to', waitFor: '.mails_to:visible', }, + { + title: _t("Messages are found!"), + placement: 'left', + element: '.o_mail_thread', + }, { wait: '8000', waitFor: '.o_channel_name.mail_archives:visible', From d2a6373f1e5969a53a9472c2e68aef575ba1babc Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Tue, 26 Apr 2016 12:53:10 +0500 Subject: [PATCH 101/148] [FIX] waitNot is necessary, because o_mail_thread is already presented in partner page --- .../static/src/js/res_partner_mails_count_tour.js | 1 + 1 file changed, 1 insertion(+) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index 0f5abdf..015f4de 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -24,6 +24,7 @@ odoo.define('res_partner_mails_count.res_partner_mails_count_tour', function (re { title: _t("Messages are found!"), placement: 'left', + waitNot: '.mails_to:visible', element: '.o_mail_thread', }, { From e2f097a45821ae8a72bbc6ca72674a8dca4fc15b Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Tue, 26 Apr 2016 13:01:40 +0500 Subject: [PATCH 102/148] [IMP] descrease delay time + new placement option --- .../static/src/js/res_partner_mails_count_tour.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index 015f4de..1a12578 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -23,12 +23,12 @@ odoo.define('res_partner_mails_count.res_partner_mails_count_tour', function (re }, { title: _t("Messages are found!"), - placement: 'left', + placement: 'top', waitNot: '.mails_to:visible', element: '.o_mail_thread', }, { - wait: '8000', + wait: '5000', waitFor: '.o_channel_name.mail_archives:visible', title: _t("That's it"), content: _t("Enjoy your day!

IT-Projects LLC team "), From 4a6b340026a979d2eea534a57561508eb401472f Mon Sep 17 00:00:00 2001 From: x620 Date: Tue, 26 Apr 2016 18:12:20 +0500 Subject: [PATCH 103/148] [FIX] fixes Recipients field --- mail_base/README.rst | 3 ++- mail_base/__init__.py | 2 ++ mail_base/models.py | 18 ++++++++++++++++++ mail_base/static/src/js/base.js | 2 ++ 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 mail_base/models.py diff --git a/mail_base/README.rst b/mail_base/README.rst index 9e89d30..5ee7ab2 100644 --- a/mail_base/README.rst +++ b/mail_base/README.rst @@ -2,8 +2,9 @@ Mail Base ========= * makes built-in mail js features extendable. -* handle ``search_default_*`` parameters in context. +* handles ``search_default_*`` parameters in context. * fixes toggling left bar +* fixes Recipients field. Out-of-box this field could be empty. Usage ----- diff --git a/mail_base/__init__.py b/mail_base/__init__.py index 40a96af..c7b5ac7 100644 --- a/mail_base/__init__.py +++ b/mail_base/__init__.py @@ -1 +1,3 @@ # -*- coding: utf-8 -*- + +import models diff --git a/mail_base/models.py b/mail_base/models.py new file mode 100644 index 0000000..ade9a35 --- /dev/null +++ b/mail_base/models.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- + +from openerp import api, models + + +class MailMessage(models.Model): + _inherit = 'mail.message' + + @api.multi + def write(self, values): + if values.get('needaction_partner_ids'): + if not values.get('partner_ids'): + values['partner_ids'] = [] + for triplet in values.get('needaction_partner_ids'): + if triplet[0] == 6: + for id in triplet[2]: + values['partner_ids'].append((4, id, False)) + return super(MailMessage, self).write(values) diff --git a/mail_base/static/src/js/base.js b/mail_base/static/src/js/base.js index 5a43826..d392668 100644 --- a/mail_base/static/src/js/base.js +++ b/mail_base/static/src/js/base.js @@ -269,6 +269,8 @@ var MailTools = core.Class.extend({ var msg = { id: data.id, author_id: data.author_id, + needaction_partner_ids: data.needaction_partner_ids, + partner_ids: data.partner_ids, body_short: data.body_short || "", body: data.body || "", date: moment(time.str_to_datetime(data.date)), From d90dee942f97d94ce14b6e00415e3d1346415804 Mon Sep 17 00:00:00 2001 From: x620 Date: Tue, 26 Apr 2016 18:14:33 +0500 Subject: [PATCH 104/148] [ADD] mail_to module: display recipients the right of the messages --- mail_to/README.rst | 11 +++++++++++ mail_to/__init__.py | 1 + mail_to/__openerp__.py | 28 ++++++++++++++++++++++++++++ mail_to/doc/changelog.rst | 7 +++++++ mail_to/doc/index.rst | 9 +++++++++ mail_to/models.py | 17 +++++++++++++++++ mail_to/static/src/js/mail_to.js | 17 +++++++++++++++++ mail_to/static/src/xml/recipient.xml | 12 ++++++++++++ mail_to/templates.xml | 12 ++++++++++++ 9 files changed, 114 insertions(+) create mode 100644 mail_to/README.rst create mode 100644 mail_to/__init__.py create mode 100644 mail_to/__openerp__.py create mode 100644 mail_to/doc/changelog.rst create mode 100644 mail_to/doc/index.rst create mode 100644 mail_to/models.py create mode 100644 mail_to/static/src/js/mail_to.js create mode 100644 mail_to/static/src/xml/recipient.xml create mode 100644 mail_to/templates.xml diff --git a/mail_to/README.rst b/mail_to/README.rst new file mode 100644 index 0000000..1220cdb --- /dev/null +++ b/mail_to/README.rst @@ -0,0 +1,11 @@ +========================= + Show message recipients +========================= + +Allows you be sure, that all discussion participants were notified. Adds recipients label the right of message. + +Further information +------------------- +HTML Description: https://apps.odoo.com/apps/modules/9.0/mail_to/ + +Tested on Odoo 9.0 d3dd4161ad0598ebaa659fbd083457c77aa9448d \ No newline at end of file diff --git a/mail_to/__init__.py b/mail_to/__init__.py new file mode 100644 index 0000000..40a96af --- /dev/null +++ b/mail_to/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- diff --git a/mail_to/__openerp__.py b/mail_to/__openerp__.py new file mode 100644 index 0000000..664adc5 --- /dev/null +++ b/mail_to/__openerp__.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +{ + "name": """Show message recipients""", + "summary": """Allows you be sure, that all discussion participants were notified""", + "category": "Discuss", + "images": [], + "version": "1.0.0", + + "author": "IT-Projects LLC, Pavel Romanchenko", + "website": "https://it-projects.info", + "license": "LGPL-3", + #"price": 9.00, + #"currency": "EUR", + + "depends": [ + 'mail_base', + ], + "external_dependencies": {"python": [], "bin": []}, + "data": [ + 'templates.xml', + ], + "qweb": [ + 'static/src/xml/recipient.xml', + ], + "demo": [], + "installable": True, + "auto_install": False, +} diff --git a/mail_to/doc/changelog.rst b/mail_to/doc/changelog.rst new file mode 100644 index 0000000..61af251 --- /dev/null +++ b/mail_to/doc/changelog.rst @@ -0,0 +1,7 @@ +Changelog +========= + +`1.0.0` +------- + +- Init version \ No newline at end of file diff --git a/mail_to/doc/index.rst b/mail_to/doc/index.rst new file mode 100644 index 0000000..870e115 --- /dev/null +++ b/mail_to/doc/index.rst @@ -0,0 +1,9 @@ +========================= + Show message recipients +========================= + +Usage +===== + +* Open Discuss menu +* All messages have Recipients info \ No newline at end of file diff --git a/mail_to/models.py b/mail_to/models.py new file mode 100644 index 0000000..b53fc12 --- /dev/null +++ b/mail_to/models.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +from openerp import api, models, fields + + +class MailMessage(models.Model): + _inherit = 'mail.message' + + @api.multi + def message_format(self): + message_values = super(MailMessage, self).message_format() + message_index = {message['id']: message for message in message_values} + for item in self: + msg = message_index.get(item.id) + if msg: + # TODO: найти получателей + msg['recipient'] = 'Recipient' + return message_values diff --git a/mail_to/static/src/js/mail_to.js b/mail_to/static/src/js/mail_to.js new file mode 100644 index 0000000..63b9219 --- /dev/null +++ b/mail_to/static/src/js/mail_to.js @@ -0,0 +1,17 @@ +odoo.define('mail_to.MailTo', function (require) { + "use strict"; + + var Thread = require('mail.ChatThread'); + var Model = require('web.Model'); + + Thread.include({ + render: function (messages, options) { + // for(var i = 0; i < messages.length; i++){ + // var msg = messages[i]; + // msg.needaction_partner_ids = [3]; + // } + // console.log('messages:', messages); + this._super(messages, options); + } + }); +}); diff --git a/mail_to/static/src/xml/recipient.xml b/mail_to/static/src/xml/recipient.xml new file mode 100644 index 0000000..dddae1d --- /dev/null +++ b/mail_to/static/src/xml/recipient.xml @@ -0,0 +1,12 @@ + + \ No newline at end of file diff --git a/mail_to/templates.xml b/mail_to/templates.xml new file mode 100644 index 0000000..0d763ec --- /dev/null +++ b/mail_to/templates.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file From 367a79573ca071dea34725edc447f3a445e614d3 Mon Sep 17 00:00:00 2001 From: x620 Date: Tue, 26 Apr 2016 18:28:24 +0500 Subject: [PATCH 105/148] [REM] remove unused models.py --- mail_to/models.py | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 mail_to/models.py diff --git a/mail_to/models.py b/mail_to/models.py deleted file mode 100644 index b53fc12..0000000 --- a/mail_to/models.py +++ /dev/null @@ -1,17 +0,0 @@ -# -*- coding: utf-8 -*- -from openerp import api, models, fields - - -class MailMessage(models.Model): - _inherit = 'mail.message' - - @api.multi - def message_format(self): - message_values = super(MailMessage, self).message_format() - message_index = {message['id']: message for message in message_values} - for item in self: - msg = message_index.get(item.id) - if msg: - # TODO: найти получателей - msg['recipient'] = 'Recipient' - return message_values From ca9a5934a8f96751e8a1201e583ef2d5a731045a Mon Sep 17 00:00:00 2001 From: ilyasProgrammer Date: Tue, 26 Apr 2016 19:55:13 +0500 Subject: [PATCH 106/148] [FIX] incorrect title --- .../static/src/js/res_partner_mails_count_tour.js | 4 ++-- res_partner_mails_count/templates.xml | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index b64e84b..7057c74 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -25,8 +25,8 @@ waitNot: '.mails_to:visible', title: _t("Send message from here"), placement: 'left', - content: _t("Now you can see corresponding mails. You can send mail to this partner right from here. Press 'Send a mesage'."), - element: '.oe_mail_wall .oe_msg.oe_msg_composer_compact>div>.oe_compose_post', + content: "Now you can see corresponding mails. You can send mail to this partner right from here. Press 'Send a mesage'.", + element: '.oe_mail_wall .oe_msg.oe_msg_composer_compact', }, { title: "New message", diff --git a/res_partner_mails_count/templates.xml b/res_partner_mails_count/templates.xml index 0541d56..1ed7e5c 100644 --- a/res_partner_mails_count/templates.xml +++ b/res_partner_mails_count/templates.xml @@ -48,13 +48,14 @@ res_partner_mails_count Tutorial - + self open 200 + automatic
From a22c22bc36d30598c426aabc594aeda953fb5ccb Mon Sep 17 00:00:00 2001 From: ilyasProgrammer Date: Wed, 27 Apr 2016 11:01:03 +0500 Subject: [PATCH 107/148] [IMP] tour last step, todo type --- .../static/src/js/res_partner_mails_count_tour.js | 11 ++++++----- res_partner_mails_count/templates.xml | 1 + 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index b4a8945..5c5e1b1 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -23,11 +23,12 @@ odoo.define('res_partner_mails_count.res_partner_mails_count_tour', function (re }, { - wait: '2000', - waitFor: '.o_channel_name.mail_archives:visible', - title: _t("That's it"), - content: _t("Enjoy your day!

IT-Projects LLC team "), - popover: { next: _t("Close Tutorial") }, + title: _t("Done"), + placement: 'top', + waitNot: '.mails_to:visible', + element: '.o_mail_thread', + content: _t("Message are found.
Enjoy your day!

IT-Projects LLC team "), + popover: {next: _t("Close Tutorial")}, }, ] }); diff --git a/res_partner_mails_count/templates.xml b/res_partner_mails_count/templates.xml index f17a0d2..814a480 100644 --- a/res_partner_mails_count/templates.xml +++ b/res_partner_mails_count/templates.xml @@ -41,6 +41,7 @@ open 200 + automatic From 3bae0358c96fd80af71dbff2c2cc136228b7e0dd Mon Sep 17 00:00:00 2001 From: x620 Date: Wed, 27 Apr 2016 11:30:35 +0500 Subject: [PATCH 108/148] [REF] move append partner_ids parameter for message from base.js to mail_to.js --- mail_base/static/src/js/base.js | 2 -- mail_to/static/src/js/mail_to.js | 17 +++++++---------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/mail_base/static/src/js/base.js b/mail_base/static/src/js/base.js index d392668..5a43826 100644 --- a/mail_base/static/src/js/base.js +++ b/mail_base/static/src/js/base.js @@ -269,8 +269,6 @@ var MailTools = core.Class.extend({ var msg = { id: data.id, author_id: data.author_id, - needaction_partner_ids: data.needaction_partner_ids, - partner_ids: data.partner_ids, body_short: data.body_short || "", body: data.body || "", date: moment(time.str_to_datetime(data.date)), diff --git a/mail_to/static/src/js/mail_to.js b/mail_to/static/src/js/mail_to.js index 63b9219..48f3c6e 100644 --- a/mail_to/static/src/js/mail_to.js +++ b/mail_to/static/src/js/mail_to.js @@ -1,17 +1,14 @@ odoo.define('mail_to.MailTo', function (require) { "use strict"; - var Thread = require('mail.ChatThread'); - var Model = require('web.Model'); + var base_obj = require('mail_base.base'); - Thread.include({ - render: function (messages, options) { - // for(var i = 0; i < messages.length; i++){ - // var msg = messages[i]; - // msg.needaction_partner_ids = [3]; - // } - // console.log('messages:', messages); - this._super(messages, options); + base_obj.MailTools.include({ + make_message: function(data){ + var msg = this._super(data); + msg.partner_ids = data.partner_ids; + // msg.needaction_partner_ids = data.needaction_partner_ids; + return msg; } }); }); From 0f7572a159547f85f237cd34f0acde79a788323a Mon Sep 17 00:00:00 2001 From: ilyasProgrammer Date: Wed, 27 Apr 2016 11:35:50 +0500 Subject: [PATCH 109/148] [IMP] tour steps --- .../src/js/res_partner_mails_count_tour.js | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index 7057c74..eb1f202 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -29,16 +29,12 @@ element: '.oe_mail_wall .oe_msg.oe_msg_composer_compact', }, { - title: "New message", - placement: 'left', - content: _t("You can type message here."), - element: 'div.oe_msg_content>textarea.field_text', - }, - { - wait: '7000', - title: "That's it", - content: _t("Enjoy your day!

IT-Projects LLC team "), - popover: { next: _t("Close Tutorial") }, + title: _t("Done"), + placement: 'top', + waitNot: '.mails_to:visible', + element: 'div.oe_msg_content>textarea.field_text', + content: _t("Message are found.
Enjoy your day!

IT-Projects LLC team "), + popover: {next: _t("Close Tutorial")}, }, ] }); From ce8ad6fe19bc69ea19751d0493eccf11ce6a68e9 Mon Sep 17 00:00:00 2001 From: ilyasProgrammer Date: Wed, 27 Apr 2016 12:04:21 +0500 Subject: [PATCH 110/148] [FIX[ lame space --- .../static/src/js/res_partner_mails_count_tour.js | 1 - 1 file changed, 1 deletion(-) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index d2c264d..1ec9cfd 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -19,7 +19,6 @@ title: _t("New fields"), content: _t("Here is new fields with mails counters. Press one of it."), element: '.mails_to', - }, { waitNot: '.mails_to:visible', From 48d8252e56bd237be419ea25fb8fa49e6453fee9 Mon Sep 17 00:00:00 2001 From: ilyasProgrammer Date: Wed, 27 Apr 2016 12:58:13 +0500 Subject: [PATCH 111/148] [FIX] tour element --- .../static/src/js/res_partner_mails_count_tour.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index 1ec9cfd..f63bd99 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -25,7 +25,7 @@ title: _t("Check messages or send new one"), placement: 'left', content: _t("Click 'Send a mesage' to continue the Tour"), - element: '.oe_mail_wall .oe_msg.oe_msg_composer_compact>div>.oe_compose_post', + element: '.oe_mail_wall .oe_msg.oe_msg_composer_compact', }, { title: _t("Done"), From cf98ad68dfff9f25190626617e175239a787e2e1 Mon Sep 17 00:00:00 2001 From: ilyasProgrammer Date: Wed, 27 Apr 2016 17:16:29 +0500 Subject: [PATCH 112/148] [IMP] comment, readme --- .../static/src/js/res_partner_mails_count_tour.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index f63bd99..fa65515 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -8,7 +8,6 @@ name: _t("Mails count Tour"), mode: 'test', path: '/web?res_partner_mails_count=tutorial#id=3&view_type=form&model=res.partner', - // mode: 'tutorial', steps: [ { title: _t("Mails count tutorial"), @@ -25,8 +24,12 @@ title: _t("Check messages or send new one"), placement: 'left', content: _t("Click 'Send a mesage' to continue the Tour"), - element: '.oe_mail_wall .oe_msg.oe_msg_composer_compact', + // element: '.oe_mail_wall .oe_msg.oe_msg_composer_compact', + element: '.oe_mail_wall .oe_msg.oe_msg_composer_compact>div>.oe_compose_post', }, + // { + // element: '.oe_mail_wall .oe_msg.oe_msg_composer_compact>div>.oe_compose_post', + // }, { title: _t("Done"), placement: 'top', From bc20db1c542cfe82565bb0430110b63edca452fe Mon Sep 17 00:00:00 2001 From: x620 Date: Wed, 27 Apr 2016 17:20:38 +0500 Subject: [PATCH 113/148] [FIX] fix error channel_seen function in base.js [FIX] fix error inline method in base.js [ADD] add css file for make grey color for link and display recipients when overmouse [IMP] add "To:" before recipients and make link on recipient name [DOC] add info about old messages in index.rst --- mail_base/static/src/js/base.js | 4 ++-- mail_to/doc/index.rst | 3 ++- mail_to/static/src/css/mail_to.css | 9 +++++++++ mail_to/static/src/xml/recipient.xml | 10 ++++++++-- mail_to/templates.xml | 1 + 5 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 mail_to/static/src/css/mail_to.css diff --git a/mail_base/static/src/js/base.js b/mail_base/static/src/js/base.js index 5a43826..c57ff77 100644 --- a/mail_base/static/src/js/base.js +++ b/mail_base/static/src/js/base.js @@ -845,7 +845,7 @@ chat_manager.undo_mark_as_read = function (message_ids, channel) { chat_manager.mark_channel_as_seen = function (channel) { if (channel.unread_counter > 0 && channel.type !== 'static') { chat_manager.mail_tools.update_channel_unread_counter(channel, 0); - chat_manager.mail_tools.channel_seen(channel); + channel_seen(channel); } }; chat_manager.get_channels = function () { @@ -1043,7 +1043,7 @@ chat_manager.get_channels_preview = function (channels) { }); }; chat_manager.get_message_body_preview = function (message_body) { - return chat_manager.mail_tools.parse_and_transform(message_body, inline); + return chat_manager.mail_tools.parse_and_transform(message_body, chat_manager.mail_tools.inline); }; chat_manager.search_partner = function (search_val, limit) { return PartnerModel.call('im_search', [search_val, limit || 20], {}, {shadow: true}).then(function(result) { diff --git a/mail_to/doc/index.rst b/mail_to/doc/index.rst index 870e115..b661c52 100644 --- a/mail_to/doc/index.rst +++ b/mail_to/doc/index.rst @@ -6,4 +6,5 @@ Usage ===== * Open Discuss menu -* All messages have Recipients info \ No newline at end of file +* All messages have Recipients info +* For messages created before install module it not will work where the recipients is not set \ No newline at end of file diff --git a/mail_to/static/src/css/mail_to.css b/mail_to/static/src/css/mail_to.css new file mode 100644 index 0000000..ef453d6 --- /dev/null +++ b/mail_to/static/src/css/mail_to.css @@ -0,0 +1,9 @@ +.grey { + color: grey; +} +.o_mail_thread .o_thread_message span.recipients_info { + opacity: 0; +} +.o_mail_thread .o_thread_message:hover span.recipients_info { + opacity: 1; +} diff --git a/mail_to/static/src/xml/recipient.xml b/mail_to/static/src/xml/recipient.xml index dddae1d..0790198 100644 --- a/mail_to/static/src/xml/recipient.xml +++ b/mail_to/static/src/xml/recipient.xml @@ -1,10 +1,16 @@ From 200dc9977fe66f51d344c587108cea7151a38867 Mon Sep 17 00:00:00 2001 From: x620 Date: Wed, 27 Apr 2016 17:53:48 +0500 Subject: [PATCH 114/148] [FIX] fix link error --- mail_to/static/src/xml/recipient.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/mail_to/static/src/xml/recipient.xml b/mail_to/static/src/xml/recipient.xml index 0790198..edead08 100644 --- a/mail_to/static/src/xml/recipient.xml +++ b/mail_to/static/src/xml/recipient.xml @@ -6,8 +6,6 @@ To: From f453d193a1659b25fc7cb8bf43045f4e1753e8e1 Mon Sep 17 00:00:00 2001 From: Denis Baranov Date: Thu, 28 Apr 2016 19:46:41 +0300 Subject: [PATCH 115/148] mail_fix_553: add name in from alias email --- mail_fix_553/README.rst | 1 + mail_fix_553/data.xml | 5 +++++ mail_fix_553/mail_fix_553.py | 3 +++ 3 files changed, 9 insertions(+) diff --git a/mail_fix_553/README.rst b/mail_fix_553/README.rst index bfb1799..f8a430f 100644 --- a/mail_fix_553/README.rst +++ b/mail_fix_553/README.rst @@ -18,6 +18,7 @@ Configuration ============= You can configure default alias at Settings -> System Parameters -> mail.catchall.alias_from +You can configure name for default alias at Settings -> System Parameters -> mail.catchall.name_alias_from Known issues / Roadmap ====================== diff --git a/mail_fix_553/data.xml b/mail_fix_553/data.xml index 411d614..e9dc78d 100644 --- a/mail_fix_553/data.xml +++ b/mail_fix_553/data.xml @@ -6,5 +6,10 @@ mail.catchall.alias_from portal + + + mail.catchall.name_alias_from + Odoo + diff --git a/mail_fix_553/mail_fix_553.py b/mail_fix_553/mail_fix_553.py index 167435a..70af917 100644 --- a/mail_fix_553/mail_fix_553.py +++ b/mail_fix_553/mail_fix_553.py @@ -38,6 +38,7 @@ class mail_mail(osv.Model): # NEW STUFF catchall_alias = self.pool['ir.config_parameter'].get_param(cr, uid, "mail.catchall.alias_from", context=context) + catchall_alias_name = self.pool['ir.config_parameter'].get_param(cr, uid, "mail.catchall.name_alias_from", context=context) catchall_domain = self.pool['ir.config_parameter'].get_param(cr, uid, "mail.catchall.domain", context=context) correct_email_from = '@%s>?\s*$'%catchall_domain @@ -101,6 +102,8 @@ class mail_mail(osv.Model): email_from = mail.email_from if re.search(correct_email_from, email_from) is None: email_from = default_email_from + if catchall_alias_name: + email_from = formataddr((catchall_alias_name, email_from)) msg = ir_mail_server.build_email( email_from=email_from, # NEW STUFF From d66dc99012bfa17a251b02e2932a9d91e31595f4 Mon Sep 17 00:00:00 2001 From: x620 Date: Fri, 29 Apr 2016 12:31:36 +0500 Subject: [PATCH 116/148] [FIX] fix duplicate new messages --- mail_base/static/src/js/base.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mail_base/static/src/js/base.js b/mail_base/static/src/js/base.js index c57ff77..968f48d 100644 --- a/mail_base/static/src/js/base.js +++ b/mail_base/static/src/js/base.js @@ -11,6 +11,7 @@ var time = require('web.time'); var web_client = require('web.web_client'); var _t = core._t; +var _lt = core._lt; var LIMIT = 100; var preview_msg_max_size = 350; // optimal for native english speakers @@ -354,7 +355,7 @@ var MailTools = core.Class.extend({ } else { channel = chat_manager.mail_tools.make_channel(data, options); channels.push(channel); - channels = _.sortBy(channels, function (channel) { return channel.name.toLowerCase(); }); + channels = _.sortBy(channels, function (channel) { return _.isString(channel.name) ? channel.name.toLowerCase() : '' }); if (!options.silent) { chat_manager.bus.trigger("new_channel", channel); } @@ -1059,7 +1060,7 @@ chat_manager.search_partner = function (search_val, limit) { }); }; chat_manager.send_native_notification = function(){ - chat_manager.mail_tools.send_native_notification.apply(chat_manager.mail_tools, arguments) + return chat_manager.mail_tools.send_native_notification.apply(chat_manager.mail_tools, arguments) }; chat_manager.bus.on('client_action_open', null, function (open) { client_action_open = open; @@ -1069,13 +1070,13 @@ chat_manager.bus.on('client_action_open', null, function (open) { function init(){ chat_manager.mail_tools.add_channel({ id: "channel_inbox", - name: _t("Inbox"), + name: _lt("Inbox"), type: "static" }, { display_needactions: true }); chat_manager.mail_tools.add_channel({ id: "channel_starred", - name: _t("Starred"), + name: _lt("Starred"), type: "static" }); From 4cf02bf282820e27ff263e09946d45fd0e6fc17e Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Fri, 29 Apr 2016 12:57:32 +0500 Subject: [PATCH 117/148] [DOC] fix format --- mail_fix_553/README.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/mail_fix_553/README.rst b/mail_fix_553/README.rst index f8a430f..a1cc034 100644 --- a/mail_fix_553/README.rst +++ b/mail_fix_553/README.rst @@ -18,6 +18,7 @@ Configuration ============= You can configure default alias at Settings -> System Parameters -> mail.catchall.alias_from + You can configure name for default alias at Settings -> System Parameters -> mail.catchall.name_alias_from Known issues / Roadmap From 9c1796f541e8c577aac48a7cdc4c9b1d565cef3b Mon Sep 17 00:00:00 2001 From: x620 Date: Fri, 29 Apr 2016 15:10:31 +0500 Subject: [PATCH 118/148] [FIX] replace _t to _lt in archives.js and sent.js --- mail_archives/static/src/js/archives.js | 4 ++-- mail_sent/static/src/js/sent.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mail_archives/static/src/js/archives.js b/mail_archives/static/src/js/archives.js index 86813fb..912523a 100644 --- a/mail_archives/static/src/js/archives.js +++ b/mail_archives/static/src/js/archives.js @@ -13,7 +13,7 @@ var session = require('web.session'); var time = require('web.time'); var web_client = require('web.web_client'); -var _t = core._t; +var _lt = core._lt; //------------------------------------------------------------------------------- // Inherit class and override methods @@ -44,7 +44,7 @@ base_obj.chat_manager.is_ready.then(function(){ // Add archive channel base_obj.chat_manager.mail_tools.add_channel({ id: "channel_archive", - name: _t("Archive"), + name: _lt("Archive"), type: "static" }); diff --git a/mail_sent/static/src/js/sent.js b/mail_sent/static/src/js/sent.js index e253f29..df2bc11 100644 --- a/mail_sent/static/src/js/sent.js +++ b/mail_sent/static/src/js/sent.js @@ -13,7 +13,7 @@ var session = require('web.session'); var time = require('web.time'); var web_client = require('web.web_client'); -var _t = core._t; +var _lt = core._lt; //------------------------------------------------------------------------------- // Inherit class and override methods @@ -49,7 +49,7 @@ base_obj.chat_manager.is_ready.then(function(){ // Add sent channel base_obj.chat_manager.mail_tools.add_channel({ id: "channel_sent", - name: _t("Sent"), + name: _lt("Sent"), type: "static" }); From 87aaf66674173917d05c6a68975d8f856a758923 Mon Sep 17 00:00:00 2001 From: x620 Date: Fri, 29 Apr 2016 16:44:29 +0500 Subject: [PATCH 119/148] [FIX] unsubscribe and then subscribe to the event, to avoid duplication of new posts in base.js [FIX] replace "needaction_partner_ids" to "partner_ids" in models.py --- mail_base/static/src/js/base.js | 2 ++ mail_sent/models.py | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/mail_base/static/src/js/base.js b/mail_base/static/src/js/base.js index 968f48d..7e7549f 100644 --- a/mail_base/static/src/js/base.js +++ b/mail_base/static/src/js/base.js @@ -1099,6 +1099,8 @@ function init(){ var load_menu_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_menu_root_chat"], {}, {shadow: true}); var load_action_id = ir_model.call("xmlid_to_res_id", ["mail.mail_channel_action_client_chat"], {}, {shadow: true}); + // unsubscribe and then subscribe to the event, to avoid duplication of new messages + bus.off('notification'); bus.on('notification', null, chat_manager.mail_tools.on_notification); return $.when(load_menu_id, load_action_id, load_channels, load_emojis).then(function (menu_id, action_id) { diff --git a/mail_sent/models.py b/mail_sent/models.py index a77c2ae..99f4473 100644 --- a/mail_sent/models.py +++ b/mail_sent/models.py @@ -8,13 +8,13 @@ class MailMessage(models.Model): sent = fields.Boolean('Sent', compute="_get_sent", help='Was message sent to someone', store=True) @api.one - @api.depends('author_id', 'needaction_partner_ids') + @api.depends('author_id', 'partner_ids') def _get_sent(self): self_sudo = self.sudo() - self_sudo.sent = len(self_sudo.needaction_partner_ids) > 1 \ - or len(self_sudo.needaction_partner_ids) == 1 \ + self_sudo.sent = len(self_sudo.partner_ids) > 1 \ + or len(self_sudo.partner_ids) == 1 \ and self_sudo.author_id \ - and self_sudo.needaction_partner_ids[0].id != self_sudo.author_id.id + and self_sudo.partner_ids[0].id != self_sudo.author_id.id @api.multi def message_format(self): From f616f3ab001185f51eeecacb53829b59e901c4b6 Mon Sep 17 00:00:00 2001 From: x620 Date: Fri, 29 Apr 2016 17:19:52 +0500 Subject: [PATCH 120/148] [DOC] change Usage description in index.rst --- mail_to/doc/index.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mail_to/doc/index.rst b/mail_to/doc/index.rst index b661c52..b58ea5a 100644 --- a/mail_to/doc/index.rst +++ b/mail_to/doc/index.rst @@ -6,5 +6,6 @@ Usage ===== * Open Discuss menu -* All messages have Recipients info -* For messages created before install module it not will work where the recipients is not set \ No newline at end of file +* Many messages have Recipients info +* For messages created before install module it will not work where the recipients is not set there is not way restore recipients value +* Click Inbox left menu item, click Send mail button, set recipient and send message. This message will show recipient. \ No newline at end of file From a1607e62753acaff02eb59fb952c8c3109e8386c Mon Sep 17 00:00:00 2001 From: x620 Date: Fri, 29 Apr 2016 17:27:17 +0500 Subject: [PATCH 121/148] [DOC] add item about mouseover --- mail_to/doc/index.rst | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mail_to/doc/index.rst b/mail_to/doc/index.rst index b58ea5a..de14c87 100644 --- a/mail_to/doc/index.rst +++ b/mail_to/doc/index.rst @@ -5,7 +5,8 @@ Usage ===== -* Open Discuss menu -* Many messages have Recipients info -* For messages created before install module it will not work where the recipients is not set there is not way restore recipients value -* Click Inbox left menu item, click Send mail button, set recipient and send message. This message will show recipient. \ No newline at end of file +* Open Discuss menu. +* Many messages have Recipients info. +* Click Inbox left menu item, click Send mail button, set recipient and send message. This message will show recipient. +* To see the recipient's need hover the mouse over a message. +* For messages created before install module it will not work where the recipients is not set there is not way restore recipients value. From 3d0b967ffb3bc75debf8b1d90421aafe14413410 Mon Sep 17 00:00:00 2001 From: x620 Date: Sat, 30 Apr 2016 00:42:55 +0500 Subject: [PATCH 122/148] [IMP] opacity more when mouseover [IMP] link black when mouseover [IMP] semicolon between recipients [IMP] more 4 recipients hidden under "more..." and appear when mouseover --- mail_to/static/src/css/mail_to.css | 32 ++++++++++++++++++++++++---- mail_to/static/src/xml/recipient.xml | 18 ++++++++++++---- 2 files changed, 42 insertions(+), 8 deletions(-) diff --git a/mail_to/static/src/css/mail_to.css b/mail_to/static/src/css/mail_to.css index ef453d6..3464d76 100644 --- a/mail_to/static/src/css/mail_to.css +++ b/mail_to/static/src/css/mail_to.css @@ -1,9 +1,33 @@ -.grey { +.recipient_link { color: grey; } -.o_mail_thread .o_thread_message span.recipients_info { - opacity: 0; +.recipient_link:hover { + color: #0d0d0d; } -.o_mail_thread .o_thread_message:hover span.recipients_info { + +.o_mail_thread .o_thread_message span.recipients_info, +.o_mail_thread .o_thread_message i.o_thread_message_star, +.o_mail_thread .o_thread_message i.o_thread_message_reply, +.o_mail_thread .o_thread_message i.o_thread_message_needaction +{ + opacity: 0.5; +} +.o_mail_thread .o_thread_message:hover span.recipients_info, +.o_mail_thread .o_thread_message:hover i.o_thread_message_star, +.o_mail_thread .o_thread_message:hover i.o_thread_message_reply, +.o_mail_thread .o_thread_message:hover i.o_thread_message_needaction +{ opacity: 1; } +.more_4 { + display: none; +} +.more_4_link { + display: block; +} +.o_mail_thread .o_thread_message:hover span.more_4_link { + display: none; +} +.o_mail_thread .o_thread_message:hover span.more_4 { + display: block; +} \ No newline at end of file diff --git a/mail_to/static/src/xml/recipient.xml b/mail_to/static/src/xml/recipient.xml index edead08..f32287e 100644 --- a/mail_to/static/src/xml/recipient.xml +++ b/mail_to/static/src/xml/recipient.xml @@ -4,10 +4,20 @@ To: - - - + + + + ; + + + + ; + + + + and more... + From 75700dd86ddb33eecdce8fbf1a7b3f60b069b0f0 Mon Sep 17 00:00:00 2001 From: ilyasProgrammer Date: Wed, 4 May 2016 12:12:39 +0500 Subject: [PATCH 123/148] [IMP] remove comments --- .../static/src/js/res_partner_mails_count_tour.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index fa65515..2f061fa 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -24,12 +24,8 @@ title: _t("Check messages or send new one"), placement: 'left', content: _t("Click 'Send a mesage' to continue the Tour"), - // element: '.oe_mail_wall .oe_msg.oe_msg_composer_compact', element: '.oe_mail_wall .oe_msg.oe_msg_composer_compact>div>.oe_compose_post', }, - // { - // element: '.oe_mail_wall .oe_msg.oe_msg_composer_compact>div>.oe_compose_post', - // }, { title: _t("Done"), placement: 'top', From a8ea3798c568aaa911c9b40d1fb8488f757ad6c3 Mon Sep 17 00:00:00 2001 From: ilyasProgrammer Date: Wed, 4 May 2016 13:32:26 +0500 Subject: [PATCH 124/148] [FIX] sequence --- res_partner_mails_count/templates.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res_partner_mails_count/templates.xml b/res_partner_mails_count/templates.xml index 92f827f..3b48bcf 100644 --- a/res_partner_mails_count/templates.xml +++ b/res_partner_mails_count/templates.xml @@ -40,7 +40,7 @@ open - 200 + 500 automatic From 5c3ebca3c600c23f81315f801427fa8c2f157cb0 Mon Sep 17 00:00:00 2001 From: x620 Date: Wed, 4 May 2016 15:26:15 +0500 Subject: [PATCH 125/148] [FIX] default icons opacity - 0.4, mouseover on message - 0.7, mouseover on icon - 1 [FIX] more recipients moved to tooltip --- mail_to/static/src/css/mail_to.css | 26 ++++++++------------------ mail_to/static/src/js/mail_to.js | 15 +++++++++++++++ mail_to/static/src/xml/recipient.xml | 22 +++++++++------------- 3 files changed, 32 insertions(+), 31 deletions(-) diff --git a/mail_to/static/src/css/mail_to.css b/mail_to/static/src/css/mail_to.css index 3464d76..bdbae0d 100644 --- a/mail_to/static/src/css/mail_to.css +++ b/mail_to/static/src/css/mail_to.css @@ -8,26 +8,16 @@ .o_mail_thread .o_thread_message span.recipients_info, .o_mail_thread .o_thread_message i.o_thread_message_star, .o_mail_thread .o_thread_message i.o_thread_message_reply, -.o_mail_thread .o_thread_message i.o_thread_message_needaction -{ - opacity: 0.5; +.o_mail_thread .o_thread_message i.o_thread_message_needaction { + opacity: 0.4; } -.o_mail_thread .o_thread_message:hover span.recipients_info, + .o_mail_thread .o_thread_message:hover i.o_thread_message_star, .o_mail_thread .o_thread_message:hover i.o_thread_message_reply, -.o_mail_thread .o_thread_message:hover i.o_thread_message_needaction -{ - opacity: 1; -} -.more_4 { - display: none; +.o_mail_thread .o_thread_message:hover i.o_thread_message_needaction { + opacity: 0.7; } -.more_4_link { - display: block; -} -.o_mail_thread .o_thread_message:hover span.more_4_link { - display: none; + +.o_mail_thread .o_thread_message:hover span.recipients_info { + opacity: 1; } -.o_mail_thread .o_thread_message:hover span.more_4 { - display: block; -} \ No newline at end of file diff --git a/mail_to/static/src/js/mail_to.js b/mail_to/static/src/js/mail_to.js index 48f3c6e..dfe232e 100644 --- a/mail_to/static/src/js/mail_to.js +++ b/mail_to/static/src/js/mail_to.js @@ -8,6 +8,21 @@ odoo.define('mail_to.MailTo', function (require) { var msg = this._super(data); msg.partner_ids = data.partner_ids; // msg.needaction_partner_ids = data.needaction_partner_ids; + + var more_recipients = ''; + // value which define more recipients + msg.more_recipients_value = 4; + for (var i = 0; i < msg.partner_ids.length; i++){ + if (i >= msg.more_recipients_value){ + // append names + more_recipients += msg.partner_ids[i][1]; + // separate them with semicolon + if (i < msg.partner_ids.length - 1){ + more_recipients += '; '; + } + } + } + msg.more_recipients = more_recipients; return msg; } }); diff --git a/mail_to/static/src/xml/recipient.xml b/mail_to/static/src/xml/recipient.xml index f32287e..e445b47 100644 --- a/mail_to/static/src/xml/recipient.xml +++ b/mail_to/static/src/xml/recipient.xml @@ -5,20 +5,16 @@ To: - - + + ; - - - - ; - - - - and more... - - + + + + + + and more + From 3bafef5827b881426ef2a6a049557fbe87c067d6 Mon Sep 17 00:00:00 2001 From: ilyasProgrammer Date: Wed, 4 May 2016 15:58:43 +0500 Subject: [PATCH 126/148] [FIX] steps --- .../static/src/js/res_partner_mails_count_tour.js | 1 + 1 file changed, 1 insertion(+) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index d360cb4..63ae3b1 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -25,6 +25,7 @@ odoo.define('res_partner_mails_count.res_partner_mails_count_tour', function (re title: _t("Done"), placement: 'top', waitNot: '.mails_to:visible', + waitFor: '.o_mail_thread', element: '.o_mail_thread', content: _t("Message are found.
Enjoy your day!

IT-Projects LLC team "), popover: {next: _t("Close Tutorial")}, From 4f3cb5ce92414f1e10141809db7ab76f6562cd3d Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 5 May 2016 10:48:21 +0500 Subject: [PATCH 127/148] [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 From 17360add4b024d296ef228ea6187d71ec3de9e3e Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 5 May 2016 11:29:38 +0500 Subject: [PATCH 128/148] [FIX] change depends from mail_archives to mail_all --- res_partner_mails_count/__openerp__.py | 4 ++-- .../static/src/js/res_partner_mails_count_tour.js | 2 +- res_partner_mails_count/views/res_partner_mails_count.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/res_partner_mails_count/__openerp__.py b/res_partner_mails_count/__openerp__.py index 5d39403..e2ca849 100644 --- a/res_partner_mails_count/__openerp__.py +++ b/res_partner_mails_count/__openerp__.py @@ -13,8 +13,8 @@ "currency": "EUR", "depends": [ - 'mail_archives', - 'web_tour_extra' , + 'mail_all', + 'web_tour_extra', ], "external_dependencies": {"python": [], "bin": []}, "data": [ diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index 1a12578..3f93ca1 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -29,7 +29,7 @@ odoo.define('res_partner_mails_count.res_partner_mails_count_tour', function (re }, { wait: '5000', - waitFor: '.o_channel_name.mail_archives:visible', + waitFor: '.o_channel_name.mail_all:visible', title: _t("That's it"), content: _t("Enjoy your day!

IT-Projects LLC team "), popover: { next: _t("Close Tutorial") }, diff --git a/res_partner_mails_count/views/res_partner_mails_count.xml b/res_partner_mails_count/views/res_partner_mails_count.xml index 7b328d8..7ef9960 100644 --- a/res_partner_mails_count/views/res_partner_mails_count.xml +++ b/res_partner_mails_count/views/res_partner_mails_count.xml @@ -6,7 +6,7 @@ mail.chat.instant_messaging mail.message { - 'active_id': 'channel_archive' + 'active_id': 'channel_all' }

From 41ab50f575b45da8d182bddfa3277270902aa3a3 Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 5 May 2016 12:01:19 +0500 Subject: [PATCH 129/148] [DOC] change description in index.rst --- mail_to/doc/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mail_to/doc/index.rst b/mail_to/doc/index.rst index de14c87..db10bef 100644 --- a/mail_to/doc/index.rst +++ b/mail_to/doc/index.rst @@ -9,4 +9,4 @@ Usage * Many messages have Recipients info. * Click Inbox left menu item, click Send mail button, set recipient and send message. This message will show recipient. * To see the recipient's need hover the mouse over a message. -* For messages created before install module it will not work where the recipients is not set there is not way restore recipients value. +* For messages created before install module it will not work where the recipients are not set. There is no way restore recipients value. From ca24ddcfb73492cd158ed5793023a8d18a1800b0 Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 5 May 2016 12:03:06 +0500 Subject: [PATCH 130/148] [DOC] add "to" in description in index.rst --- mail_to/doc/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mail_to/doc/index.rst b/mail_to/doc/index.rst index db10bef..31597f2 100644 --- a/mail_to/doc/index.rst +++ b/mail_to/doc/index.rst @@ -9,4 +9,4 @@ Usage * Many messages have Recipients info. * Click Inbox left menu item, click Send mail button, set recipient and send message. This message will show recipient. * To see the recipient's need hover the mouse over a message. -* For messages created before install module it will not work where the recipients are not set. There is no way restore recipients value. +* For messages created before install module it will not work where the recipients are not set. There is no way to restore recipients value. From 63616582e9e229bfd4a6ebffa1a80b145ecec255 Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 5 May 2016 12:53:25 +0500 Subject: [PATCH 131/148] [IMP] add "Send message" button in the Sent menu --- mail_sent/static/src/js/sent.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mail_sent/static/src/js/sent.js b/mail_sent/static/src/js/sent.js index df2bc11..681ae22 100644 --- a/mail_sent/static/src/js/sent.js +++ b/mail_sent/static/src/js/sent.js @@ -16,6 +16,20 @@ var web_client = require('web.web_client'); var _lt = core._lt; //------------------------------------------------------------------------------- +var ChatAction = core.action_registry.get('mail.chat.instant_messaging'); +ChatAction.include({ + set_channel: function(channel){ + var result = this._super.apply(this, arguments); + var self = this; + return $.when(result).done(function() { + // Add "Send message" button in the Sent menu + self.$buttons + .find('.o_mail_chat_button_new_message') + .toggle(channel.id === "channel_inbox" || channel.id === "channel_sent"); + }); + } +}); + // Inherit class and override methods base_obj.MailTools.include({ get_properties: function(msg){ From bcade8cd93e9fc09f5075b4124bcf336dad277d8 Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 5 May 2016 13:45:12 +0500 Subject: [PATCH 132/148] [FIX] show subject in channel_sent and channel_archive --- mail_archives/static/src/js/archives.js | 9 +++++++++ mail_sent/static/src/js/sent.js | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/mail_archives/static/src/js/archives.js b/mail_archives/static/src/js/archives.js index 912523a..fab77c9 100644 --- a/mail_archives/static/src/js/archives.js +++ b/mail_archives/static/src/js/archives.js @@ -16,6 +16,15 @@ var web_client = require('web.web_client'); var _lt = core._lt; //------------------------------------------------------------------------------- +var ChatAction = core.action_registry.get('mail.chat.instant_messaging'); +ChatAction.include({ + get_thread_rendering_options: function (messages) { + var options = this._super.apply(this, arguments); + options.display_subject = options.display_subject || this.channel.id === "channel_archive"; + return options; + } +}); + // Inherit class and override methods base_obj.MailTools.include({ get_properties: function(msg){ diff --git a/mail_sent/static/src/js/sent.js b/mail_sent/static/src/js/sent.js index 681ae22..40be2c3 100644 --- a/mail_sent/static/src/js/sent.js +++ b/mail_sent/static/src/js/sent.js @@ -27,6 +27,11 @@ ChatAction.include({ .find('.o_mail_chat_button_new_message') .toggle(channel.id === "channel_inbox" || channel.id === "channel_sent"); }); + }, + get_thread_rendering_options: function (messages) { + var options = this._super.apply(this, arguments); + options.display_subject = options.display_subject || this.channel.id === "channel_sent"; + return options; } }); From f17c9d934dadf11f1d2e233467edfd689ef49a5f Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 5 May 2016 13:46:46 +0500 Subject: [PATCH 133/148] [FIX] show subject in channel_all --- mail_all/static/src/js/mail_all.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mail_all/static/src/js/mail_all.js b/mail_all/static/src/js/mail_all.js index 315c031..ba1cb00 100644 --- a/mail_all/static/src/js/mail_all.js +++ b/mail_all/static/src/js/mail_all.js @@ -16,6 +16,15 @@ var web_client = require('web.web_client'); var _lt = core._lt; //------------------------------------------------------------------------------- +var ChatAction = core.action_registry.get('mail.chat.instant_messaging'); +ChatAction.include({ + get_thread_rendering_options: function (messages) { + var options = this._super.apply(this, arguments); + options.display_subject = options.display_subject || this.channel.id === "channel_all"; + return options; + } +}); + // Inherit class and override methods base_obj.MailTools.include({ get_properties: function(msg){ From 2326b5df6d86956437300ef30efad42e8f5e1670 Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 5 May 2016 15:31:46 +0500 Subject: [PATCH 134/148] [FIX] remove unused depends [DOC] change module description --- mail_archives/README.rst | 4 ++-- mail_archives/__openerp__.py | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/mail_archives/README.rst b/mail_archives/README.rst index 56bd506..0395c12 100644 --- a/mail_archives/README.rst +++ b/mail_archives/README.rst @@ -1,11 +1,11 @@ Mail Archives ============= -Adds Archive menu, which shows all messages +Adds Archive menu, which shows sent/received messages Usage ----- -Click Discuss/Archive menu -- all messages are displayed +Click Discuss/Archive menu -- sent/received messages are displayed Further information ------------------- diff --git a/mail_archives/__openerp__.py b/mail_archives/__openerp__.py index 57c4508..5995e02 100644 --- a/mail_archives/__openerp__.py +++ b/mail_archives/__openerp__.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- { "name": "Mail archives", - "summary": """Adds menu to find old messages""", + "summary": """Adds menu to find sent/received messages""", "category": "Discuss", "images": [], "version": "1.0.0", @@ -13,8 +13,6 @@ 'currency': 'EUR', "depends": [ - "base", - "mail", "mail_base" ], From a7eb4ff6bd7f6a54cebfa1bbd685ad35447d3dfe Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 5 May 2016 16:26:13 +0500 Subject: [PATCH 135/148] [DOC] change descriptions --- mail_all/README.rst | 6 +----- mail_all/__openerp__.py | 2 +- mail_all/doc/index.rst | 2 +- mail_all/static/description/index.html | 4 ++-- 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/mail_all/README.rst b/mail_all/README.rst index 0ae17d2..17ded40 100644 --- a/mail_all/README.rst +++ b/mail_all/README.rst @@ -2,11 +2,7 @@ Show all messages =================== -Adds All menu, which shows all messages - -Usage ------ -Click Discuss/All menu -- all messages are displayed +Adds ``Discuss / All`` menu, that shows all messages accesable by current user Further information ------------------- diff --git a/mail_all/__openerp__.py b/mail_all/__openerp__.py index c53aa2e..6737443 100644 --- a/mail_all/__openerp__.py +++ b/mail_all/__openerp__.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- { "name": "Show all messages", - "summary": """Adds menu to find all messages""", + "summary": """Checkout all messages where you have access""", "category": "Discuss", "images": [], "version": "1.0.0", diff --git a/mail_all/doc/index.rst b/mail_all/doc/index.rst index c8f7702..30b2245 100644 --- a/mail_all/doc/index.rst +++ b/mail_all/doc/index.rst @@ -5,5 +5,5 @@ Usage ===== -* Open menu Discuss menu and click All menu on the sidebar +* Open menu ``Discuss / All messages`` * You see all messages diff --git a/mail_all/static/description/index.html b/mail_all/static/description/index.html index 840187b..996fcc7 100644 --- a/mail_all/static/description/index.html +++ b/mail_all/static/description/index.html @@ -1,8 +1,8 @@

-

Look up all mails

-

Browse all mails like

+

Show all messages

+

Checkout all messages where you have access

From e8310c841b8fa3c23333e9e5c3c830d0b7292dd0 Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 5 May 2016 17:28:19 +0500 Subject: [PATCH 136/148] [FIX] change way for show "Send message" button --- mail_base/static/src/js/base.js | 4 ++++ mail_sent/static/src/js/sent.js | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/mail_base/static/src/js/base.js b/mail_base/static/src/js/base.js index 7e7549f..b578d14 100644 --- a/mail_base/static/src/js/base.js +++ b/mail_base/static/src/js/base.js @@ -63,6 +63,10 @@ var channel_seen = _.throttle(function (channel) { var ChatAction = core.action_registry.get('mail.chat.instant_messaging'); ChatAction.include({ + init: function(parent, action, options) { + this._super.apply(this, arguments); + this.show_send_message_button = ['channel_inbox']; + }, start: function() { var result = this._super.apply(this, arguments); diff --git a/mail_sent/static/src/js/sent.js b/mail_sent/static/src/js/sent.js index 40be2c3..dd311fa 100644 --- a/mail_sent/static/src/js/sent.js +++ b/mail_sent/static/src/js/sent.js @@ -20,12 +20,13 @@ var ChatAction = core.action_registry.get('mail.chat.instant_messaging'); ChatAction.include({ set_channel: function(channel){ var result = this._super.apply(this, arguments); + // Add "Send message" button in the Sent menu + this.show_send_message_button.push('channel_sent'); var self = this; return $.when(result).done(function() { - // Add "Send message" button in the Sent menu self.$buttons .find('.o_mail_chat_button_new_message') - .toggle(channel.id === "channel_inbox" || channel.id === "channel_sent"); + .toggle(self.show_send_message_button.includes(channel.id)); }); }, get_thread_rendering_options: function (messages) { From 1dc49ee7fd912f8fd79327fb80db9d2a78bbf81a Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 5 May 2016 18:00:03 +0500 Subject: [PATCH 137/148] [FIX] change function from .includes() to .indexOf() --- mail_sent/static/src/js/sent.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mail_sent/static/src/js/sent.js b/mail_sent/static/src/js/sent.js index dd311fa..a31d6fe 100644 --- a/mail_sent/static/src/js/sent.js +++ b/mail_sent/static/src/js/sent.js @@ -26,7 +26,7 @@ ChatAction.include({ return $.when(result).done(function() { self.$buttons .find('.o_mail_chat_button_new_message') - .toggle(self.show_send_message_button.includes(channel.id)); + .toggle(self.show_send_message_button.indexOf(channel.id) != -1); }); }, get_thread_rendering_options: function (messages) { From 971ba44447898f1ba31a662025776ef1fbda3c99 Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 5 May 2016 18:22:59 +0500 Subject: [PATCH 138/148] [FIX] move function toggle() from sent.js to base.js [FIX] change summary in __openerp__.py --- mail_archives/__openerp__.py | 2 +- mail_base/static/src/js/base.js | 9 +++++++++ mail_sent/static/src/js/sent.js | 10 ++-------- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/mail_archives/__openerp__.py b/mail_archives/__openerp__.py index 5995e02..30d9a94 100644 --- a/mail_archives/__openerp__.py +++ b/mail_archives/__openerp__.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- { "name": "Mail archives", - "summary": """Adds menu to find sent/received messages""", + "summary": """Adds menu to find old messages""", "category": "Discuss", "images": [], "version": "1.0.0", diff --git a/mail_base/static/src/js/base.js b/mail_base/static/src/js/base.js index b578d14..12f1111 100644 --- a/mail_base/static/src/js/base.js +++ b/mail_base/static/src/js/base.js @@ -97,6 +97,15 @@ ChatAction.include({ } }); return result; + }, + set_channel: function(channel){ + var result = this._super.apply(this, arguments); + var self = this; + return $.when(result).done(function() { + self.$buttons + .find('.o_mail_chat_button_new_message') + .toggle(self.show_send_message_button.indexOf(channel.id) != -1); + }); } }); diff --git a/mail_sent/static/src/js/sent.js b/mail_sent/static/src/js/sent.js index a31d6fe..c84de74 100644 --- a/mail_sent/static/src/js/sent.js +++ b/mail_sent/static/src/js/sent.js @@ -19,15 +19,9 @@ var _lt = core._lt; var ChatAction = core.action_registry.get('mail.chat.instant_messaging'); ChatAction.include({ set_channel: function(channel){ - var result = this._super.apply(this, arguments); - // Add "Send message" button in the Sent menu + this._super.apply(this, arguments); + // Add channel Sent for show "Send message" button this.show_send_message_button.push('channel_sent'); - var self = this; - return $.when(result).done(function() { - self.$buttons - .find('.o_mail_chat_button_new_message') - .toggle(self.show_send_message_button.indexOf(channel.id) != -1); - }); }, get_thread_rendering_options: function (messages) { var options = this._super.apply(this, arguments); From dc9a9c973d936f6a823efc110622ee8eccfbf810 Mon Sep 17 00:00:00 2001 From: x620 Date: Thu, 5 May 2016 18:44:01 +0500 Subject: [PATCH 139/148] [FIX] move function push() from set_channel() to init() to push() is called only once --- mail_sent/static/src/js/sent.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mail_sent/static/src/js/sent.js b/mail_sent/static/src/js/sent.js index c84de74..b5490ea 100644 --- a/mail_sent/static/src/js/sent.js +++ b/mail_sent/static/src/js/sent.js @@ -18,7 +18,7 @@ var _lt = core._lt; var ChatAction = core.action_registry.get('mail.chat.instant_messaging'); ChatAction.include({ - set_channel: function(channel){ + init: function(parent, action, options) { this._super.apply(this, arguments); // Add channel Sent for show "Send message" button this.show_send_message_button.push('channel_sent'); From c67b8c22f3a20627003cde99b04c168569c0dc3b Mon Sep 17 00:00:00 2001 From: x620 Date: Fri, 6 May 2016 13:14:27 +0500 Subject: [PATCH 140/148] [IMP] change mail_archive module for show only sent/recipient messages --- mail_archives/__init__.py | 2 -- mail_archives/__openerp__.py | 2 +- mail_archives/models/__init__.py | 1 - mail_archives/static/src/js/archives.js | 21 +++++++++++++++++++-- 4 files changed, 20 insertions(+), 6 deletions(-) delete mode 100644 mail_archives/models/__init__.py diff --git a/mail_archives/__init__.py b/mail_archives/__init__.py index 5305644..40a96af 100644 --- a/mail_archives/__init__.py +++ b/mail_archives/__init__.py @@ -1,3 +1 @@ # -*- coding: utf-8 -*- - -from . import models \ No newline at end of file diff --git a/mail_archives/__openerp__.py b/mail_archives/__openerp__.py index 30d9a94..737e949 100644 --- a/mail_archives/__openerp__.py +++ b/mail_archives/__openerp__.py @@ -13,7 +13,7 @@ 'currency': 'EUR', "depends": [ - "mail_base" + "mail_sent", ], "data": [ diff --git a/mail_archives/models/__init__.py b/mail_archives/models/__init__.py deleted file mode 100644 index 40a96af..0000000 --- a/mail_archives/models/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- diff --git a/mail_archives/static/src/js/archives.js b/mail_archives/static/src/js/archives.js index fab77c9..436e55e 100644 --- a/mail_archives/static/src/js/archives.js +++ b/mail_archives/static/src/js/archives.js @@ -35,7 +35,20 @@ base_obj.MailTools.include({ set_channel_flags: function(data, msg){ this._super.apply(this, arguments); - msg.is_archive = true; + // Get recipients ids + var recipients_ids = []; + for (var i = 0; i < data.partner_ids.length; i++){ + recipients_ids.push(data.partner_ids[i][0]); + } + + // If author or recipient + if ( + (data.sent && data.author_id[0] == session.partner_id) + || (recipients_ids.indexOf(session.partner_id) != -1) + ) { + msg.is_archive = true; + } + return msg; }, @@ -45,7 +58,11 @@ base_obj.MailTools.include({ }, get_domain: function(channel){ - return (channel.id === "channel_archive") ? [] : this._super.apply(this, arguments); + return (channel.id === "channel_archive") ? [ + '|', ['partner_ids', 'in', [openerp.session.partner_id]], + '&', ['sent', '=', true], + ['author_id.user_ids', 'in', [openerp.session.uid]] + ] : this._super.apply(this, arguments); } }); From 4004e007c1c8236b8b96f67a4298a3a55b9e57c8 Mon Sep 17 00:00:00 2001 From: x620 Date: Fri, 6 May 2016 13:54:08 +0500 Subject: [PATCH 141/148] [FIX] remove depends on the mail_sent --- mail_archives/__openerp__.py | 2 +- mail_archives/static/src/js/archives.js | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/mail_archives/__openerp__.py b/mail_archives/__openerp__.py index 737e949..761bb6b 100644 --- a/mail_archives/__openerp__.py +++ b/mail_archives/__openerp__.py @@ -13,7 +13,7 @@ 'currency': 'EUR', "depends": [ - "mail_sent", + "mail_base", ], "data": [ diff --git a/mail_archives/static/src/js/archives.js b/mail_archives/static/src/js/archives.js index 436e55e..3640a2c 100644 --- a/mail_archives/static/src/js/archives.js +++ b/mail_archives/static/src/js/archives.js @@ -42,10 +42,7 @@ base_obj.MailTools.include({ } // If author or recipient - if ( - (data.sent && data.author_id[0] == session.partner_id) - || (recipients_ids.indexOf(session.partner_id) != -1) - ) { + if (data.author_id[0] == session.partner_id || recipients_ids.indexOf(session.partner_id) != -1) { msg.is_archive = true; } @@ -60,7 +57,6 @@ base_obj.MailTools.include({ get_domain: function(channel){ return (channel.id === "channel_archive") ? [ '|', ['partner_ids', 'in', [openerp.session.partner_id]], - '&', ['sent', '=', true], ['author_id.user_ids', 'in', [openerp.session.uid]] ] : this._super.apply(this, arguments); } From 723b3cd6e6f68796873c4285a35ee0ec527316c2 Mon Sep 17 00:00:00 2001 From: x620 Date: Fri, 6 May 2016 17:33:45 +0500 Subject: [PATCH 142/148] [REF] Create channels_display_subject array which will contain channels name for subject display. get_thread_rendering_options() method moved in base.js. In new modules append channel name to channels_display_subject variable for enable subject display. --- mail_archives/static/src/js/archives.js | 9 +++++---- mail_base/static/src/js/base.js | 6 ++++++ mail_sent/static/src/js/sent.js | 10 ++++------ 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/mail_archives/static/src/js/archives.js b/mail_archives/static/src/js/archives.js index 3640a2c..a494961 100644 --- a/mail_archives/static/src/js/archives.js +++ b/mail_archives/static/src/js/archives.js @@ -18,10 +18,11 @@ var _lt = core._lt; var ChatAction = core.action_registry.get('mail.chat.instant_messaging'); ChatAction.include({ - get_thread_rendering_options: function (messages) { - var options = this._super.apply(this, arguments); - options.display_subject = options.display_subject || this.channel.id === "channel_archive"; - return options; + init: function(parent, action, options) { + this._super.apply(this, arguments); + var channel_name = 'channel_archive'; + // Add channel Archive for enable "display_subject" option + this.channels_display_subject.push(channel_name); } }); diff --git a/mail_base/static/src/js/base.js b/mail_base/static/src/js/base.js index 12f1111..653a810 100644 --- a/mail_base/static/src/js/base.js +++ b/mail_base/static/src/js/base.js @@ -66,6 +66,7 @@ ChatAction.include({ init: function(parent, action, options) { this._super.apply(this, arguments); this.show_send_message_button = ['channel_inbox']; + this.channels_display_subject = []; }, start: function() { var result = this._super.apply(this, arguments); @@ -106,6 +107,11 @@ ChatAction.include({ .find('.o_mail_chat_button_new_message') .toggle(self.show_send_message_button.indexOf(channel.id) != -1); }); + }, + get_thread_rendering_options: function (messages) { + var options = this._super.apply(this, arguments); + options.display_subject = options.display_subject || this.channels_display_subject.indexOf(this.channel.id) != -1; + return options; } }); diff --git a/mail_sent/static/src/js/sent.js b/mail_sent/static/src/js/sent.js index b5490ea..7eadfa3 100644 --- a/mail_sent/static/src/js/sent.js +++ b/mail_sent/static/src/js/sent.js @@ -20,13 +20,11 @@ var ChatAction = core.action_registry.get('mail.chat.instant_messaging'); ChatAction.include({ init: function(parent, action, options) { this._super.apply(this, arguments); + var channel_name = 'channel_sent'; // Add channel Sent for show "Send message" button - this.show_send_message_button.push('channel_sent'); - }, - get_thread_rendering_options: function (messages) { - var options = this._super.apply(this, arguments); - options.display_subject = options.display_subject || this.channel.id === "channel_sent"; - return options; + this.show_send_message_button.push(channel_name); + // Add channel Sent for enable "display_subject" option + this.channels_display_subject.push(channel_name); } }); From 3218b251cc3ce3437bebb89a86db83663bfa96e9 Mon Sep 17 00:00:00 2001 From: x620 Date: Fri, 6 May 2016 17:58:17 +0500 Subject: [PATCH 143/148] [REF] rename show_send_message_button variable to channels_show_send_button --- mail_base/static/src/js/base.js | 4 ++-- mail_sent/static/src/js/sent.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mail_base/static/src/js/base.js b/mail_base/static/src/js/base.js index 653a810..332fe34 100644 --- a/mail_base/static/src/js/base.js +++ b/mail_base/static/src/js/base.js @@ -65,7 +65,7 @@ var ChatAction = core.action_registry.get('mail.chat.instant_messaging'); ChatAction.include({ init: function(parent, action, options) { this._super.apply(this, arguments); - this.show_send_message_button = ['channel_inbox']; + this.channels_show_send_button = ['channel_inbox']; this.channels_display_subject = []; }, start: function() { @@ -105,7 +105,7 @@ ChatAction.include({ return $.when(result).done(function() { self.$buttons .find('.o_mail_chat_button_new_message') - .toggle(self.show_send_message_button.indexOf(channel.id) != -1); + .toggle(self.channels_show_send_button.indexOf(channel.id) != -1); }); }, get_thread_rendering_options: function (messages) { diff --git a/mail_sent/static/src/js/sent.js b/mail_sent/static/src/js/sent.js index 7eadfa3..1a3c298 100644 --- a/mail_sent/static/src/js/sent.js +++ b/mail_sent/static/src/js/sent.js @@ -22,7 +22,7 @@ ChatAction.include({ this._super.apply(this, arguments); var channel_name = 'channel_sent'; // Add channel Sent for show "Send message" button - this.show_send_message_button.push(channel_name); + this.channels_show_send_button.push(channel_name); // Add channel Sent for enable "display_subject" option this.channels_display_subject.push(channel_name); } From aaa794d1c417493c66d471d65d82169b4c0146d2 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Mon, 9 May 2016 15:58:06 +0500 Subject: [PATCH 144/148] [DOC] update tour messages --- .../static/src/js/res_partner_mails_count_tour.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index 2f061fa..7c34538 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -27,11 +27,11 @@ element: '.oe_mail_wall .oe_msg.oe_msg_composer_compact>div>.oe_compose_post', }, { - title: _t("Done"), + title: _t("That's it"), placement: 'top', waitNot: '.mails_to:visible', element: 'div.oe_msg_content>textarea.field_text', - content: _t("Message are found.
Enjoy your day!

IT-Projects LLC team "), + content: _t("Enjoy your day!

IT-Projects LLC team "), popover: {next: _t("Close Tutorial")}, }, ] From 6e5f92c7b31c15265d911eef340f4aec971b215d Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Mon, 9 May 2016 16:06:43 +0500 Subject: [PATCH 145/148] [DOC] remove last step --- .../static/src/js/res_partner_mails_count_tour.js | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index 7c34538..2749fc7 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -23,16 +23,10 @@ waitNot: '.mails_to:visible', title: _t("Check messages or send new one"), placement: 'left', - content: _t("Click 'Send a mesage' to continue the Tour"), + content: _t("Thank you!

IT-Projects LLC team "), element: '.oe_mail_wall .oe_msg.oe_msg_composer_compact>div>.oe_compose_post', - }, - { - title: _t("That's it"), - placement: 'top', - waitNot: '.mails_to:visible', - element: 'div.oe_msg_content>textarea.field_text', - content: _t("Enjoy your day!

IT-Projects LLC team "), popover: {next: _t("Close Tutorial")}, + }, ] }); From 420d28e2dfa208b257665dacfa32b77c56110376 Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Mon, 9 May 2016 16:19:39 +0500 Subject: [PATCH 146/148] [DOC] delete popover from last steps seems like it incompatible with element field --- .../static/src/js/res_partner_mails_count_tour.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js index 2749fc7..1ed1125 100644 --- a/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js +++ b/res_partner_mails_count/static/src/js/res_partner_mails_count_tour.js @@ -25,8 +25,6 @@ placement: 'left', content: _t("Thank you!

IT-Projects LLC team "), element: '.oe_mail_wall .oe_msg.oe_msg_composer_compact>div>.oe_compose_post', - popover: {next: _t("Close Tutorial")}, - }, ] }); From 7bf9e4ab62f366c398dbf9ca9e9982008c6d213c Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Mon, 9 May 2016 16:23:47 +0500 Subject: [PATCH 147/148] [DOC] mail_sent: new price --- mail_sent/__openerp__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mail_sent/__openerp__.py b/mail_sent/__openerp__.py index 90e1701..f92d3ed 100644 --- a/mail_sent/__openerp__.py +++ b/mail_sent/__openerp__.py @@ -3,9 +3,9 @@ 'version' : '1.0.2', 'author' : 'IT-Projects LLC, Ivan Yelizariev', 'license': 'GPL-3', - 'category' : 'Social Network', + 'category' : 'Discuss', 'website' : 'https://twitter.com/yelizariev', - 'price': 9.00, + 'price': 40.00, 'currency': 'EUR', 'depends' : ['mail'], 'data':[ From 40a6b1f2c0bb4b1a475e01bc73195461c963c98e Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Mon, 9 May 2016 16:27:27 +0500 Subject: [PATCH 148/148] [DOC] price + tiny updates --- mail_archives/static/description/index.html | 2 +- mail_base/__openerp__.py | 2 ++ mail_to/__openerp__.py | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/mail_archives/static/description/index.html b/mail_archives/static/description/index.html index 77abc4e..50900fa 100644 --- a/mail_archives/static/description/index.html +++ b/mail_archives/static/description/index.html @@ -21,7 +21,7 @@

-This menu shows all messages. +This menu shows archive messages, i.e. ones you sent or received.

diff --git a/mail_base/__openerp__.py b/mail_base/__openerp__.py index 3ddb6d3..b9c9b6d 100644 --- a/mail_base/__openerp__.py +++ b/mail_base/__openerp__.py @@ -9,6 +9,8 @@ "author": "IT-Projects LLC, Pavel Romanchenko", "website": "https://it-projects.info", "license": "LGPL-3", + 'price': 9.00, + 'currency': 'EUR', "depends": [ "base", diff --git a/mail_to/__openerp__.py b/mail_to/__openerp__.py index 664adc5..37f15d0 100644 --- a/mail_to/__openerp__.py +++ b/mail_to/__openerp__.py @@ -9,8 +9,8 @@ "author": "IT-Projects LLC, Pavel Romanchenko", "website": "https://it-projects.info", "license": "LGPL-3", - #"price": 9.00, - #"currency": "EUR", + "price": 40.00, + "currency": "EUR", "depends": [ 'mail_base',