From 0ef171311c21ba4eac9dab86555bd65cdca68156 Mon Sep 17 00:00:00 2001 From: Anjeel Haria Date: Tue, 16 Jul 2024 10:38:44 +0530 Subject: [PATCH 1/7] [ADD] helpdesk_mgmt_merge pre-commit fixes pre-commit fixes --- helpdesk_mgmt_merge/README.rst | 86 ++++ helpdesk_mgmt_merge/__init__.py | 1 + helpdesk_mgmt_merge/__manifest__.py | 17 + helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst | 1 + helpdesk_mgmt_merge/readme/DESCRIPTION.rst | 4 + helpdesk_mgmt_merge/readme/USAGE.rst | 3 + .../security/ir.model.access.csv | 2 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 432 ++++++++++++++++++ helpdesk_mgmt_merge/tests/__init__.py | 4 + .../tests/test_helpdesk_mgmt_merge.py | 37 ++ helpdesk_mgmt_merge/wizard/__init__.py | 1 + .../wizard/helpdesk_ticket_merge.py | 127 +++++ .../wizard/helpdesk_ticket_merge_views.xml | 62 +++ 14 files changed, 777 insertions(+) create mode 100644 helpdesk_mgmt_merge/README.rst create mode 100644 helpdesk_mgmt_merge/__init__.py create mode 100644 helpdesk_mgmt_merge/__manifest__.py create mode 100644 helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst create mode 100644 helpdesk_mgmt_merge/readme/DESCRIPTION.rst create mode 100644 helpdesk_mgmt_merge/readme/USAGE.rst create mode 100644 helpdesk_mgmt_merge/security/ir.model.access.csv create mode 100644 helpdesk_mgmt_merge/static/description/icon.png create mode 100644 helpdesk_mgmt_merge/static/description/index.html create mode 100644 helpdesk_mgmt_merge/tests/__init__.py create mode 100644 helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py create mode 100644 helpdesk_mgmt_merge/wizard/__init__.py create mode 100644 helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py create mode 100644 helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml diff --git a/helpdesk_mgmt_merge/README.rst b/helpdesk_mgmt_merge/README.rst new file mode 100644 index 0000000000..52126ff944 --- /dev/null +++ b/helpdesk_mgmt_merge/README.rst @@ -0,0 +1,86 @@ +===================== +Helpdesk Ticket Merge +===================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:b0aa8c4c4af1e41895ede779fa024d884619125d0883dc24bad4fd8fd9a84e8d + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fhelpdesk-lightgray.png?logo=github + :target: https://github.com/OCA/helpdesk/tree/16.0/helpdesk_mgmt_merge + :alt: OCA/helpdesk +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/helpdesk-16-0/helpdesk-16-0-helpdesk_mgmt_merge + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/helpdesk&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module adds a wizard to merge helpdesk tickets. + + +A wizard that can be called from tree view of helpdesk ticket. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +To use this module, you need to: + +#. Merge helpdesk ticket + +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 to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Onestein + +Contributors +~~~~~~~~~~~~ + +* `Onestein `_ + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +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. + +This module is part of the `OCA/helpdesk `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/helpdesk_mgmt_merge/__init__.py b/helpdesk_mgmt_merge/__init__.py new file mode 100644 index 0000000000..40272379f7 --- /dev/null +++ b/helpdesk_mgmt_merge/__init__.py @@ -0,0 +1 @@ +from . import wizard diff --git a/helpdesk_mgmt_merge/__manifest__.py b/helpdesk_mgmt_merge/__manifest__.py new file mode 100644 index 0000000000..776459da04 --- /dev/null +++ b/helpdesk_mgmt_merge/__manifest__.py @@ -0,0 +1,17 @@ +# Copyright 2024 Onestein +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ + "name": "Helpdesk Ticket Merge", + "summary": "Wizard to merge helpdesk tickets", + "version": "16.0.1.0.0", + "author": "Onestein, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/helpdesk", + "license": "AGPL-3", + "category": "After-Sales", + "depends": ["helpdesk_mgmt"], + "data": [ + "security/ir.model.access.csv", + "wizard/helpdesk_ticket_merge_views.xml", + ], + "installable": True, +} diff --git a/helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst b/helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..85125abb22 --- /dev/null +++ b/helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* `Onestein `_ diff --git a/helpdesk_mgmt_merge/readme/DESCRIPTION.rst b/helpdesk_mgmt_merge/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..9b2325de67 --- /dev/null +++ b/helpdesk_mgmt_merge/readme/DESCRIPTION.rst @@ -0,0 +1,4 @@ +This module adds a wizard to merge helpdesk tickets. + + +A wizard that can be called from tree view of helpdesk ticket. diff --git a/helpdesk_mgmt_merge/readme/USAGE.rst b/helpdesk_mgmt_merge/readme/USAGE.rst new file mode 100644 index 0000000000..ff5ef47eae --- /dev/null +++ b/helpdesk_mgmt_merge/readme/USAGE.rst @@ -0,0 +1,3 @@ +To use this module, you need to: + +#. Merge helpdesk ticket diff --git a/helpdesk_mgmt_merge/security/ir.model.access.csv b/helpdesk_mgmt_merge/security/ir.model.access.csv new file mode 100644 index 0000000000..1dddeedd84 --- /dev/null +++ b/helpdesk_mgmt_merge/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_helpdesk_ticket_merge_user,access_helpdesk_ticket_merge_user,model_helpdesk_ticket_merge,helpdesk_mgmt.group_helpdesk_user,1,1,1,1 diff --git a/helpdesk_mgmt_merge/static/description/icon.png b/helpdesk_mgmt_merge/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/helpdesk_mgmt_merge/static/description/index.html b/helpdesk_mgmt_merge/static/description/index.html new file mode 100644 index 0000000000..6aae1acc7e --- /dev/null +++ b/helpdesk_mgmt_merge/static/description/index.html @@ -0,0 +1,432 @@ + + + + + +Helpdesk Ticket Merge + + + +
+

