From b909143afa324b8e002801116ea7638e56de62c6 Mon Sep 17 00:00:00 2001 From: David Beal Date: Sun, 7 May 2023 16:35:34 +0200 Subject: [PATCH] [16.0][ADD] printing_simple_configuration --- printing_simple_configuration/README.rst | 1 + printing_simple_configuration/__init__.py | 1 + printing_simple_configuration/__manifest__.py | 26 +++++ printing_simple_configuration/data/demo.xml | 35 +++++++ .../models/__init__.py | 3 + .../models/company.py | 7 ++ .../models/print_config.py | 30 ++++++ .../models/printer.py | 21 +++++ .../readme/DESCRIPTION.rst | 11 +++ .../readme/ROADMAP.rst | 2 + .../security/ir.model.access.csv | 5 + .../security/security.xml | 12 +++ .../static/description/print_config.png | Bin 0 -> 39958 bytes .../views/company.xml | 13 +++ .../views/print_config.xml | 89 ++++++++++++++++++ .../odoo/addons/printing_simple_configuration | 1 + setup/printing_simple_configuration/setup.py | 6 ++ 17 files changed, 263 insertions(+) create mode 100644 printing_simple_configuration/README.rst create mode 100644 printing_simple_configuration/__init__.py create mode 100644 printing_simple_configuration/__manifest__.py create mode 100644 printing_simple_configuration/data/demo.xml create mode 100644 printing_simple_configuration/models/__init__.py create mode 100644 printing_simple_configuration/models/company.py create mode 100644 printing_simple_configuration/models/print_config.py create mode 100644 printing_simple_configuration/models/printer.py create mode 100644 printing_simple_configuration/readme/DESCRIPTION.rst create mode 100644 printing_simple_configuration/readme/ROADMAP.rst create mode 100644 printing_simple_configuration/security/ir.model.access.csv create mode 100644 printing_simple_configuration/security/security.xml create mode 100644 printing_simple_configuration/static/description/print_config.png create mode 100644 printing_simple_configuration/views/company.xml create mode 100644 printing_simple_configuration/views/print_config.xml create mode 120000 setup/printing_simple_configuration/odoo/addons/printing_simple_configuration create mode 100644 setup/printing_simple_configuration/setup.py diff --git a/printing_simple_configuration/README.rst b/printing_simple_configuration/README.rst new file mode 100644 index 0000000..7093cd3 --- /dev/null +++ b/printing_simple_configuration/README.rst @@ -0,0 +1 @@ +to be generated diff --git a/printing_simple_configuration/__init__.py b/printing_simple_configuration/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/printing_simple_configuration/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/printing_simple_configuration/__manifest__.py b/printing_simple_configuration/__manifest__.py new file mode 100644 index 0000000..25aa8f0 --- /dev/null +++ b/printing_simple_configuration/__manifest__.py @@ -0,0 +1,26 @@ +{ + "name": "Printing Simple Configuration", + "summary": "Allow to set printing configuration in company or in warehouse", + "version": "16.0.1.0.0", + "category": "Generic Modules/Base", + "website": "https://github.com/OCA/report-print-send", + "author": "Akretion,Odoo Community Association (OCA)", + "maintainer": [ + "bealdav", + ], + "maturity": "Alpha", + "license": "AGPL-3", + "depends": [ + "stock", + ], + "data": [ + "views/company.xml", + "views/print_config.xml", + "security/ir.model.access.csv", + "security/security.xml", + ], + "demo": [ + "data/demo.xml", + ], + "installable": True, +} diff --git a/printing_simple_configuration/data/demo.xml b/printing_simple_configuration/data/demo.xml new file mode 100644 index 0000000..11dedd2 --- /dev/null +++ b/printing_simple_configuration/data/demo.xml @@ -0,0 +1,35 @@ + + + + 192.168.2.1 + 633 + + + 127.0.0.1 + 8069 + + + + + printer 1 + small_label + Zebra Printer tiny + + + 1 + + + GX420t + carrier_label + Zebra Printer large + + 1 + + + other printer + misc + Zpl compatible + + + + diff --git a/printing_simple_configuration/models/__init__.py b/printing_simple_configuration/models/__init__.py new file mode 100644 index 0000000..cc0f8da --- /dev/null +++ b/printing_simple_configuration/models/__init__.py @@ -0,0 +1,3 @@ +from . import company +from . import printer +from . import print_config diff --git a/printing_simple_configuration/models/company.py b/printing_simple_configuration/models/company.py new file mode 100644 index 0000000..8519bdc --- /dev/null +++ b/printing_simple_configuration/models/company.py @@ -0,0 +1,7 @@ +from odoo import fields, models + + +class ResCompany(models.Model): + _inherit = "res.company" + + print_config_id = fields.Many2one(comodel_name="print.config") diff --git a/printing_simple_configuration/models/print_config.py b/printing_simple_configuration/models/print_config.py new file mode 100644 index 0000000..589ac5f --- /dev/null +++ b/printing_simple_configuration/models/print_config.py @@ -0,0 +1,30 @@ +from odoo import api, fields, models + + +class PrintConfig(models.Model): + _name = "print.config" + _inherit = ["mail.thread"] + _description = "Simple Printing Configuration" + _rec_names_search = ["server", "company_id"] + _check_company_auto = True + + server = fields.Char( + string="🖥 Server", + required=True, + tracking=True, + help="IP or name resolved by your internal DNS", + ) + port = fields.Integer(tracking=True) + company_id = fields.Many2one(comodel_name="res.company", string="Company") + display_name = fields.Char("Name", compute="_compute_display_name", store=True) + comment = fields.Char() + printer_ids = fields.One2many(comodel_name="printer", inverse_name="config_id") + + @api.depends("server", "company_id") + def _compute_display_name(self): + for rec in self: + company = rec.company_id + if company: + rec.display_name = "{} ({})".format(rec.server, company.name) + else: + rec.display_name = rec.server diff --git a/printing_simple_configuration/models/printer.py b/printing_simple_configuration/models/printer.py new file mode 100644 index 0000000..9c3ac10 --- /dev/null +++ b/printing_simple_configuration/models/printer.py @@ -0,0 +1,21 @@ +from odoo import fields, models + + +class Printer(models.Model): + _name = "printer" + _description = "Printers belongs to a printer server address attached " + "to a company or a warehouse" + + name = fields.Char(required=True, help="must be completed by internal user") + usage = fields.Char( + required=True, + help="Developers may use this to guess adapted printers for their workflows", + ) + comment = fields.Char() + config_id = fields.Many2one(comodel_name="print.config", required=True) + warehouse_id = fields.Many2one(comodel_name="stock.warehouse") + readonly = fields.Boolean( + help="Make some fields readonly in views if set to True.\n" + "In some case, erp project may be imply minimal config as module data\n" + "with some fields might updated within the interface" + ) diff --git a/printing_simple_configuration/readme/DESCRIPTION.rst b/printing_simple_configuration/readme/DESCRIPTION.rst new file mode 100644 index 0000000..72d78d2 --- /dev/null +++ b/printing_simple_configuration/readme/DESCRIPTION.rst @@ -0,0 +1,11 @@ +Allow to set printer config definition attached to a company or a warehouse. + +With this minimal configuration, you may define specific print workflow +according to misc usage, i.e. label printers + +.. figure:: ../static/description/print_config.png + :alt: Print configuration in Odoo + + +For more complex configuration please check +https://github.com/OCA/report-print-send/blob/16.0/base_report_to_printer/README.rst diff --git a/printing_simple_configuration/readme/ROADMAP.rst b/printing_simple_configuration/readme/ROADMAP.rst new file mode 100644 index 0000000..dfe7a2d --- /dev/null +++ b/printing_simple_configuration/readme/ROADMAP.rst @@ -0,0 +1,2 @@ +Advanced usage of printers are mainly coupled with stock. +This leads us to decide to attach the printer configuration to the warehouse model. diff --git a/printing_simple_configuration/security/ir.model.access.csv b/printing_simple_configuration/security/ir.model.access.csv new file mode 100644 index 0000000..ceb1660 --- /dev/null +++ b/printing_simple_configuration/security/ir.model.access.csv @@ -0,0 +1,5 @@ +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"print_conf_user","print_conf_user","model_print_config",,1,0,0,0 +"print_conf_manager","print_conf_manager","model_print_config","base.group_system",1,1,1,1 +"printer_user","printer_user","model_printer",,1,0,0,0 +"printer_manager","printer_manager","model_printer","base.group_system",1,1,1,1 diff --git a/printing_simple_configuration/security/security.xml b/printing_simple_configuration/security/security.xml new file mode 100644 index 0000000..7d93420 --- /dev/null +++ b/printing_simple_configuration/security/security.xml @@ -0,0 +1,12 @@ + + + + + Print config rule + + ['|',('company_id','=',False),('company_id', 'in', company_ids)] + + + diff --git a/printing_simple_configuration/static/description/print_config.png b/printing_simple_configuration/static/description/print_config.png new file mode 100644 index 0000000000000000000000000000000000000000..972413bb43dff928e37cb8ced18cc419824f41f2 GIT binary patch literal 39958 zcmb@uWmuG5+cvD1fsz7JQVP-~-5@e_H%Li$cVFs7m*mhW-5pYcQbQx%Al(f!Fx0!$ z>%O1&$FsfL_v4!lHfGLqX3e?Qd8{M$eLo0QR+Pd*e};bN&K)cnX^85bJNNVN+_^jZ z=r3?2M!=pI{CVsst>bd%4tB?{-@6G+*ra#vJij9Y5mWa}+nslFeX2$J@X&*X)Wd`N z361op=ile&^<^1yAA~*a4Q?W2>YSe^|A4lv_>brFeOS}UHMzw4f1@x9aehDh zEF%8jx1HDO-~Ds?;GV~H%1qgt=?)7;$LukYipCB8GpX()Ww@(5#ymEMzt(BMd)N=>ybF1FZEF`fHtswX{K zU&1)AzD3``M-WZ?UX1n?7Z)=v3kw%}rTY%;)9~w+mAL9^Ip$l$US?b>>5a(9SckTR z#6>Fk(_f=o$4I|CKEnu$2rF%az4&r)@1uC9u~Xz^5kUDOGU7Iu?2$5EFs*QW@z>IgEyVVUHxO8uUj+7^=A@2K9_5WgVpLD z7+|8OS5{SxkBKSVYxJdbb~#}+Y#J|?BEoX3Emwj4T1=e5?rwPnxs4Mq$siQLA}_NL z>SLXaF-6V3?qXsP=VN}4A(#CO{Mi~2E~Aoo z^2qUVBE+WV5jwm4K)f3FhHx`2Ie&((Ha#7+NpU%R#kn0X4k7Fl69e_|o>_gy|4)FP zQ2VQF-8y=Ti;#lUNVmv%LxtMeo6d_1G-p0j2M20DP9=xM0bQi2srj?*odj*SGt{0R zT6A#%y@%x@Ej9H?LTXce`E4Q=Q$!?YD7^sfe!WDWv$HeSsoUOe2{p9|MUw~;akhB9 z;jKZCP(&W%wy}^61|WL+)Y8T#IW?L1*(T8ElS6?8r5@^i4s z$I4y#4aX&+Spv{3Q;VK*MqXMu@bb5_~Xk_}fhjIq58}iogH&TTS~%k1$~_ zNENS1jx8xu{Z=oJgPUwHVY&$NrKzc?_NAwWO*`cuIXJHNQngZvN%2&Cui(=zM49{^ zUfthdG<8?r-1qO?IcEd*r(J7bTver7KS(|@${Erv`n-E|7Fq5m6@<0F*kS|cKnnOQ zZCB!3=+E%8UF}(Httn;lm+Opn6(_P7F9OeEW@Z*}rQKJ5s1DJ)3eIJk@HiN8T0In7 zvpcy8Om$(R6N%Oe^vlIZm+-&&PLg~J5%Fn~+_o-CU=-8RN;OLQ`3VV;cXqaZ=V)p7 zpcUi2So@Gc%F3Lz+)!C;V6P2NN@3x}HP`j*WU$8BtI@6zr(1&O zTd!5%22JVCE&^Exb^Vn}!Q#}hs3ujNXYS4ceFw<^n(ft;}EEjZs+e@TjA zU?2>Ko;g*tir75FHCx{(Z}l7Ee#r$KH#?J@hJnA)(7sEPJ0ddja%*fF*~8E?JzaEs ztY1P}M$Yv&i&_>kN;r1%JyYV_ovlR6fQcn&Ia0{$*^^r_mFJu0HZ3KF2a=7Av9+y+ zjVK{zA!Y^!7G9`0854QB6{}sq{@8oQzsVP-wYLuyDHre5^JZM5PB$0x;Wf!FawTWS zh`zqQgVADAQs79W>J{^c42}ey?ah`#^4svXncU-HjCF9lO2ZC9zO?%fmi@ky=UH()5VdYkf$rtbFH zZ-b5&bX$*w)>GmN`ys;g@vc~Hw~o&sH6}=ZG#^qw;d#8KM-o}2_4^Er^g;n!JPcOx zt6Je<74_8%tro=-8?Bb(+;3tw_pjk_rHsCwo`fnLd;5(1`o&lYm!gUTB1UDZ<7u9v znMbO^!sJv%7~i8q>ROzuM~5@!`YSb~4Bpl@Rz!@Ah0wDgGhLdGQKdC=dQ#NlKH}FU zSAUu5Opi1*M@BSmZrSCOO>~XC=?}TLENXCg>P4k zVALK2Zk!!0x?);hNrL7D=cq6vYWy;!_9F_a=*QN+h}IEM@na-~hC4CMYlnURhYFQ* z-K!0k2DZi4gIW`0nM%8byQ>lJ*Zma_wpZN?-@etw7`ThQSCXGY1V@8desGPNHVm5K zuCUE1Zin$qGOxUOa>f2-WqmJHM@Lg&MtIlO1sz=|+r-yoC5Xqt+Mp6c%GG)sC5T)# zGfhb*=H+F-NJ{R>hp z@^Q6d=IqI8VO3gMxW>oT-Ca%xVSChrxy%z6IZieAkN1WQ%~#iIUvZ8rt6wE0Z;_HB z`;t$Ry)NXuk>|#1(@W{tst3>ZCTdNjpmmIly=IEX$!W2&5SpxbH|k;wHUlY1NvMvq zzt~+|1}3PWSHvkb-f(B%WFXb>DZ`4aln9lovii@Hi%KU-baZr6(QDV2FJCg!cWWJ% z>x`GbxO3-QfZi=kcz+=v?aXRf06Vzdx3M)>{E{b^ni99gb1N|=1pz;BnY5qsKbg3e z!M`EL-d@^r+1xCg`icXtCyp*+d+ZB2u9x=(f`l(6#6Oj@T1C9rigN?8H-8P^!Vjev z6tuYgvchKAy7naBE;Uh&F47FnZqVYt0gSG&(8|lp%iCLEG%v!%dSZ2l2f{8Uc2K6* z#O;F0;oM-8o9^E$4Sp?|SD5WbfJk^l{}hB{GgI@Jm&aD>e%-3`kNx$qEhYv82QW`l z;!&yup&hqAr>hlEhcD7&gB|BX3-bfx=Yo`7ZFH+F;G_7gF zU~;3g{WY85EM9ekdRF8_PY_<2P>L3owmg`#Z7b4|1*4HcB1;^EM=UZsm=;&@QT4Fl4 zEUj==Ox5L&0(V_M>*(<3)>{y-54K2=VdvXeKtXb2L=5~Q2M5Qb!-8(Tm6W-8VqKm2 z2KHVM_C9=pdT`^Y(QV7|a=#r**Zo?+rZFt+IJcNL+hmzGg8VxZx9YOZ*poYVeu}aR z(6YYdYW`gDDa6&S_O||)u!WEoe$vStj+i+TWKPKP(1HO2A!Rt(cy41MgYqJdpS?z+v)6Q}`cjMBSyk z!;&N4NZf2Sk$tHy_eOyKqS^yw0u?(u|H`Og@!6SMG5&=%Fz%j0tDc@hNPJpaN@C)d z!a{=qj^dvink-Ql=TUqfJuY49okN%R5`}!5FFJR=^Gr0#hQWP(FEa%;u2*VU3D+&I z{xXDj=~x%EMnzI*)jK)0@7XPM!NWV`EikIBC-O(WLyeMv8AKFM*_h{yI z>QLS%KCVo7q1ZwJD(kF`jJ=~X^)y+>Bj(A#D}qeV?(~chiE^&jHX~>akpH%E{R3?O zz?bUwUoQ-mGH{1c-|xAJoC!ucT2J&X@G!G)8N72$ZmQwp+%vL>(^o$1G`T=~7~W|d z%r>w>m7blQUQ)9AQA&wY#5*M}E)@!;#Ct|TKrRm9;4r(YTsbd1Ie63d@N~yaXPmOA zqhmFqzdtK0tGj?$3QZ7-7?cQ z#qPTaz5S*_{U=<`o*q3=9lm^!7VbLx`OULa2SWj6Cr3@dzNoTi;(|nSQs96X&1I?bkK-m?~zoHWfZ; z8yYJ+#HRelzyOvHb(rNbli#@M^vfNcoQ%Oti44Cy{4#@lEh*Vq6%!o-$_i_mW89d+ zlG}R|axTM$Y(E zaJF`6O*;I$ZSuUWXsT^>Q|Vcj+$qY>w1HrB{6!W{!o}YpcRbCFf^VNEC403`it?~T zij&1?%R@-K5=g`L2yuIs9A#f_+t=~bU*DUjqU!a@K%0GfL_!i7iJAL!e~0KbB(n8X z`N@{LhWh$7YGvKdr*3~r*H~iJ{vYR|uKzb?0G zKMs7;v(wg=RmDryc>5!veaY3)N*q$E%iq)6yWn>?mD^IS%^VdHQD;B(x~Z-HLINU* zudyBXh2>eGL)X1r4)~HcgN?tOI$K&u|!59ptg(;JJ`fz z{_haHxY*E5eQ7@SobqzD+7YU3kwyUA|Lpcj+fn><~T4l64z;b9pN$QBb5_i*uk$8Lh0 zU-~od__dR@2OOxPA_avAG(G`K1`Q8ZS%iDl?uQR4EOgv-!66ajOwabGWw^7|)N*a( zGN5vh#>^qc!u+B)kixaaZ$

