From 272c0ddf3481305ddba9d9c51d8911ae10dd001a Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Wed, 8 Jul 2015 11:32:21 +0200 Subject: [PATCH 01/16] [ADD] mail_restrict_follower_selection --- mail_restrict_follower_selection/README.rst | 57 ++++++++++++++++++ mail_restrict_follower_selection/__init__.py | 20 ++++++ .../__openerp__.py | 41 +++++++++++++ .../data/ir_actions.xml | 15 +++++ .../data/ir_config_parameter.xml | 9 +++ .../models/__init__.py | 20 ++++++ .../models/mail_wizard_invite.py | 48 +++++++++++++++ .../static/description/icon.png | Bin 0 -> 9455 bytes .../tests/__init__.py | 21 +++++++ .../test_mail_restrict_follower_selection.py | 31 ++++++++++ 10 files changed, 262 insertions(+) create mode 100644 mail_restrict_follower_selection/README.rst create mode 100644 mail_restrict_follower_selection/__init__.py create mode 100644 mail_restrict_follower_selection/__openerp__.py create mode 100644 mail_restrict_follower_selection/data/ir_actions.xml create mode 100644 mail_restrict_follower_selection/data/ir_config_parameter.xml create mode 100644 mail_restrict_follower_selection/models/__init__.py create mode 100644 mail_restrict_follower_selection/models/mail_wizard_invite.py create mode 100644 mail_restrict_follower_selection/static/description/icon.png create mode 100644 mail_restrict_follower_selection/tests/__init__.py create mode 100644 mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py diff --git a/mail_restrict_follower_selection/README.rst b/mail_restrict_follower_selection/README.rst new file mode 100644 index 000000000..5a633d532 --- /dev/null +++ b/mail_restrict_follower_selection/README.rst @@ -0,0 +1,57 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :alt: License: AGPL-3 +Restrict follower selection +=========================== + +This module was written to allow you to restrict the selection of possible followers. For example, if you use the social ERP functions only internally, it makes sense to filter possible followers for being employees. Otherwise, you'll get a quite crowded list of partners to choose from. + +Configuration +============= + +To configure this module, you need to go to `System parameters` and adjust `mail_restrict_follower_selection.domain` as you see fit. This restricts followers globally, if you want to restrict only the followers for a certain record type (or have different restrictions for different record types), create a parameter `mail_restrict_follower_selection.domain.$your_model`. + +As an example, you could use `[('customer', '=', True)]` to allow only customers to be added as follower. + +Note: This module won't change existing followers! + +Usage +===== + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/205/8.0 + +For further information, please visit: + +* https://www.odoo.com/forum/help-1 + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed feedback +`here `_. + +Credits +======= + +Contributors +------------ + +* Holger Brunn + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit http://odoo-community.org. diff --git a/mail_restrict_follower_selection/__init__.py b/mail_restrict_follower_selection/__init__.py new file mode 100644 index 000000000..cdb7d7368 --- /dev/null +++ b/mail_restrict_follower_selection/__init__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# This module copyright (C) 2015 Therp BV . +# +# 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 models diff --git a/mail_restrict_follower_selection/__openerp__.py b/mail_restrict_follower_selection/__openerp__.py new file mode 100644 index 000000000..9d242619d --- /dev/null +++ b/mail_restrict_follower_selection/__openerp__.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2015 Therp BV . +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +{ + "name": "Restrict follower selection", + "version": "8.0.1.0.0", + "author": "Therp BV,Odoo Community Association (OCA)", + "license": "AGPL-3", + "category": "Social Network", + "summary": "Define a domain from which followers can be selected", + "depends": [ + 'mail', + ], + "data": [ + "data/ir_config_parameter.xml", + "data/ir_actions.xml", + ], + "auto_install": False, + "installable": True, + "application": False, + "external_dependencies": { + 'python': [], + }, +} diff --git a/mail_restrict_follower_selection/data/ir_actions.xml b/mail_restrict_follower_selection/data/ir_actions.xml new file mode 100644 index 000000000..0b0859821 --- /dev/null +++ b/mail_restrict_follower_selection/data/ir_actions.xml @@ -0,0 +1,15 @@ + + + + + + + + + Configure the restriction on followers + automatic + + + + diff --git a/mail_restrict_follower_selection/data/ir_config_parameter.xml b/mail_restrict_follower_selection/data/ir_config_parameter.xml new file mode 100644 index 000000000..25c093cb0 --- /dev/null +++ b/mail_restrict_follower_selection/data/ir_config_parameter.xml @@ -0,0 +1,9 @@ + + + + + mail_restrict_follower_selection.domain + [('employee', '=', True)] + + + diff --git a/mail_restrict_follower_selection/models/__init__.py b/mail_restrict_follower_selection/models/__init__.py new file mode 100644 index 000000000..cc7bb9cdd --- /dev/null +++ b/mail_restrict_follower_selection/models/__init__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# This module copyright (C) 2015 Therp BV . +# +# 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 mail_wizard_invite diff --git a/mail_restrict_follower_selection/models/mail_wizard_invite.py b/mail_restrict_follower_selection/models/mail_wizard_invite.py new file mode 100644 index 000000000..5d0e7ee2b --- /dev/null +++ b/mail_restrict_follower_selection/models/mail_wizard_invite.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# This module copyright (C) 2015 Therp BV (). +# +# 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 lxml import etree +from openerp import models, api + + +class MailWizardInvite(models.TransientModel): + _inherit = 'mail.wizard.invite' + + @api.model + def _mail_restrict_follower_selection_get_domain(self): + parameter_name = 'mail_restrict_follower_selection.domain' + return self.env['ir.config_parameter'].get_param( + '%s.%s' % (parameter_name, + self.env.context.get('default_res_model')), + self.env['ir.config_parameter'].get_param( + parameter_name, default='[]') + ) + + @api.model + def fields_view_get(self, view_id=None, view_type='form', toolbar=False, + submenu=False): + result = super(MailWizardInvite, self).fields_view_get( + view_id=view_id, view_type=view_type, toolbar=toolbar, + submenu=submenu) + arch = etree.fromstring(result['arch']) + for field in arch.xpath('//field[@name="partner_ids"]'): + field.attrib['domain'] = self\ + ._mail_restrict_follower_selection_get_domain() + result['arch'] = etree.tostring(arch) + return result diff --git a/mail_restrict_follower_selection/static/description/icon.png b/mail_restrict_follower_selection/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 zcmW++2RxMjAAjx~&dlBk9S+%}OXg)AGE&Cb*&}d0jUxM@u(PQx^-s)697TX`ehR4?GS^qbkof1cslKgkU)h65qZ9Oc=ml_0temigYLJfnz{IDzUf>bGs4N!v3=Z3jMq&A#7%rM5eQ#dc?k~! zVpnB`o+K7|Al`Q_U;eD$B zfJtP*jH`siUq~{KE)`jP2|#TUEFGRryE2`i0**z#*^6~AI|YzIWy$Cu#CSLW3q=GA z6`?GZymC;dCPk~rBS%eCb`5OLr;RUZ;D`}um=H)BfVIq%7VhiMr)_#G0N#zrNH|__ zc+blN2UAB0=617@>_u;MPHN;P;N#YoE=)R#i$k_`UAA>WWCcEVMh~L_ zj--gtp&|K1#58Yz*AHCTMziU1Jzt_jG0I@qAOHsk$2}yTmVkBp_eHuY$A9)>P6o~I z%aQ?!(GqeQ-Y+b0I(m9pwgi(IIZZzsbMv+9w{PFtd_<_(LA~0H(xz{=FhLB@(1&qHA5EJw1>>=%q2f&^X>IQ{!GJ4e9U z&KlB)z(84HmNgm2hg2C0>WM{E(DdPr+EeU_N@57;PC2&DmGFW_9kP&%?X4}+xWi)( z;)z%wI5>D4a*5XwD)P--sPkoY(a~WBw;E~AW`Yue4kFa^LM3X`8x|}ZUeMnqr}>kH zG%WWW>3ml$Yez?i%)2pbKPI7?5o?hydokgQyZsNEr{a|mLdt;X2TX(#B1j35xPnPW z*bMSSOauW>o;*=kO8ojw91VX!qoOQb)zHJ!odWB}d+*K?#sY_jqPdg{Sm2HdYzdEx zOGVPhVRTGPtv0o}RfVP;Nd(|CB)I;*t&QO8h zFfekr30S!-LHmV_Su-W+rEwYXJ^;6&3|L$mMC8*bQptyOo9;>Qb9Q9`ySe3%V$A*9 zeKEe+b0{#KWGp$F+tga)0RtI)nhMa-K@JS}2krK~n8vJ=Ngm?R!9G<~RyuU0d?nz# z-5EK$o(!F?hmX*2Yt6+coY`6jGbb7tF#6nHA zuKk=GGJ;ZwON1iAfG$E#Y7MnZVmrY|j0eVI(DN_MNFJmyZ|;w4tf@=CCDZ#5N_0K= z$;R~bbk?}TpfDjfB&aiQ$VA}s?P}xPERJG{kxk5~R`iRS(SK5d+Xs9swCozZISbnS zk!)I0>t=A<-^z(cmSFz3=jZ23u13X><0b)P)^1T_))Kr`e!-pb#q&J*Q`p+B6la%C zuVl&0duN<;uOsB3%T9Fp8t{ED108<+W(nOZd?gDnfNBC3>M8WE61$So|P zVvqH0SNtDTcsUdzaMDpT=Ty0pDHHNL@Z0w$Y`XO z2M-_r1S+GaH%pz#Uy0*w$Vdl=X=rQXEzO}d6J^R6zjM1u&c9vYLvLp?W7w(?np9x1 zE_0JSAJCPB%i7p*Wvg)pn5T`8k3-uR?*NT|J`eS#_#54p>!p(mLDvmc-3o0mX*mp_ zN*AeS<>#^-{S%W<*mz^!X$w_2dHWpcJ6^j64qFBft-o}o_Vx80o0>}Du;>kLts;$8 zC`7q$QI(dKYG`Wa8#wl@V4jVWBRGQ@1dr-hstpQL)Tl+aqVpGpbSfN>5i&QMXfiZ> zaA?T1VGe?rpQ@;+pkrVdd{klI&jVS@I5_iz!=UMpTsa~mBga?1r}aRBm1WS;TT*s0f0lY=JBl66Upy)-k4J}lh=P^8(SXk~0xW=T9v*B|gzIhN z>qsO7dFd~mgxAy4V?&)=5ieYq?zi?ZEoj)&2o)RLy=@hbCRcfT5jigwtQGE{L*8<@Yd{zg;CsL5mvzfDY}P-wos_6PfprFVaeqNE%h zKZhLtcQld;ZD+>=nqN~>GvROfueSzJD&BE*}XfU|H&(FssBqY=hPCt`d zH?@s2>I(|;fcW&YM6#V#!kUIP8$Nkdh0A(bEVj``-AAyYgwY~jB zT|I7Bf@%;7aL7Wf4dZ%VqF$eiaC38OV6oy3Z#TER2G+fOCd9Iaoy6aLYbPTN{XRPz z;U!V|vBf%H!}52L2gH_+j;`bTcQRXB+y9onc^wLm5wi3-Be}U>k_u>2Eg$=k!(l@I zcCg+flakT2Nej3i0yn+g+}%NYb?ta;R?(g5SnwsQ49U8Wng8d|{B+lyRcEDvR3+`O{zfmrmvFrL6acVP%yG98X zo&+VBg@px@i)%o?dG(`T;n*$S5*rnyiR#=wW}}GsAcfyQpE|>a{=$Hjg=-*_K;UtD z#z-)AXwSRY?OPefw^iI+ z)AXz#PfEjlwTes|_{sB?4(O@fg0AJ^g8gP}ex9Ucf*@_^J(s_5jJV}c)s$`Myn|Kd z$6>}#q^n{4vN@+Os$m7KV+`}c%4)4pv@06af4-x5#wj!KKb%caK{A&Y#Rfs z-po?Dcb1({W=6FKIUirH&(yg=*6aLCekcKwyfK^JN5{wcA3nhO(o}SK#!CINhI`-I z1)6&n7O&ZmyFMuNwvEic#IiOAwNkR=u5it{B9n2sAJV5pNhar=j5`*N!Na;c7g!l$ z3aYBqUkqqTJ=Re-;)s!EOeij=7SQZ3Hq}ZRds%IM*PtM$wV z@;rlc*NRK7i3y5BETSKuumEN`Xu_8GP1Ri=OKQ$@I^ko8>H6)4rjiG5{VBM>B|%`&&s^)jS|-_95&yc=GqjNo{zFkw%%HHhS~e=s zD#sfS+-?*t|J!+ozP6KvtOl!R)@@-z24}`9{QaVLD^9VCSR2b`b!KC#o;Ki<+wXB6 zx3&O0LOWcg4&rv4QG0)4yb}7BFSEg~=IR5#ZRj8kg}dS7_V&^%#Do==#`u zpy6{ox?jWuR(;pg+f@mT>#HGWHAJRRDDDv~@(IDw&R>9643kK#HN`!1vBJHnC+RM&yIh8{gG2q zA%e*U3|N0XSRa~oX-3EAneep)@{h2vvd3Xvy$7og(sayr@95+e6~Xvi1tUqnIxoIH zVWo*OwYElb#uyW{Imam6f2rGbjR!Y3`#gPqkv57dB6K^wRGxc9B(t|aYDGS=m$&S!NmCtrMMaUg(c zc2qC=2Z`EEFMW-me5B)24AqF*bV5Dr-M5ig(l-WPS%CgaPzs6p_gnCIvTJ=Y<6!gT zVt@AfYCzjjsMEGi=rDQHo0yc;HqoRNnNFeWZgcm?f;cp(6CNylj36DoL(?TS7eU#+ z7&mfr#y))+CJOXQKUMZ7QIdS9@#-}7y2K1{8)cCt0~-X0O!O?Qx#E4Og+;A2SjalQ zs7r?qn0H044=sDN$SRG$arw~n=+T_DNdSrarmu)V6@|?1-ZB#hRn`uilTGPJ@fqEy zGt(f0B+^JDP&f=r{#Y_wi#AVDf-y!RIXU^0jXsFpf>=Ji*TeqSY!H~AMbJdCGLhC) zn7Rx+sXw6uYj;WRYrLd^5IZq@6JI1C^YkgnedZEYy<&4(z%Q$5yv#Boo{AH8n$a zhb4Y3PWdr269&?V%uI$xMcUrMzl=;w<_nm*qr=c3Rl@i5wWB;e-`t7D&c-mcQl7x! zZWB`UGcw=Y2=}~wzrfLx=uet<;m3~=8I~ZRuzvMQUQdr+yTV|ATf1Uuomr__nDf=X zZ3WYJtHp_ri(}SQAPjv+Y+0=fH4krOP@S&=zZ-t1jW1o@}z;xk8 z(Nz1co&El^HK^NrhVHa-_;&88vTU>_J33=%{if;BEY*J#1n59=07jrGQ#IP>@u#3A z;!q+E1Rj3ZJ+!4bq9F8PXJ@yMgZL;>&gYA0%_Kbi8?S=XGM~dnQZQ!yBSgcZhY96H zrWnU;k)qy`rX&&xlDyA%(a1Hhi5CWkmg(`Gb%m(HKi-7Z!LKGRP_B8@`7&hdDy5n= z`OIxqxiVfX@OX1p(mQu>0Ai*v_cTMiw4qRt3~NBvr9oBy0)r>w3p~V0SCm=An6@3n)>@z!|o-$HvDK z|3D2ZMJkLE5loMKl6R^ez@Zz%S$&mbeoqH5`Bb){Ei21q&VP)hWS2tjShfFtGE+$z zzCR$P#uktu+#!w)cX!lWN1XU%K-r=s{|j?)Akf@q#3b#{6cZCuJ~gCxuMXRmI$nGtnH+-h z+GEi!*X=AP<|fG`1>MBdTb?28JYc=fGvAi2I<$B(rs$;eoJCyR6_bc~p!XR@O-+sD z=eH`-ye})I5ic1eL~TDmtfJ|8`0VJ*Yr=hNCd)G1p2MMz4C3^Mj?7;!w|Ly%JqmuW zlIEW^Ft%z?*|fpXda>Jr^1noFZEwFgVV%|*XhH@acv8rdGxeEX{M$(vG{Zw+x(ei@ zmfXb22}8-?Fi`vo-YVrTH*C?a8%M=Hv9MqVH7H^J$KsD?>!SFZ;ZsvnHr_gn=7acz z#W?0eCdVhVMWN12VV^$>WlQ?f;P^{(&pYTops|btm6aj>_Uz+hqpGwB)vWp0Cf5y< zft8-je~nn?W11plq}N)4A{l8I7$!ks_x$PXW-2XaRFswX_BnF{R#6YIwMhAgd5F9X zGmwdadS6(a^fjHtXg8=l?Rc0Sm%hk6E9!5cLVloEy4eh(=FwgP`)~I^5~pBEWo+F6 zSf2ncyMurJN91#cJTy_u8Y}@%!bq1RkGC~-bV@SXRd4F{R-*V`bS+6;W5vZ(&+I<9$;-V|eNfLa5n-6% z2(}&uGRF;p92eS*sE*oR$@pexaqr*meB)VhmIg@h{uzkk$9~qh#cHhw#>O%)b@+(| z^IQgqzuj~Sk(J;swEM-3TrJAPCq9k^^^`q{IItKBRXYe}e0Tdr=Huf7da3$l4PdpwWDop%^}n;dD#K4s#DYA8SHZ z&1!riV4W4R7R#C))JH1~axJ)RYnM$$lIR%6fIVA@zV{XVyx}C+a-Dt8Y9M)^KU0+H zR4IUb2CJ{Hg>CuaXtD50jB(_Tcx=Z$^WYu2u5kubqmwp%drJ6 z?Fo40g!Qd<-l=TQxqHEOuPX0;^z7iX?Ke^a%XT<13TA^5`4Xcw6D@Ur&VT&CUe0d} z1GjOVF1^L@>O)l@?bD~$wzgf(nxX1OGD8fEV?TdJcZc2KoUe|oP1#=$$7ee|xbY)A zDZq+cuTpc(fFdj^=!;{k03C69lMQ(|>uhRfRu%+!k&YOi-3|1QKB z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/mail_restrict_follower_selection/tests/__init__.py b/mail_restrict_follower_selection/tests/__init__.py new file mode 100644 index 000000000..6d2a768a8 --- /dev/null +++ b/mail_restrict_follower_selection/tests/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2015 Therp BV . +# +# 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_restrict_follower_selection diff --git a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py new file mode 100644 index 000000000..b89567ea2 --- /dev/null +++ b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2015 Therp BV (). +# +# 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 lxml import etree +from openerp.tests.common import TransactionCase + + +class TestMailRestrictFollowerSelection(TransactionCase): + def test_fields_view_get(self): + result = self.env['mail.wizard.invite'].fields_view_get( + view_type='form') + for field in etree.fromstring(result['arch']).xpath( + '//field[@name="partner_ids"]'): + self.assertTrue(field.get('domain')) From 281af69c8688def15478ec5dc2dd61a8f5663ac5 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Fri, 4 Sep 2015 10:37:33 +0200 Subject: [PATCH 02/16] [FIX] better default filter --- mail_restrict_follower_selection/README.rst | 2 +- mail_restrict_follower_selection/data/ir_config_parameter.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mail_restrict_follower_selection/README.rst b/mail_restrict_follower_selection/README.rst index 5a633d532..05ecfeb74 100644 --- a/mail_restrict_follower_selection/README.rst +++ b/mail_restrict_follower_selection/README.rst @@ -10,7 +10,7 @@ Configuration To configure this module, you need to go to `System parameters` and adjust `mail_restrict_follower_selection.domain` as you see fit. This restricts followers globally, if you want to restrict only the followers for a certain record type (or have different restrictions for different record types), create a parameter `mail_restrict_follower_selection.domain.$your_model`. -As an example, you could use `[('customer', '=', True)]` to allow only customers to be added as follower. +As an example, you could use `[('customer', '=', True)]` to allow only customers to be added as follower - this also is the default. Note: This module won't change existing followers! diff --git a/mail_restrict_follower_selection/data/ir_config_parameter.xml b/mail_restrict_follower_selection/data/ir_config_parameter.xml index 25c093cb0..280ae711b 100644 --- a/mail_restrict_follower_selection/data/ir_config_parameter.xml +++ b/mail_restrict_follower_selection/data/ir_config_parameter.xml @@ -3,7 +3,7 @@ mail_restrict_follower_selection.domain - [('employee', '=', True)] + [('customer', '=', True)] From 80bbea1889beaefc2caca2e16454f318fed4f152 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Wed, 14 Oct 2015 02:54:06 +0200 Subject: [PATCH 03/16] [MIG] Make modules uninstallable --- mail_restrict_follower_selection/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mail_restrict_follower_selection/__openerp__.py b/mail_restrict_follower_selection/__openerp__.py index 9d242619d..80cdcf270 100644 --- a/mail_restrict_follower_selection/__openerp__.py +++ b/mail_restrict_follower_selection/__openerp__.py @@ -33,7 +33,7 @@ "data/ir_actions.xml", ], "auto_install": False, - "installable": True, + 'installable': False, "application": False, "external_dependencies": { 'python': [], From a321af1068b2987a14c52f0f6c58780d820be68b Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Thu, 6 Oct 2016 16:08:42 +0200 Subject: [PATCH 04/16] [MIG] Rename manifest files --- .../{__openerp__.py => __manifest__.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mail_restrict_follower_selection/{__openerp__.py => __manifest__.py} (100%) diff --git a/mail_restrict_follower_selection/__openerp__.py b/mail_restrict_follower_selection/__manifest__.py similarity index 100% rename from mail_restrict_follower_selection/__openerp__.py rename to mail_restrict_follower_selection/__manifest__.py From 5f71e274b6e5611a5d80d4bff173b82a372b93a5 Mon Sep 17 00:00:00 2001 From: Damien Bouvy Date: Fri, 14 Oct 2016 19:40:18 +0200 Subject: [PATCH 05/16] [MIG] mail_restrict_follower_selection: Migrated to 10.0 --- mail_restrict_follower_selection/README.rst | 2 +- .../__manifest__.py | 4 +-- .../data/ir_actions.xml | 26 +++++++++---------- .../data/ir_config_parameter.xml | 14 +++++----- .../models/mail_wizard_invite.py | 2 +- 5 files changed, 22 insertions(+), 26 deletions(-) diff --git a/mail_restrict_follower_selection/README.rst b/mail_restrict_follower_selection/README.rst index 05ecfeb74..97c76b0f3 100644 --- a/mail_restrict_follower_selection/README.rst +++ b/mail_restrict_follower_selection/README.rst @@ -19,7 +19,7 @@ Usage .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/205/8.0 + :target: https://runbot.odoo-community.org/runbot/205/10.0 For further information, please visit: diff --git a/mail_restrict_follower_selection/__manifest__.py b/mail_restrict_follower_selection/__manifest__.py index 80cdcf270..a6d9c17d1 100644 --- a/mail_restrict_follower_selection/__manifest__.py +++ b/mail_restrict_follower_selection/__manifest__.py @@ -20,7 +20,7 @@ ############################################################################## { "name": "Restrict follower selection", - "version": "8.0.1.0.0", + "version": "10.0.1.0.0", "author": "Therp BV,Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Social Network", @@ -33,7 +33,7 @@ "data/ir_actions.xml", ], "auto_install": False, - 'installable': False, + 'installable': True, "application": False, "external_dependencies": { 'python': [], diff --git a/mail_restrict_follower_selection/data/ir_actions.xml b/mail_restrict_follower_selection/data/ir_actions.xml index 0b0859821..39462e539 100644 --- a/mail_restrict_follower_selection/data/ir_actions.xml +++ b/mail_restrict_follower_selection/data/ir_actions.xml @@ -1,15 +1,13 @@ - - - - - - - - Configure the restriction on followers - automatic - - - - + + + + + + + Configure the restriction on followers + automatic + + + diff --git a/mail_restrict_follower_selection/data/ir_config_parameter.xml b/mail_restrict_follower_selection/data/ir_config_parameter.xml index 280ae711b..f4a1daf2e 100644 --- a/mail_restrict_follower_selection/data/ir_config_parameter.xml +++ b/mail_restrict_follower_selection/data/ir_config_parameter.xml @@ -1,9 +1,7 @@ - - - - mail_restrict_follower_selection.domain - [('customer', '=', True)] - - - + + + mail_restrict_follower_selection.domain + [('customer', '=', True)] + + diff --git a/mail_restrict_follower_selection/models/mail_wizard_invite.py b/mail_restrict_follower_selection/models/mail_wizard_invite.py index 5d0e7ee2b..5ca0c7a57 100644 --- a/mail_restrict_follower_selection/models/mail_wizard_invite.py +++ b/mail_restrict_follower_selection/models/mail_wizard_invite.py @@ -18,7 +18,7 @@ # ############################################################################## from lxml import etree -from openerp import models, api +from odoo import models, api class MailWizardInvite(models.TransientModel): From b636004973e09ba70bd869e348a969d28cc0a3f4 Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Mon, 5 Oct 2015 05:41:11 -0400 Subject: [PATCH 06/16] OCA Transbot updated translations from Transifex --- mail_restrict_follower_selection/i18n/en.po | 28 ++++++++++++++++++++ mail_restrict_follower_selection/i18n/fr.po | 29 +++++++++++++++++++++ mail_restrict_follower_selection/i18n/hr.po | 29 +++++++++++++++++++++ mail_restrict_follower_selection/i18n/it.po | 29 +++++++++++++++++++++ mail_restrict_follower_selection/i18n/sl.po | 29 +++++++++++++++++++++ 5 files changed, 144 insertions(+) create mode 100644 mail_restrict_follower_selection/i18n/en.po create mode 100644 mail_restrict_follower_selection/i18n/fr.po create mode 100644 mail_restrict_follower_selection/i18n/hr.po create mode 100644 mail_restrict_follower_selection/i18n/it.po create mode 100644 mail_restrict_follower_selection/i18n/sl.po diff --git a/mail_restrict_follower_selection/i18n/en.po b/mail_restrict_follower_selection/i18n/en.po new file mode 100644 index 000000000..1d50b0148 --- /dev/null +++ b/mail_restrict_follower_selection/i18n/en.po @@ -0,0 +1,28 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_restrict_follower_selection +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: social (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-09-30 16:56+0000\n" +"PO-Revision-Date: 2015-09-30 16:56+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: English (http://www.transifex.com/oca/OCA-social-8-0/language/en/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: en\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: mail_restrict_follower_selection +#: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup +msgid "Configure the restriction on followers" +msgstr "Configure the restriction on followers" + +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite +msgid "Invite wizard" +msgstr "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/fr.po b/mail_restrict_follower_selection/i18n/fr.po new file mode 100644 index 000000000..496e862f3 --- /dev/null +++ b/mail_restrict_follower_selection/i18n/fr.po @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_restrict_follower_selection +# +# Translators: +# Quentin THEURET , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-22 09:45+0000\n" +"PO-Revision-Date: 2017-07-22 09:45+0000\n" +"Last-Translator: Quentin THEURET , 2017\n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: mail_restrict_follower_selection +#: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup +msgid "Configure the restriction on followers" +msgstr "Configurer les restrictions sur les abonnés" + +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite +msgid "Invite wizard" +msgstr "Assistant d'invitation" diff --git a/mail_restrict_follower_selection/i18n/hr.po b/mail_restrict_follower_selection/i18n/hr.po new file mode 100644 index 000000000..2986af18e --- /dev/null +++ b/mail_restrict_follower_selection/i18n/hr.po @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_restrict_follower_selection +# +# Translators: +# Bole , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-29 14:24+0000\n" +"PO-Revision-Date: 2016-11-29 14:24+0000\n" +"Last-Translator: Bole , 2016\n" +"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: hr\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: mail_restrict_follower_selection +#: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup +msgid "Configure the restriction on followers" +msgstr "Postavi ograničenja na pratitelje" + +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite +msgid "Invite wizard" +msgstr "Čarobnjak za pozivnce" diff --git a/mail_restrict_follower_selection/i18n/it.po b/mail_restrict_follower_selection/i18n/it.po new file mode 100644 index 000000000..b3df71801 --- /dev/null +++ b/mail_restrict_follower_selection/i18n/it.po @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_restrict_follower_selection +# +# Translators: +# Marius Marolla , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 01:02+0000\n" +"PO-Revision-Date: 2017-05-17 01:02+0000\n" +"Last-Translator: Marius Marolla , 2017\n" +"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: mail_restrict_follower_selection +#: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup +msgid "Configure the restriction on followers" +msgstr "Imposta restrizioni sui follower" + +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite +msgid "Invite wizard" +msgstr "Wizard Creazione Invito" diff --git a/mail_restrict_follower_selection/i18n/sl.po b/mail_restrict_follower_selection/i18n/sl.po new file mode 100644 index 000000000..370eb8186 --- /dev/null +++ b/mail_restrict_follower_selection/i18n/sl.po @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_restrict_follower_selection +# +# Translators: +# Matjaž Mozetič , 2015 +msgid "" +msgstr "" +"Project-Id-Version: social (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-09-30 16:56+0000\n" +"PO-Revision-Date: 2015-10-01 13:00+0000\n" +"Last-Translator: Matjaž Mozetič \n" +"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-social-8-0/language/sl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" + +#. module: mail_restrict_follower_selection +#: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup +msgid "Configure the restriction on followers" +msgstr "Nastavitev omejitev za sledilce" + +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite +msgid "Invite wizard" +msgstr "Čarovnik za vabila" From c0545fda2e8a68222d39b49d6b2e9a98cf7e4921 Mon Sep 17 00:00:00 2001 From: phucngta Date: Tue, 6 Mar 2018 15:18:36 +0700 Subject: [PATCH 07/16] [11.0][MIG] mail_restrict_follower_selection --- mail_restrict_follower_selection/README.rst | 5 +++- mail_restrict_follower_selection/__init__.py | 23 +++------------ .../__manifest__.py | 26 ++++------------- .../data/ir_actions.xml | 1 - .../models/__init__.py | 23 +++------------ .../models/mail_wizard_invite.py | 29 +++++-------------- .../tests/__init__.py | 24 +++------------ .../test_mail_restrict_follower_selection.py | 25 ++++------------ 8 files changed, 33 insertions(+), 123 deletions(-) diff --git a/mail_restrict_follower_selection/README.rst b/mail_restrict_follower_selection/README.rst index 97c76b0f3..bbcd1aebf 100644 --- a/mail_restrict_follower_selection/README.rst +++ b/mail_restrict_follower_selection/README.rst @@ -1,5 +1,7 @@ .. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg - :alt: License: AGPL-3 + :alt: License: AGPL-3 + +=========================== Restrict follower selection =========================== @@ -40,6 +42,7 @@ Contributors ------------ * Holger Brunn +* Nguyen Tan Phuc Maintainer ---------- diff --git a/mail_restrict_follower_selection/__init__.py b/mail_restrict_follower_selection/__init__.py index cdb7d7368..9537e12db 100644 --- a/mail_restrict_follower_selection/__init__.py +++ b/mail_restrict_follower_selection/__init__.py @@ -1,20 +1,5 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# This module copyright (C) 2015 Therp BV . -# -# 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 . -# -############################################################################## +# Copyright (C) 2015 Therp BV +# Copyright (C) 2017 Komit +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + from . import models diff --git a/mail_restrict_follower_selection/__manifest__.py b/mail_restrict_follower_selection/__manifest__.py index a6d9c17d1..2f81a5489 100644 --- a/mail_restrict_follower_selection/__manifest__.py +++ b/mail_restrict_follower_selection/__manifest__.py @@ -1,26 +1,10 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# This module copyright (C) 2015 Therp BV . -# -# 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 . -# -############################################################################## +# Copyright (C) 2015 Therp BV +# Copyright (C) 2017 Komit +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + { "name": "Restrict follower selection", - "version": "10.0.1.0.0", + "version": "11.0.1.0.0", "author": "Therp BV,Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Social Network", diff --git a/mail_restrict_follower_selection/data/ir_actions.xml b/mail_restrict_follower_selection/data/ir_actions.xml index 39462e539..63c84f024 100644 --- a/mail_restrict_follower_selection/data/ir_actions.xml +++ b/mail_restrict_follower_selection/data/ir_actions.xml @@ -7,7 +7,6 @@ Configure the restriction on followers - automatic diff --git a/mail_restrict_follower_selection/models/__init__.py b/mail_restrict_follower_selection/models/__init__.py index cc7bb9cdd..422ffaf54 100644 --- a/mail_restrict_follower_selection/models/__init__.py +++ b/mail_restrict_follower_selection/models/__init__.py @@ -1,20 +1,5 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# This module copyright (C) 2015 Therp BV . -# -# 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 . -# -############################################################################## +# Copyright (C) 2015 Therp BV +# Copyright (C) 2017 Komit +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + from . import mail_wizard_invite diff --git a/mail_restrict_follower_selection/models/mail_wizard_invite.py b/mail_restrict_follower_selection/models/mail_wizard_invite.py index 5ca0c7a57..216e26bb5 100644 --- a/mail_restrict_follower_selection/models/mail_wizard_invite.py +++ b/mail_restrict_follower_selection/models/mail_wizard_invite.py @@ -1,24 +1,9 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# This module copyright (C) 2015 Therp BV (). -# -# 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 . -# -############################################################################## +# Copyright (C) 2015 Therp BV +# Copyright (C) 2017 Komit +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + from lxml import etree -from odoo import models, api +from odoo import api, models class MailWizardInvite(models.TransientModel): @@ -28,8 +13,8 @@ class MailWizardInvite(models.TransientModel): def _mail_restrict_follower_selection_get_domain(self): parameter_name = 'mail_restrict_follower_selection.domain' return self.env['ir.config_parameter'].get_param( - '%s.%s' % (parameter_name, - self.env.context.get('default_res_model')), + "{0}.{1}".format(parameter_name, + self.env.context.get('default_res_model')), self.env['ir.config_parameter'].get_param( parameter_name, default='[]') ) diff --git a/mail_restrict_follower_selection/tests/__init__.py b/mail_restrict_follower_selection/tests/__init__.py index 6d2a768a8..10093c8f1 100644 --- a/mail_restrict_follower_selection/tests/__init__.py +++ b/mail_restrict_follower_selection/tests/__init__.py @@ -1,21 +1,5 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# This module copyright (C) 2015 Therp BV . -# -# 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 . -# -############################################################################## +# Copyright (C) 2015 Therp BV +# Copyright (C) 2017 Komit +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + from . import test_mail_restrict_follower_selection diff --git a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py index b89567ea2..d1905b183 100644 --- a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py +++ b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py @@ -1,28 +1,13 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# This module copyright (C) 2015 Therp BV (). -# -# 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 . -# -############################################################################## +# Copyright (C) 2015 Therp BV +# Copyright (C) 2017 Komit +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + from lxml import etree from openerp.tests.common import TransactionCase class TestMailRestrictFollowerSelection(TransactionCase): + def test_fields_view_get(self): result = self.env['mail.wizard.invite'].fields_view_get( view_type='form') From 7dad35321e21a048a9a2ab3755f4305787112877 Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Wed, 4 Apr 2018 10:19:13 +0200 Subject: [PATCH 08/16] [IMP] disable the option to create followers that do not meet the conditions --- mail_restrict_follower_selection/README.rst | 5 ++- .../__manifest__.py | 4 +- .../models/__init__.py | 1 + .../models/mail_followers.py | 24 +++++++++++ .../models/mail_wizard_invite.py | 4 +- .../test_mail_restrict_follower_selection.py | 43 ++++++++++++++++++- 6 files changed, 75 insertions(+), 6 deletions(-) create mode 100644 mail_restrict_follower_selection/models/mail_followers.py diff --git a/mail_restrict_follower_selection/README.rst b/mail_restrict_follower_selection/README.rst index bbcd1aebf..fb0656d42 100644 --- a/mail_restrict_follower_selection/README.rst +++ b/mail_restrict_follower_selection/README.rst @@ -7,6 +7,8 @@ Restrict follower selection This module was written to allow you to restrict the selection of possible followers. For example, if you use the social ERP functions only internally, it makes sense to filter possible followers for being employees. Otherwise, you'll get a quite crowded list of partners to choose from. +Moreover, the module disables the option to automatically add followers that do not meet the domain. + Configuration ============= @@ -21,7 +23,7 @@ Usage .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/205/10.0 + :target: https://runbot.odoo-community.org/runbot/205/11.0 For further information, please visit: @@ -43,6 +45,7 @@ Contributors * Holger Brunn * Nguyen Tan Phuc +* Enric Tobella Maintainer ---------- diff --git a/mail_restrict_follower_selection/__manifest__.py b/mail_restrict_follower_selection/__manifest__.py index 2f81a5489..bfeb8bfcc 100644 --- a/mail_restrict_follower_selection/__manifest__.py +++ b/mail_restrict_follower_selection/__manifest__.py @@ -4,8 +4,8 @@ { "name": "Restrict follower selection", - "version": "11.0.1.0.0", - "author": "Therp BV,Odoo Community Association (OCA)", + "version": "11.0.2.0.0", + "author": "Therp BV,Creu Blanca,Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Social Network", "summary": "Define a domain from which followers can be selected", diff --git a/mail_restrict_follower_selection/models/__init__.py b/mail_restrict_follower_selection/models/__init__.py index 422ffaf54..a757c6b4e 100644 --- a/mail_restrict_follower_selection/models/__init__.py +++ b/mail_restrict_follower_selection/models/__init__.py @@ -2,4 +2,5 @@ # Copyright (C) 2017 Komit # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from . import mail_followers from . import mail_wizard_invite diff --git a/mail_restrict_follower_selection/models/mail_followers.py b/mail_restrict_follower_selection/models/mail_followers.py new file mode 100644 index 000000000..15e906eb1 --- /dev/null +++ b/mail_restrict_follower_selection/models/mail_followers.py @@ -0,0 +1,24 @@ +# Copyright (C) 2018 Creu Blanca +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api, models +from odoo.tools.safe_eval import safe_eval + + +class MailFollowers(models.Model): + _inherit = 'mail.followers' + + @api.model + def _add_follower_command(self, res_model, res_ids, partner_data, + channel_data, force=True): + domain = self.env[ + 'mail.wizard.invite' + ]._mail_restrict_follower_selection_get_domain() + partners = self.env['res.partner'].search( + [('id', 'in', list(partner_data))] + + safe_eval(domain) + ) + return super()._add_follower_command( + res_model, res_ids, + {p.id: partner_data[p.id] for p in partners}, + channel_data, force=force) diff --git a/mail_restrict_follower_selection/models/mail_wizard_invite.py b/mail_restrict_follower_selection/models/mail_wizard_invite.py index 216e26bb5..1d8b31caa 100644 --- a/mail_restrict_follower_selection/models/mail_wizard_invite.py +++ b/mail_restrict_follower_selection/models/mail_wizard_invite.py @@ -12,10 +12,10 @@ class MailWizardInvite(models.TransientModel): @api.model def _mail_restrict_follower_selection_get_domain(self): parameter_name = 'mail_restrict_follower_selection.domain' - return self.env['ir.config_parameter'].get_param( + return self.env['ir.config_parameter'].sudo().get_param( "{0}.{1}".format(parameter_name, self.env.context.get('default_res_model')), - self.env['ir.config_parameter'].get_param( + self.env['ir.config_parameter'].sudo().get_param( parameter_name, default='[]') ) diff --git a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py index d1905b183..4bf6410df 100644 --- a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py +++ b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py @@ -3,14 +3,55 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from lxml import etree -from openerp.tests.common import TransactionCase +from odoo.tests.common import TransactionCase class TestMailRestrictFollowerSelection(TransactionCase): + def setUp(self): + super().setUp() + self.partner = self.env['res.partner'].create({ + 'name': 'Partner', + 'customer': True, + 'email': 'test@test.com', + }) + def test_fields_view_get(self): result = self.env['mail.wizard.invite'].fields_view_get( view_type='form') for field in etree.fromstring(result['arch']).xpath( '//field[@name="partner_ids"]'): self.assertTrue(field.get('domain')) + + def send_action(self): + compose = self.env['mail.compose.message'].with_context({ + 'mail_post_autofollow': True, + 'default_composition_mode': 'comment', + 'default_model': 'res.partner', + 'default_use_active_domain': True, + }).create({ + 'subject': 'From Composer Test', + 'body': '${object.description}', + 'res_id': self.partner.id, + 'partner_ids': [(4, id) for id in self.partner.ids], + }) + self.assertEqual(compose.partner_ids, self.partner) + compose.send_mail_action() + + def test_followers_meet(self): + self.partner.write({'customer': True}) + self.assertTrue(self.partner.customer) + self.send_action() + self.assertIn( + self.partner, + self.partner.message_follower_ids.mapped('partner_id') + ) + + def test_followers_not_meet(self): + self.partner.write({'customer': False}) + self.assertFalse(self.partner.customer) + self.send_action() + self.assertNotIn( + self.partner, + self.partner.message_follower_ids.mapped('partner_id') + ) From 742969e31910fb9a838edf0dc40be3d89de01f0b Mon Sep 17 00:00:00 2001 From: oca-travis Date: Sun, 17 Jun 2018 19:58:30 +0000 Subject: [PATCH 09/16] [UPD] Update mail_restrict_follower_selection.pot --- mail_restrict_follower_selection/i18n/en.po | 12 ++++++-- mail_restrict_follower_selection/i18n/fr.po | 9 ++++-- mail_restrict_follower_selection/i18n/hr.po | 12 ++++++-- mail_restrict_follower_selection/i18n/it.po | 9 ++++-- .../i18n/mail_restrict_follower_selection.pot | 30 +++++++++++++++++++ mail_restrict_follower_selection/i18n/sl.po | 15 +++++++--- 6 files changed, 73 insertions(+), 14 deletions(-) create mode 100644 mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot diff --git a/mail_restrict_follower_selection/i18n/en.po b/mail_restrict_follower_selection/i18n/en.po index 1d50b0148..b6c0235db 100644 --- a/mail_restrict_follower_selection/i18n/en.po +++ b/mail_restrict_follower_selection/i18n/en.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_restrict_follower_selection -# +# # Translators: msgid "" msgstr "" @@ -10,11 +10,12 @@ msgstr "" "POT-Creation-Date: 2015-09-30 16:56+0000\n" "PO-Revision-Date: 2015-09-30 16:56+0000\n" "Last-Translator: OCA Transbot \n" -"Language-Team: English (http://www.transifex.com/oca/OCA-social-8-0/language/en/)\n" +"Language-Team: English (http://www.transifex.com/oca/OCA-social-8-0/language/" +"en/)\n" +"Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: en\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_restrict_follower_selection @@ -22,6 +23,11 @@ msgstr "" msgid "Configure the restriction on followers" msgstr "Configure the restriction on followers" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers +msgid "Document Followers" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/fr.po b/mail_restrict_follower_selection/i18n/fr.po index 496e862f3..4a8952177 100644 --- a/mail_restrict_follower_selection/i18n/fr.po +++ b/mail_restrict_follower_selection/i18n/fr.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_restrict_follower_selection -# +# # Translators: # Quentin THEURET , 2017 msgid "" @@ -12,10 +12,10 @@ msgstr "" "PO-Revision-Date: 2017-07-22 09:45+0000\n" "Last-Translator: Quentin THEURET , 2017\n" "Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. module: mail_restrict_follower_selection @@ -23,6 +23,11 @@ msgstr "" msgid "Configure the restriction on followers" msgstr "Configurer les restrictions sur les abonnés" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers +msgid "Document Followers" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/hr.po b/mail_restrict_follower_selection/i18n/hr.po index 2986af18e..4d7bc08fe 100644 --- a/mail_restrict_follower_selection/i18n/hr.po +++ b/mail_restrict_follower_selection/i18n/hr.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_restrict_follower_selection -# +# # Translators: # Bole , 2016 msgid "" @@ -12,17 +12,23 @@ msgstr "" "PO-Revision-Date: 2016-11-29 14:24+0000\n" "Last-Translator: Bole , 2016\n" "Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" +"Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: hr\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #. module: mail_restrict_follower_selection #: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup msgid "Configure the restriction on followers" msgstr "Postavi ograničenja na pratitelje" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers +msgid "Document Followers" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/it.po b/mail_restrict_follower_selection/i18n/it.po index b3df71801..10a71b6cd 100644 --- a/mail_restrict_follower_selection/i18n/it.po +++ b/mail_restrict_follower_selection/i18n/it.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_restrict_follower_selection -# +# # Translators: # Marius Marolla , 2017 msgid "" @@ -12,10 +12,10 @@ msgstr "" "PO-Revision-Date: 2017-05-17 01:02+0000\n" "Last-Translator: Marius Marolla , 2017\n" "Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: mail_restrict_follower_selection @@ -23,6 +23,11 @@ msgstr "" msgid "Configure the restriction on followers" msgstr "Imposta restrizioni sui follower" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers +msgid "Document Followers" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot b/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot new file mode 100644 index 000000000..6bcf2f7bd --- /dev/null +++ b/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot @@ -0,0 +1,30 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_restrict_follower_selection +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: mail_restrict_follower_selection +#: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup +msgid "Configure the restriction on followers" +msgstr "" + +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers +msgid "Document Followers" +msgstr "" + +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite +msgid "Invite wizard" +msgstr "" + diff --git a/mail_restrict_follower_selection/i18n/sl.po b/mail_restrict_follower_selection/i18n/sl.po index 370eb8186..d64d0baab 100644 --- a/mail_restrict_follower_selection/i18n/sl.po +++ b/mail_restrict_follower_selection/i18n/sl.po @@ -1,7 +1,7 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: # * mail_restrict_follower_selection -# +# # Translators: # Matjaž Mozetič , 2015 msgid "" @@ -11,18 +11,25 @@ msgstr "" "POT-Creation-Date: 2015-09-30 16:56+0000\n" "PO-Revision-Date: 2015-10-01 13:00+0000\n" "Last-Translator: Matjaž Mozetič \n" -"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-social-8-0/language/sl/)\n" +"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-social-8-0/" +"language/sl/)\n" +"Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Language: sl\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" #. module: mail_restrict_follower_selection #: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup msgid "Configure the restriction on followers" msgstr "Nastavitev omejitev za sledilce" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers +msgid "Document Followers" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" From 93edd0d19f2979ac85d1c85f9fd80c45bb5077ea Mon Sep 17 00:00:00 2001 From: c2cdidier Date: Mon, 18 Jun 2018 09:40:13 +0000 Subject: [PATCH 10/16] Translated using Weblate (French) [ci skip] Currently translated at 100.0% (3 of 3 strings) Translation: social-11.0/social-11.0-mail_restrict_follower_selection Translate-URL: https://translation.odoo-community.org/projects/social-11-0/social-11-0-mail_restrict_follower_selection/fr/ --- mail_restrict_follower_selection/i18n/fr.po | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mail_restrict_follower_selection/i18n/fr.po b/mail_restrict_follower_selection/i18n/fr.po index 4a8952177..e37d2767c 100644 --- a/mail_restrict_follower_selection/i18n/fr.po +++ b/mail_restrict_follower_selection/i18n/fr.po @@ -9,14 +9,15 @@ msgstr "" "Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-07-22 09:45+0000\n" -"PO-Revision-Date: 2017-07-22 09:45+0000\n" -"Last-Translator: Quentin THEURET , 2017\n" +"PO-Revision-Date: 2018-06-18 09:40+0000\n" +"Last-Translator: c2cdidier \n" "Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 3.0.1\n" #. module: mail_restrict_follower_selection #: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup @@ -26,7 +27,7 @@ msgstr "Configurer les restrictions sur les abonnés" #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers msgid "Document Followers" -msgstr "" +msgstr "Suiveurs du document" #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite From 76728c51d45330dd195fc8350d33f4f22c65a829 Mon Sep 17 00:00:00 2001 From: Maria Sparenberg Date: Fri, 14 Dec 2018 15:19:15 +0000 Subject: [PATCH 11/16] Added translation using Weblate (German) --- mail_restrict_follower_selection/i18n/de.po | 30 +++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 mail_restrict_follower_selection/i18n/de.po diff --git a/mail_restrict_follower_selection/i18n/de.po b/mail_restrict_follower_selection/i18n/de.po new file mode 100644 index 000000000..e73100287 --- /dev/null +++ b/mail_restrict_follower_selection/i18n/de.po @@ -0,0 +1,30 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_restrict_follower_selection +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: mail_restrict_follower_selection +#: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup +msgid "Configure the restriction on followers" +msgstr "" + +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers +msgid "Document Followers" +msgstr "" + +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite +msgid "Invite wizard" +msgstr "" From 21bdead7132cc27fe1a8d5b7e1874213f9521f5b Mon Sep 17 00:00:00 2001 From: Maria Sparenberg Date: Fri, 14 Dec 2018 15:19:49 +0000 Subject: [PATCH 12/16] Translated using Weblate (German) Currently translated at 100.0% (3 of 3 strings) Translation: social-11.0/social-11.0-mail_restrict_follower_selection Translate-URL: https://translation.odoo-community.org/projects/social-11-0/social-11-0-mail_restrict_follower_selection/de/ --- mail_restrict_follower_selection/i18n/de.po | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mail_restrict_follower_selection/i18n/de.po b/mail_restrict_follower_selection/i18n/de.po index e73100287..1495d7c39 100644 --- a/mail_restrict_follower_selection/i18n/de.po +++ b/mail_restrict_follower_selection/i18n/de.po @@ -6,25 +6,27 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 11.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2018-12-15 14:58+0000\n" +"Last-Translator: Maria Sparenberg \n" "Language-Team: none\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.3\n" #. module: mail_restrict_follower_selection #: model:ir.actions.act_window,name:mail_restrict_follower_selection.action_setup msgid "Configure the restriction on followers" -msgstr "" +msgstr "Beschränkung der Abonnenten konfigurieren" #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_followers msgid "Document Followers" -msgstr "" +msgstr "Abonnenten des Dokuments" #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" -msgstr "" +msgstr "Assistent zum Einladen von Abonnenten" From 71c2d1a3b3acf56a8603ce32a0b669bcc739014a Mon Sep 17 00:00:00 2001 From: Jordi Ballester Alomar Date: Thu, 23 Jan 2020 15:18:11 +0100 Subject: [PATCH 13/16] fixes a corner case where you could send an email to a partner that you are not supposed to. --- .../models/__init__.py | 1 + .../models/mail_thread.py | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 mail_restrict_follower_selection/models/mail_thread.py diff --git a/mail_restrict_follower_selection/models/__init__.py b/mail_restrict_follower_selection/models/__init__.py index a757c6b4e..d6a528cb7 100644 --- a/mail_restrict_follower_selection/models/__init__.py +++ b/mail_restrict_follower_selection/models/__init__.py @@ -4,3 +4,4 @@ from . import mail_followers from . import mail_wizard_invite +from . import mail_thread diff --git a/mail_restrict_follower_selection/models/mail_thread.py b/mail_restrict_follower_selection/models/mail_thread.py new file mode 100644 index 000000000..c22dd3d41 --- /dev/null +++ b/mail_restrict_follower_selection/models/mail_thread.py @@ -0,0 +1,25 @@ +from odoo import api, models +from odoo.tools.safe_eval import safe_eval + + +class MailThread(models.AbstractModel): + _inherit = 'mail.thread' + + @api.multi + def _message_add_suggested_recipient( + self, result, partner=None, email=None, reason=''): + result = super(MailThread, self)._message_add_suggested_recipient( + result, partner=partner, email=email, reason=reason) + domain = self.env[ + 'mail.wizard.invite' + ]._mail_restrict_follower_selection_get_domain() + eval_domain = safe_eval(domain) + for key in result: + for partner_id, email, reason in result[key]: + if partner_id: + partner = self.env['res.partner'].search( + [('id', '=', partner_id)] + eval_domain + ) + if not partner: + result[key].remove((partner_id, email, reason)) + return result From 235162da9ba5dbe39336c0c5a98bc456d58727f2 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Mon, 27 Jan 2020 12:25:07 +0000 Subject: [PATCH 14/16] [UPD] Update mail_restrict_follower_selection.pot --- .../i18n/mail_restrict_follower_selection.pot | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot b/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot index 6bcf2f7bd..8a87100bf 100644 --- a/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot +++ b/mail_restrict_follower_selection/i18n/mail_restrict_follower_selection.pot @@ -23,6 +23,11 @@ msgstr "" msgid "Document Followers" msgstr "" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_thread +msgid "Email Thread" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" From fc2b8369dddd07de338014b3246a3117ba9f6a50 Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Mon, 27 Jan 2020 12:32:36 +0000 Subject: [PATCH 15/16] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: social-11.0/social-11.0-mail_restrict_follower_selection Translate-URL: https://translation.odoo-community.org/projects/social-11-0/social-11-0-mail_restrict_follower_selection/ --- mail_restrict_follower_selection/i18n/de.po | 7 ++++++- mail_restrict_follower_selection/i18n/en.po | 5 +++++ mail_restrict_follower_selection/i18n/fr.po | 5 +++++ mail_restrict_follower_selection/i18n/hr.po | 5 +++++ mail_restrict_follower_selection/i18n/it.po | 5 +++++ mail_restrict_follower_selection/i18n/sl.po | 5 +++++ 6 files changed, 31 insertions(+), 1 deletion(-) diff --git a/mail_restrict_follower_selection/i18n/de.po b/mail_restrict_follower_selection/i18n/de.po index 1495d7c39..eff22263f 100644 --- a/mail_restrict_follower_selection/i18n/de.po +++ b/mail_restrict_follower_selection/i18n/de.po @@ -1,6 +1,6 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * mail_restrict_follower_selection +# * mail_restrict_follower_selection # msgid "" msgstr "" @@ -26,6 +26,11 @@ msgstr "Beschränkung der Abonnenten konfigurieren" msgid "Document Followers" msgstr "Abonnenten des Dokuments" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_thread +msgid "Email Thread" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/en.po b/mail_restrict_follower_selection/i18n/en.po index b6c0235db..e03abf358 100644 --- a/mail_restrict_follower_selection/i18n/en.po +++ b/mail_restrict_follower_selection/i18n/en.po @@ -28,6 +28,11 @@ msgstr "Configure the restriction on followers" msgid "Document Followers" msgstr "" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_thread +msgid "Email Thread" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/fr.po b/mail_restrict_follower_selection/i18n/fr.po index e37d2767c..7f96c92b0 100644 --- a/mail_restrict_follower_selection/i18n/fr.po +++ b/mail_restrict_follower_selection/i18n/fr.po @@ -29,6 +29,11 @@ msgstr "Configurer les restrictions sur les abonnés" msgid "Document Followers" msgstr "Suiveurs du document" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_thread +msgid "Email Thread" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/hr.po b/mail_restrict_follower_selection/i18n/hr.po index 4d7bc08fe..38a74e130 100644 --- a/mail_restrict_follower_selection/i18n/hr.po +++ b/mail_restrict_follower_selection/i18n/hr.po @@ -29,6 +29,11 @@ msgstr "Postavi ograničenja na pratitelje" msgid "Document Followers" msgstr "" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_thread +msgid "Email Thread" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/it.po b/mail_restrict_follower_selection/i18n/it.po index 10a71b6cd..54ec814bb 100644 --- a/mail_restrict_follower_selection/i18n/it.po +++ b/mail_restrict_follower_selection/i18n/it.po @@ -28,6 +28,11 @@ msgstr "Imposta restrizioni sui follower" msgid "Document Followers" msgstr "" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_thread +msgid "Email Thread" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" diff --git a/mail_restrict_follower_selection/i18n/sl.po b/mail_restrict_follower_selection/i18n/sl.po index d64d0baab..b350b0264 100644 --- a/mail_restrict_follower_selection/i18n/sl.po +++ b/mail_restrict_follower_selection/i18n/sl.po @@ -30,6 +30,11 @@ msgstr "Nastavitev omejitev za sledilce" msgid "Document Followers" msgstr "" +#. module: mail_restrict_follower_selection +#: model:ir.model,name:mail_restrict_follower_selection.model_mail_thread +msgid "Email Thread" +msgstr "" + #. module: mail_restrict_follower_selection #: model:ir.model,name:mail_restrict_follower_selection.model_mail_wizard_invite msgid "Invite wizard" From 4869d23e8afcfc947cebb37ad5a7ed8cf1b1e409 Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Wed, 4 Mar 2020 16:27:05 +0100 Subject: [PATCH 16/16] [12.0][MIG] mail_restrict_follower_selection --- .../__manifest__.py | 7 +----- .../models/mail_followers.py | 25 ++++++++++++------- .../test_mail_restrict_follower_selection.py | 2 +- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/mail_restrict_follower_selection/__manifest__.py b/mail_restrict_follower_selection/__manifest__.py index bfeb8bfcc..cba1fe639 100644 --- a/mail_restrict_follower_selection/__manifest__.py +++ b/mail_restrict_follower_selection/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Restrict follower selection", - "version": "11.0.2.0.0", + "version": "12.0.1.0.0", "author": "Therp BV,Creu Blanca,Odoo Community Association (OCA)", "license": "AGPL-3", "category": "Social Network", @@ -16,10 +16,5 @@ "data/ir_config_parameter.xml", "data/ir_actions.xml", ], - "auto_install": False, 'installable': True, - "application": False, - "external_dependencies": { - 'python': [], - }, } diff --git a/mail_restrict_follower_selection/models/mail_followers.py b/mail_restrict_follower_selection/models/mail_followers.py index 15e906eb1..c096f1fe5 100644 --- a/mail_restrict_follower_selection/models/mail_followers.py +++ b/mail_restrict_follower_selection/models/mail_followers.py @@ -1,24 +1,31 @@ # Copyright (C) 2018 Creu Blanca # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from odoo import api, models +from odoo import models from odoo.tools.safe_eval import safe_eval class MailFollowers(models.Model): _inherit = 'mail.followers' - @api.model - def _add_follower_command(self, res_model, res_ids, partner_data, - channel_data, force=True): + def _add_followers(self, res_model, res_ids, partner_ids, partner_subtypes, + channel_ids, channel_subtypes, + check_existing=False, existing_policy='skip'): domain = self.env[ 'mail.wizard.invite' ]._mail_restrict_follower_selection_get_domain() partners = self.env['res.partner'].search( - [('id', 'in', list(partner_data))] + + [('id', 'in', partner_ids)] + safe_eval(domain) ) - return super()._add_follower_command( - res_model, res_ids, - {p.id: partner_data[p.id] for p in partners}, - channel_data, force=force) + _res_ids = res_ids.copy() or [0] + new, update = super()._add_followers( + res_model, res_ids, partners.ids, partner_subtypes, channel_ids, + channel_subtypes, check_existing=check_existing, + existing_policy=existing_policy + ) + + for res_id in _res_ids: + if res_id not in new: + new.setdefault(res_id, list()) + return new, update diff --git a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py index 4bf6410df..4eb0bb128 100644 --- a/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py +++ b/mail_restrict_follower_selection/tests/test_mail_restrict_follower_selection.py @@ -36,7 +36,7 @@ class TestMailRestrictFollowerSelection(TransactionCase): 'partner_ids': [(4, id) for id in self.partner.ids], }) self.assertEqual(compose.partner_ids, self.partner) - compose.send_mail_action() + compose.action_send_mail() def test_followers_meet(self): self.partner.write({'customer': True})