Helpdesk Ticket Merge

+ + +

Beta License: AGPL-3 OCA/helpdesk Translate me on Weblate Try me on Runboat

+

This module adds a wizard to merge helpdesk tickets.

+

A wizard that can be called from tree view of helpdesk ticket.

+

Table of contents

+ +
+

Usage

+

To use this module, you need to:

+
    +
  1. Merge helpdesk ticket
  2. +
+
+
+

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 to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Onestein
  • +
+
+ +
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

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.

+

This module is part of the OCA/helpdesk project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/helpdesk_mgmt_merge/tests/__init__.py b/helpdesk_mgmt_merge/tests/__init__.py new file mode 100644 index 0000000000..13e1d6a1ff --- /dev/null +++ b/helpdesk_mgmt_merge/tests/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2024 Onestein +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import test_helpdesk_mgmt_merge diff --git a/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py b/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py new file mode 100644 index 0000000000..34d9e268fd --- /dev/null +++ b/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py @@ -0,0 +1,37 @@ +from odoo.tests import common + + +class TestHelpdeskTicketMerge(common.TransactionCase): + @classmethod + def setUpClass(cls): + super(TestHelpdeskTicketMerge, cls).setUpClass() + cls.HelpdeskTicketMerge = cls.env["helpdesk.ticket.merge"] + cls.ticket_1 = cls._create_ticket(cls, "Ticket 1", "Description for Ticket 1") + cls.ticket_2 = cls._create_ticket(cls, "Ticket 2", "Description for Ticket 2") + + def _create_ticket(self, name, description): + return self.env["helpdesk.ticket"].create( + { + "name": name, + "description": description, + } + ) + + def test_helpdesk_ticket_merge_create_new_ticket(self): + self.ticket_merge_1 = self.HelpdeskTicketMerge.with_context( + active_ids=[self.ticket_1.id, self.ticket_2.id] + ).create({"create_new_ticket": True, "dst_ticket_name": "Test 1"}) + self.ticket_merge_1.merge_tickets() + self.assertEqual(self.ticket_merge_1.dst_ticket_id.name, "Test 1") + + def test_helpdesk_ticket_merge_with_existing_ticket(self): + self.ticket_merge_2 = self.HelpdeskTicketMerge.with_context( + active_ids=[self.ticket_1.id, self.ticket_2.id] + ).create({}) + self.assertFalse(self.ticket_merge_2.user_id) + self.ticket_2.user_id = self.env.user.id + self.ticket_merge_2.dst_ticket_id = self.ticket_2.id + self.ticket_merge_2._onchange_dst_ticket_id() + self.assertTrue(self.ticket_merge_2.user_id) + self.ticket_merge_2.merge_tickets() + self.assertEqual(self.ticket_merge_2.dst_ticket_id.name, "Ticket 2") diff --git a/helpdesk_mgmt_merge/wizard/__init__.py b/helpdesk_mgmt_merge/wizard/__init__.py new file mode 100644 index 0000000000..859f517776 --- /dev/null +++ b/helpdesk_mgmt_merge/wizard/__init__.py @@ -0,0 +1 @@ +from . import helpdesk_ticket_merge diff --git a/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py new file mode 100644 index 0000000000..74a56c601e --- /dev/null +++ b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py @@ -0,0 +1,127 @@ +from odoo import _, api, fields, models + + +class HelpdeskTicketMerge(models.TransientModel): + _name = "helpdesk.ticket.merge" + _description = "Helpdesk Ticket Merge" + + ticket_ids = fields.Many2many( + "helpdesk.ticket", string="Tickets to Merge", required=True + ) + user_id = fields.Many2one("res.users", string="Assigned to") + create_new_ticket = fields.Boolean(string="Create a new ticket") + dst_ticket_name = fields.Char(string="New ticket name") + dst_helpdesk_team_id = fields.Many2one( + "helpdesk.ticket.team", string="Destination Helpdesk Team" + ) + dst_ticket_id = fields.Many2one( + "helpdesk.ticket", string="Merge into an existing ticket" + ) + + def merge_tickets(self): + tag_ids = self.ticket_ids.mapped("tag_ids").ids + attachment_ids = self.ticket_ids.mapped("attachment_ids").ids + user_ids = self.ticket_ids.mapped("user_ids").ids + values = { + "tag_ids": [(4, tag_id) for tag_id in tag_ids], + "attachment_ids": [(4, attachment_id) for attachment_id in attachment_ids], + "user_ids": [(4, user_id) for user_id in user_ids], + } + values["user_id"] = self.user_id.id + if self.create_new_ticket: + partner_ids = self.ticket_ids.mapped("partner_id") + ticket_category_ids = self.ticket_ids.mapped("category_id").ids + priorities = self.ticket_ids.mapped("priority") + values.update( + { + "name": self.dst_ticket_name, + "team_id": self.dst_helpdesk_team_id.id, + "description": self._merge_description(self.ticket_ids), + "partner_id": len(set(partner_ids)) == 1 + and partner_ids[0].id + or False, + "partner_name": len(set(partner_ids)) == 1 + and partner_ids[0].name + or False, + "partner_email": len(set(partner_ids)) == 1 + and partner_ids[0].email + or False, + "category_id": len(set(ticket_category_ids)) == 1 + and ticket_category_ids[0] + or False, + "priority": len(set(priorities)) == 1 and priorities[0] or False, + } + ) + + self.dst_ticket_id = self.env["helpdesk.ticket"].create(values) + else: + values["description"] = "\n".join( + ( + self.dst_ticket_id.description or "", + self._merge_description(self.ticket_ids - self.dst_ticket_id), + ) + ) + self.dst_ticket_id.write(values) + + merged_tickets = self.ticket_ids - self.dst_ticket_id + self._merge_followers(merged_tickets) + for ticket in merged_tickets: + self._add_message("to", self.dst_ticket_id.number, ticket) + ticket_numbers = ", ".join(merged_tickets.mapped("number")) + self._add_message("from", ticket_numbers, self.dst_ticket_id) + merged_tickets.write({"active": False}) + + return { + "type": "ir.actions.act_window", + "res_model": "helpdesk.ticket", + "views": [[False, "form"]], + "res_id": self.dst_ticket_id.id, + } + + def _merge_description(self, tickets): + return "\n".join( + tickets.mapped( + lambda ticket: _("Description from ticket %(name)s: %(description)s") + % { + "name": ticket.name, + "description": ticket.description or _("No description"), + } + ) + ) + + def _merge_followers(self, merged_tickets): + self.dst_ticket_id.message_subscribe( + partner_ids=(merged_tickets).mapped("message_partner_ids").ids, + ) + + def default_get(self, fields): + result = super(HelpdeskTicketMerge, self).default_get(fields) + selected_tickets = self.env["helpdesk.ticket"].browse( + self.env.context.get("active_ids", False) + ) + assigned_tickets = selected_tickets.filtered(lambda ticket: ticket.user_id) + result.update( + { + "ticket_ids": selected_tickets.ids, + "user_id": assigned_tickets and assigned_tickets[0].user_id.id or False, + "dst_helpdesk_team_id": selected_tickets[0].team_id.id, + "dst_ticket_id": selected_tickets[0].id, + } + ) + return result + + @api.onchange("dst_ticket_id") + def _onchange_dst_ticket_id(self): + if self.dst_ticket_id.user_id: + self.user_id = self.dst_ticket_id.user_id + + def _add_message(self, way, ticket_numbers, ticket): + """Send a message post with to advise the helpdesk ticket about the merge. + :param way : choice between "from" or "to" + :param ticket_numbers : list of helpdesk ticket numbers to add in the body + :param ticket : the ticket where the message will be posted + """ + subject = "Merge helpdesk ticket" + body = _(f"This helpdesk ticket has been merged {way} {ticket_numbers}") + + ticket.message_post(body=body, subject=subject, content_subtype="plaintext") diff --git a/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml new file mode 100644 index 0000000000..4c2a21ab18 --- /dev/null +++ b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml @@ -0,0 +1,62 @@ + + + + helpdesk.ticket.merge.form + helpdesk.ticket.merge + +
+ + + + + + + + + + + + + + NB: This will archive the selected tickets (Except the destination ticket) + +
+
+
+
+
+ + + + Merge Helpdesk Tickets + ir.actions.act_window + helpdesk.ticket.merge + form + + new + + +
From 863bad78bdfa31b2e5175b530e6fe478f5521aef Mon Sep 17 00:00:00 2001 From: oca-ci Date: Mon, 20 Jan 2025 07:31:43 +0000 Subject: [PATCH 2/7] [UPD] Update helpdesk_mgmt_merge.pot --- .../i18n/helpdesk_mgmt_merge.pot | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 helpdesk_mgmt_merge/i18n/helpdesk_mgmt_merge.pot diff --git a/helpdesk_mgmt_merge/i18n/helpdesk_mgmt_merge.pot b/helpdesk_mgmt_merge/i18n/helpdesk_mgmt_merge.pot new file mode 100644 index 0000000000..a6dc711ab9 --- /dev/null +++ b/helpdesk_mgmt_merge/i18n/helpdesk_mgmt_merge.pot @@ -0,0 +1,120 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * helpdesk_mgmt_merge +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.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: helpdesk_mgmt_merge +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt_merge.helpdesk_ticket_merge_view_form +msgid "" +"NB: This will archive the selected tickets " +"(Except the destination ticket)" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__user_id +msgid "Assigned to" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt_merge.helpdesk_ticket_merge_view_form +msgid "Cancel" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__create_new_ticket +msgid "Create a new ticket" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__create_uid +msgid "Created by" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__create_date +msgid "Created on" +msgstr "" + +#. module: helpdesk_mgmt_merge +#. odoo-python +#: code:addons/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py:0 +#, python-format +msgid "Description from ticket %(name)s: %(description)s" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__dst_helpdesk_team_id +msgid "Destination Helpdesk Team" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__display_name +msgid "Display Name" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model,name:helpdesk_mgmt_merge.model_helpdesk_ticket_merge +msgid "Helpdesk Ticket Merge" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__id +msgid "ID" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge____last_update +msgid "Last Modified on" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__write_date +msgid "Last Updated on" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.actions.act_window,name:helpdesk_mgmt_merge.action_helpdesk_ticket_merge +msgid "Merge Helpdesk Tickets" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt_merge.helpdesk_ticket_merge_view_form +msgid "Merge Tickets" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__dst_ticket_id +msgid "Merge into an existing ticket" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__dst_ticket_name +msgid "New ticket name" +msgstr "" + +#. module: helpdesk_mgmt_merge +#. odoo-python +#: code:addons/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py:0 +#, python-format +msgid "No description" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__ticket_ids +msgid "Tickets to Merge" +msgstr "" From 726b1d7235111b37c084ca3d252fc6bb052f7121 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 20 Jan 2025 07:35:04 +0000 Subject: [PATCH 3/7] [BOT] post-merge updates --- helpdesk_mgmt_merge/README.rst | 2 +- helpdesk_mgmt_merge/static/description/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/helpdesk_mgmt_merge/README.rst b/helpdesk_mgmt_merge/README.rst index 52126ff944..26dac16cf3 100644 --- a/helpdesk_mgmt_merge/README.rst +++ b/helpdesk_mgmt_merge/README.rst @@ -7,7 +7,7 @@ Helpdesk Ticket Merge !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:b0aa8c4c4af1e41895ede779fa024d884619125d0883dc24bad4fd8fd9a84e8d + !! source digest: sha256:3848c0b7fe0360c78d7aca6c2705918e708cf06afb9b4ec9bfc830d9f3637486 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/helpdesk_mgmt_merge/static/description/index.html b/helpdesk_mgmt_merge/static/description/index.html index 6aae1acc7e..4e7fea706f 100644 --- a/helpdesk_mgmt_merge/static/description/index.html +++ b/helpdesk_mgmt_merge/static/description/index.html @@ -367,7 +367,7 @@