atT*|+geEyl=56r8smQ%osmoX+WK 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 literal 0 HcmV?d00001 diff --git a/printing_simple_configuration/views/company.xml b/printing_simple_configuration/views/company.xml new file mode 100644 index 0000000..b3cb7b1 --- /dev/null +++ b/printing_simple_configuration/views/company.xml @@ -0,0 +1,13 @@ + + + + res.company + + + + + + + + + diff --git a/printing_simple_configuration/views/print_config.xml b/printing_simple_configuration/views/print_config.xml new file mode 100644 index 0000000..e3a1e1a --- /dev/null +++ b/printing_simple_configuration/views/print_config.xml @@ -0,0 +1,89 @@ + + + + print.config + +

+
+
+ +
+

+ Ensure all informations here match with your own network configuration. +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + print.config + + + + + + + + + + + print.config + + + + + + + + + + + Printing Configuration + print.config + tree,form + + + + diff --git a/setup/printing_simple_configuration/odoo/addons/printing_simple_configuration b/setup/printing_simple_configuration/odoo/addons/printing_simple_configuration new file mode 120000 index 0000000..0f2e854 --- /dev/null +++ b/setup/printing_simple_configuration/odoo/addons/printing_simple_configuration @@ -0,0 +1 @@ +../../../../printing_simple_configuration \ No newline at end of file diff --git a/setup/printing_simple_configuration/setup.py b/setup/printing_simple_configuration/setup.py new file mode 100644 index 0000000..28c57bb --- /dev/null +++ b/setup/printing_simple_configuration/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)