Helpdesk Ticket Merge

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:b0aa8c4c4af1e41895ede779fa024d884619125d0883dc24bad4fd8fd9a84e8d +!! source digest: sha256:3848c0b7fe0360c78d7aca6c2705918e708cf06afb9b4ec9bfc830d9f3637486 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/helpdesk Translate me on Weblate Try me on Runboat

This module adds a wizard to merge helpdesk tickets.

From e282789685435921e8849706c6f25bb4552757c9 Mon Sep 17 00:00:00 2001 From: mymage Date: Mon, 20 Jan 2025 14:36:38 +0000 Subject: [PATCH 4/7] Added translation using Weblate (Italian) --- helpdesk_mgmt_merge/i18n/it.po | 121 +++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 helpdesk_mgmt_merge/i18n/it.po diff --git a/helpdesk_mgmt_merge/i18n/it.po b/helpdesk_mgmt_merge/i18n/it.po new file mode 100644 index 0000000000..cd10ad11c3 --- /dev/null +++ b/helpdesk_mgmt_merge/i18n/it.po @@ -0,0 +1,121 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * helpdesk_mgmt_merge +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: it\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: helpdesk_mgmt_merge +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt_merge.helpdesk_ticket_merge_view_form +msgid "" +"NB: This will archive the selected tickets " +"(Except the destination ticket)" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__user_id +msgid "Assigned to" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt_merge.helpdesk_ticket_merge_view_form +msgid "Cancel" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__create_new_ticket +msgid "Create a new ticket" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__create_uid +msgid "Created by" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__create_date +msgid "Created on" +msgstr "" + +#. module: helpdesk_mgmt_merge +#. odoo-python +#: code:addons/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py:0 +#, python-format +msgid "Description from ticket %(name)s: %(description)s" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__dst_helpdesk_team_id +msgid "Destination Helpdesk Team" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__display_name +msgid "Display Name" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model,name:helpdesk_mgmt_merge.model_helpdesk_ticket_merge +msgid "Helpdesk Ticket Merge" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__id +msgid "ID" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge____last_update +msgid "Last Modified on" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__write_date +msgid "Last Updated on" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.actions.act_window,name:helpdesk_mgmt_merge.action_helpdesk_ticket_merge +msgid "Merge Helpdesk Tickets" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt_merge.helpdesk_ticket_merge_view_form +msgid "Merge Tickets" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__dst_ticket_id +msgid "Merge into an existing ticket" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__dst_ticket_name +msgid "New ticket name" +msgstr "" + +#. module: helpdesk_mgmt_merge +#. odoo-python +#: code:addons/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py:0 +#, python-format +msgid "No description" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__ticket_ids +msgid "Tickets to Merge" +msgstr "" From e877fb3711d722b7df6a8dbbe723758f6f932685 Mon Sep 17 00:00:00 2001 From: mymage Date: Mon, 20 Jan 2025 14:38:55 +0000 Subject: [PATCH 5/7] Translated using Weblate (Italian) Currently translated at 100.0% (20 of 20 strings) Translation: helpdesk-16.0/helpdesk-16.0-helpdesk_mgmt_merge Translate-URL: https://translation.odoo-community.org/projects/helpdesk-16-0/helpdesk-16-0-helpdesk_mgmt_merge/it/ --- helpdesk_mgmt_merge/i18n/it.po | 44 ++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/helpdesk_mgmt_merge/i18n/it.po b/helpdesk_mgmt_merge/i18n/it.po index cd10ad11c3..36fa55f6a0 100644 --- a/helpdesk_mgmt_merge/i18n/it.po +++ b/helpdesk_mgmt_merge/i18n/it.po @@ -6,13 +6,15 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2025-01-20 17:06+0000\n" +"Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\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 5.6.2\n" #. module: helpdesk_mgmt_merge #: model_terms:ir.ui.view,arch_db:helpdesk_mgmt_merge.helpdesk_ticket_merge_view_form @@ -20,102 +22,104 @@ msgid "" "NB: This will archive the selected tickets " "(Except the destination ticket)" msgstr "" +"NB: questo archivierà i ticket selezionati (" +"tranne il ticket di destinazione)" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__user_id msgid "Assigned to" -msgstr "" +msgstr "Assegnato a" #. module: helpdesk_mgmt_merge #: model_terms:ir.ui.view,arch_db:helpdesk_mgmt_merge.helpdesk_ticket_merge_view_form msgid "Cancel" -msgstr "" +msgstr "Annulla" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__create_new_ticket msgid "Create a new ticket" -msgstr "" +msgstr "Crea un nuovo ticket" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__create_uid msgid "Created by" -msgstr "" +msgstr "Creato da" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__create_date msgid "Created on" -msgstr "" +msgstr "Creato il" #. module: helpdesk_mgmt_merge #. odoo-python #: code:addons/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py:0 #, python-format msgid "Description from ticket %(name)s: %(description)s" -msgstr "" +msgstr "Descrizione dal ticket %(name)s: %(description)s" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__dst_helpdesk_team_id msgid "Destination Helpdesk Team" -msgstr "" +msgstr "Team assistenza clienti destinazione" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__display_name msgid "Display Name" -msgstr "" +msgstr "Nome visualizzato" #. module: helpdesk_mgmt_merge #: model:ir.model,name:helpdesk_mgmt_merge.model_helpdesk_ticket_merge msgid "Helpdesk Ticket Merge" -msgstr "" +msgstr "Unione ticket assistenza clienti" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__id msgid "ID" -msgstr "" +msgstr "ID" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge____last_update msgid "Last Modified on" -msgstr "" +msgstr "Ultima modifica il" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__write_uid msgid "Last Updated by" -msgstr "" +msgstr "Ultimo aggiornamento di" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__write_date msgid "Last Updated on" -msgstr "" +msgstr "Ultimo aggiornamento il" #. module: helpdesk_mgmt_merge #: model:ir.actions.act_window,name:helpdesk_mgmt_merge.action_helpdesk_ticket_merge msgid "Merge Helpdesk Tickets" -msgstr "" +msgstr "Unisci ticket assistenza clienti" #. module: helpdesk_mgmt_merge #: model_terms:ir.ui.view,arch_db:helpdesk_mgmt_merge.helpdesk_ticket_merge_view_form msgid "Merge Tickets" -msgstr "" +msgstr "Unisci ticket" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__dst_ticket_id msgid "Merge into an existing ticket" -msgstr "" +msgstr "Unisci ad un ticket esistente" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__dst_ticket_name msgid "New ticket name" -msgstr "" +msgstr "Nuovo nome ticket" #. module: helpdesk_mgmt_merge #. odoo-python #: code:addons/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py:0 #, python-format msgid "No description" -msgstr "" +msgstr "Nessuna descrizione" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__ticket_ids msgid "Tickets to Merge" -msgstr "" +msgstr "Ticket da unire" From 1acf5e59531dc708d5658cf896438c4340e683c0 Mon Sep 17 00:00:00 2001 From: Bhavesh Heliconia Date: Wed, 19 Feb 2025 11:57:57 +0530 Subject: [PATCH 6/7] [IMP] helpdesk_mgmt_merge: pre-commit auto fixes --- helpdesk_mgmt_merge/README.rst | 21 ++++---- helpdesk_mgmt_merge/pyproject.toml | 3 ++ helpdesk_mgmt_merge/readme/CONTRIBUTORS.md | 1 + helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst | 1 - .../{DESCRIPTION.rst => DESCRIPTION.md} | 1 - .../readme/{USAGE.rst => USAGE.md} | 2 +- .../static/description/index.html | 6 +-- .../tests/test_helpdesk_mgmt_merge.py | 2 +- .../wizard/helpdesk_ticket_merge.py | 2 +- .../wizard/helpdesk_ticket_merge_views.xml | 52 +++++++++---------- 10 files changed, 45 insertions(+), 46 deletions(-) create mode 100644 helpdesk_mgmt_merge/pyproject.toml create mode 100644 helpdesk_mgmt_merge/readme/CONTRIBUTORS.md delete mode 100644 helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst rename helpdesk_mgmt_merge/readme/{DESCRIPTION.rst => DESCRIPTION.md} (99%) rename helpdesk_mgmt_merge/readme/{USAGE.rst => USAGE.md} (56%) diff --git a/helpdesk_mgmt_merge/README.rst b/helpdesk_mgmt_merge/README.rst index 26dac16cf3..f7726f66f2 100644 --- a/helpdesk_mgmt_merge/README.rst +++ b/helpdesk_mgmt_merge/README.rst @@ -17,20 +17,19 @@ Helpdesk Ticket Merge :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fhelpdesk-lightgray.png?logo=github - :target: https://github.com/OCA/helpdesk/tree/16.0/helpdesk_mgmt_merge + :target: https://github.com/OCA/helpdesk/tree/18.0/helpdesk_mgmt_merge :alt: OCA/helpdesk .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/helpdesk-16-0/helpdesk-16-0-helpdesk_mgmt_merge + :target: https://translation.odoo-community.org/projects/helpdesk-18-0/helpdesk-18-0-helpdesk_mgmt_merge :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/helpdesk&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/helpdesk&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| This module adds a wizard to merge helpdesk tickets. - A wizard that can be called from tree view of helpdesk ticket. **Table of contents** @@ -43,7 +42,7 @@ Usage To use this module, you need to: -#. Merge helpdesk ticket +1. Merge helpdesk ticket Bug Tracker =========== @@ -51,7 +50,7 @@ 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 to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -59,17 +58,17 @@ Credits ======= Authors -~~~~~~~ +------- * Onestein Contributors -~~~~~~~~~~~~ +------------ -* `Onestein `_ +- `Onestein `__ Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -81,6 +80,6 @@ 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. -This module is part of the `OCA/helpdesk `_ project on GitHub. +This module is part of the `OCA/helpdesk `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/helpdesk_mgmt_merge/pyproject.toml b/helpdesk_mgmt_merge/pyproject.toml new file mode 100644 index 0000000000..4231d0cccb --- /dev/null +++ b/helpdesk_mgmt_merge/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/helpdesk_mgmt_merge/readme/CONTRIBUTORS.md b/helpdesk_mgmt_merge/readme/CONTRIBUTORS.md new file mode 100644 index 0000000000..3a4386c7d7 --- /dev/null +++ b/helpdesk_mgmt_merge/readme/CONTRIBUTORS.md @@ -0,0 +1 @@ +- [Onestein](http://www.onestein.eu) diff --git a/helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst b/helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst deleted file mode 100644 index 85125abb22..0000000000 --- a/helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1 +0,0 @@ -* `Onestein `_ diff --git a/helpdesk_mgmt_merge/readme/DESCRIPTION.rst b/helpdesk_mgmt_merge/readme/DESCRIPTION.md similarity index 99% rename from helpdesk_mgmt_merge/readme/DESCRIPTION.rst rename to helpdesk_mgmt_merge/readme/DESCRIPTION.md index 9b2325de67..dfe795fcd0 100644 --- a/helpdesk_mgmt_merge/readme/DESCRIPTION.rst +++ b/helpdesk_mgmt_merge/readme/DESCRIPTION.md @@ -1,4 +1,3 @@ This module adds a wizard to merge helpdesk tickets. - A wizard that can be called from tree view of helpdesk ticket. diff --git a/helpdesk_mgmt_merge/readme/USAGE.rst b/helpdesk_mgmt_merge/readme/USAGE.md similarity index 56% rename from helpdesk_mgmt_merge/readme/USAGE.rst rename to helpdesk_mgmt_merge/readme/USAGE.md index ff5ef47eae..980ebe6f77 100644 --- a/helpdesk_mgmt_merge/readme/USAGE.rst +++ b/helpdesk_mgmt_merge/readme/USAGE.md @@ -1,3 +1,3 @@ To use this module, you need to: -#. Merge helpdesk ticket +1. Merge helpdesk ticket diff --git a/helpdesk_mgmt_merge/static/description/index.html b/helpdesk_mgmt_merge/static/description/index.html index 4e7fea706f..c1ea0c82a6 100644 --- a/helpdesk_mgmt_merge/static/description/index.html +++ b/helpdesk_mgmt_merge/static/description/index.html @@ -369,7 +369,7 @@

Helpdesk Ticket Merge

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:3848c0b7fe0360c78d7aca6c2705918e708cf06afb9b4ec9bfc830d9f3637486 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/helpdesk Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/helpdesk Translate me on Weblate Try me on Runboat

This module adds a wizard to merge helpdesk tickets.

A wizard that can be called from tree view of helpdesk ticket.

Table of contents

@@ -397,7 +397,7 @@

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 to smash it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -423,7 +423,7 @@

Maintainers

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.

-

This module is part of the OCA/helpdesk project on GitHub.

+

This module is part of the OCA/helpdesk project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

diff --git a/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py b/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py index 34d9e268fd..0316091f7a 100644 --- a/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py +++ b/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py @@ -4,7 +4,7 @@ class TestHelpdeskTicketMerge(common.TransactionCase): @classmethod def setUpClass(cls): - super(TestHelpdeskTicketMerge, cls).setUpClass() + super().setUpClass() cls.HelpdeskTicketMerge = cls.env["helpdesk.ticket.merge"] cls.ticket_1 = cls._create_ticket(cls, "Ticket 1", "Description for Ticket 1") cls.ticket_2 = cls._create_ticket(cls, "Ticket 2", "Description for Ticket 2") diff --git a/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py index 74a56c601e..89fbed6eae 100644 --- a/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py +++ b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py @@ -95,7 +95,7 @@ def _merge_followers(self, merged_tickets): ) def default_get(self, fields): - result = super(HelpdeskTicketMerge, self).default_get(fields) + result = super().default_get(fields) selected_tickets = self.env["helpdesk.ticket"].browse( self.env.context.get("active_ids", False) ) diff --git a/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml index 4c2a21ab18..3202156639 100644 --- a/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml +++ b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml @@ -1,54 +1,53 @@ - - helpdesk.ticket.merge.form - helpdesk.ticket.merge - -
- + + helpdesk.ticket.merge.form + helpdesk.ticket.merge + + + + - - - - - - - + + + + + - - - - + NB: This will archive the selected tickets (Except the destination ticket) - -
-
- -
-
- + + +
+
Merge Helpdesk Tickets @@ -58,5 +57,4 @@ new -
From 11a1358b4ea2074239d20df7ff4e2ca4122a5496 Mon Sep 17 00:00:00 2001 From: Bhavesh Heliconia Date: Wed, 19 Feb 2025 11:59:28 +0530 Subject: [PATCH 7/7] [MIG] helpdesk_mgmt_merge: Migration to 18.0 --- helpdesk_mgmt_merge/README.rst | 3 ++ helpdesk_mgmt_merge/__manifest__.py | 2 +- helpdesk_mgmt_merge/readme/CONTRIBUTORS.md | 2 ++ .../static/description/index.html | 4 +++ .../tests/test_helpdesk_mgmt_merge.py | 4 +-- .../wizard/helpdesk_ticket_merge.py | 30 +++++++++++++------ .../wizard/helpdesk_ticket_merge_views.xml | 12 +++++--- 7 files changed, 41 insertions(+), 16 deletions(-) diff --git a/helpdesk_mgmt_merge/README.rst b/helpdesk_mgmt_merge/README.rst index f7726f66f2..2afc0880cd 100644 --- a/helpdesk_mgmt_merge/README.rst +++ b/helpdesk_mgmt_merge/README.rst @@ -66,6 +66,9 @@ Contributors ------------ - `Onestein `__ +- `Heliconia Solutions Pvt. Ltd. `__ + + - Bhavesh Heliconia Maintainers ----------- diff --git a/helpdesk_mgmt_merge/__manifest__.py b/helpdesk_mgmt_merge/__manifest__.py index 776459da04..bc7d29862f 100644 --- a/helpdesk_mgmt_merge/__manifest__.py +++ b/helpdesk_mgmt_merge/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Helpdesk Ticket Merge", "summary": "Wizard to merge helpdesk tickets", - "version": "16.0.1.0.0", + "version": "18.0.1.0.0", "author": "Onestein, Odoo Community Association (OCA)", "website": "https://github.com/OCA/helpdesk", "license": "AGPL-3", diff --git a/helpdesk_mgmt_merge/readme/CONTRIBUTORS.md b/helpdesk_mgmt_merge/readme/CONTRIBUTORS.md index 3a4386c7d7..e3142d6147 100644 --- a/helpdesk_mgmt_merge/readme/CONTRIBUTORS.md +++ b/helpdesk_mgmt_merge/readme/CONTRIBUTORS.md @@ -1 +1,3 @@ - [Onestein](http://www.onestein.eu) +- [Heliconia Solutions Pvt. Ltd.](https://www.heliconia.io) + - Bhavesh Heliconia diff --git a/helpdesk_mgmt_merge/static/description/index.html b/helpdesk_mgmt_merge/static/description/index.html index c1ea0c82a6..28d70ed2e4 100644 --- a/helpdesk_mgmt_merge/static/description/index.html +++ b/helpdesk_mgmt_merge/static/description/index.html @@ -412,6 +412,10 @@

Authors

Contributors

diff --git a/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py b/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py index 0316091f7a..74b8f92434 100644 --- a/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py +++ b/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py @@ -1,7 +1,7 @@ -from odoo.tests import common +from odoo.addons.base.tests.common import BaseCommon -class TestHelpdeskTicketMerge(common.TransactionCase): +class TestHelpdeskTicketMerge(BaseCommon): @classmethod def setUpClass(cls): super().setUpClass() diff --git a/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py index 89fbed6eae..a9f221869b 100644 --- a/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py +++ b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py @@ -1,4 +1,4 @@ -from odoo import _, api, fields, models +from odoo import Command, api, fields, models class HelpdeskTicketMerge(models.TransientModel): @@ -23,10 +23,13 @@ def merge_tickets(self): attachment_ids = self.ticket_ids.mapped("attachment_ids").ids user_ids = self.ticket_ids.mapped("user_ids").ids values = { - "tag_ids": [(4, tag_id) for tag_id in tag_ids], - "attachment_ids": [(4, attachment_id) for attachment_id in attachment_ids], - "user_ids": [(4, user_id) for user_id in user_ids], + "tag_ids": [Command.link(tag_id) for tag_id in tag_ids], + "attachment_ids": [ + Command.link(attachment_id) for attachment_id in attachment_ids + ], + "user_ids": [Command.link(user_id) for user_id in user_ids], } + values["user_id"] = self.user_id.id if self.create_new_ticket: partner_ids = self.ticket_ids.mapped("partner_id") @@ -81,10 +84,12 @@ def merge_tickets(self): def _merge_description(self, tickets): return "\n".join( tickets.mapped( - lambda ticket: _("Description from ticket %(name)s: %(description)s") + lambda ticket: self.env._( + "Description from ticket %(name)s: %(description)s" + ) % { "name": ticket.name, - "description": ticket.description or _("No description"), + "description": ticket.description or self.env._("No description"), } ) ) @@ -102,7 +107,7 @@ def default_get(self, fields): assigned_tickets = selected_tickets.filtered(lambda ticket: ticket.user_id) result.update( { - "ticket_ids": selected_tickets.ids, + "ticket_ids": [Command.set(selected_tickets.ids)], "user_id": assigned_tickets and assigned_tickets[0].user_id.id or False, "dst_helpdesk_team_id": selected_tickets[0].team_id.id, "dst_ticket_id": selected_tickets[0].id, @@ -122,6 +127,13 @@ def _add_message(self, way, ticket_numbers, ticket): :param ticket : the ticket where the message will be posted """ subject = "Merge helpdesk ticket" - body = _(f"This helpdesk ticket has been merged {way} {ticket_numbers}") + body = self.env._( + f"This helpdesk ticket has been merged {way} {ticket_numbers}" + ) - ticket.message_post(body=body, subject=subject, content_subtype="plaintext") + ticket.message_post( + body=body, + subject=subject, + message_type="comment", + subtype_id=self.env.ref("mail.mt_comment").id, + ) diff --git a/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml index 3202156639..7e82f051d9 100644 --- a/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml +++ b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml @@ -15,21 +15,25 @@ NB: This will archive the selected tickets (Except the destination ticket) + >NB: This will archive the selected tickets (Except the destination ticket) +